摘要:
题目描述总结1. 编程之美讲了剪枝解法, 这里给出动规解法2. dp[i][j]%n = j. dp[i][j] 是 mod n 余 j 的最小值代码/* * source.cpp * * Created on: Apr 6, 2014 * Author: sangs */#include #include #include #include #include using namespace std;typedef unsigned long long LL;LL dp[200][500];LL cal(int n) { LL lastModed = 1; LL expr10 = ... 阅读全文
摘要:
题目描述总结1. 枚举 i 是未被取到的价值最小的酒, 那么 0~i-1 都取到了, 对 i+1~end 运行 01 背包代码 有些极端 case 没考虑到/* * source.cpp * * Created on: Apr 6, 2014 * Author: sangs */#include #include #include #include #include #include using namespace std;int arr[100];int dp[2000];int cal(int n, int target) { int res = 0; int sum = 0;... 阅读全文
摘要:
题目描述总结1. 完全背包框架都想了半天2. 我随机取了个背包的上限, 超时了代码 超时/* * source.cpp * * Created on: Apr 6, 2014 * Author: sangs */#include #include #include #include #include using namespace std;const int INF = 0X3F3F3F3F;const int MAXMONEY = 50000;int val[2000];int num[2000];int dp[MAXMONEY+100];void firstPass(int n... 阅读全文
摘要:
题目描述总结1. 偏移的设置又思考了很久, 实际上, 枚举几个例子就能把思路找出来2. dp[i][j], 循环的最外两层循环分别是 i, j3. 初始化问题, dp[i][j] 初始化成 0 更好, 下面的代码写的很丑, 就是因为初始化没搞好. 做题时若实在拿捏不准到底初始化成 0, 1 还是 INF, 那就都试试代码/* * source.cpp * * Created on: Apr 5, 2014 * Author: sangs */#include #include #include #include #include using namespace std;const ... 阅读全文