Lightoj 1145 DP
来源:互联网 发布:单页面优化 编辑:程序博客网 时间:2024/05/16 11:18
不能用记忆化搜索。。。会超时的。。。。。而且是绝逼会超时 因为你自己就算不出样例
dp[i][j]表示 用上第i个骰子全部之和是j的个数
用一个temp来累加 避免重复计算和
然后状态转移方程是:
if( j <= K ){temp += dp[now^1][j-1] % mod;}else{temp += ( dp[now^1][j-1] - dp[now^1][j-K-1] ) % mod;}dp[now][j] = temp%mod;
AC代码如下:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;#define mod 100000007int main(){long long dp[2][15001];int N, K, S;int T, Case = 1;cin >> T;while( T-- ){cin >> N >> K >> S;memset( dp, 0, sizeof( dp ) );dp[0][0] = 1;int now = 0;for( int i = 1; i <= N; i++ ){now ^= 1;long long temp = 0;dp[now][0] = 0;//注意 这里 因为初始化的时候dp[0][0]是1 但是之后 dp[now][0] 是全部为0的for( int j = 1; j <= S; j++ ){if( j <= K ){temp += dp[now^1][j-1] % mod;}else{temp += ( dp[now^1][j-1] - dp[now^1][j-K-1] ) % mod;}dp[now][j] = temp%mod;}}cout << "Case " << Case++ << ": " << dp[now][S] << endl;}return 0;}
- Lightoj 1145 DP
- lightoj 1145 Dice (I) (DP)
- LightOJ 1145 Dice (I) dp
- lightoj 1140 数位DP
- lightoj 1032 数位DP
- lightoj 1068 数位DP
- lightoj 1205 数位DP
- lightoj 1422 区间DP
- Lightoj 1004 DP
- Lightoj 1013 DP
- Lightoj 1017 DP
- Lightoj 1018 DP
- Lightoj 1021 数位DP
- Lightoj 1025 DP
- Lightoj 1031 区间DP
- Lightoj 1033 数位DP
- Lightoj 1037 数位DP
- Lightoj 1038 概率DP
- django1.6在DEBUGE=False时的静态文件临时处理
- Postgresql数据库控制解析(二)
- mysql 经典语句
- pongo题解之覆盖数字
- rdlc 分页
- Lightoj 1145 DP
- iOS 遍历类成员
- rails 4 中使用 bootstrap的radio button 的形式来提供 单选按钮
- c#.net 下的excel操作(二)
- NSBundle介绍
- Spring MVC 教程,快速入门,深入分析
- 保持ssh连接
- session
- android - anim translate中 fromXDelta、toXDelta、fromYDelta、toXDelta属性