摘要:
利用传统的完全背包解法会超时,下面代码超时 1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 5 #define INF 1<<30 6 using namespace std; 7 8 int main(){ 9 int T;10 cin >> T;11 while(T--){12 int E,F;13 cin >>E>>F;14 int pigWeight =F-E;15 int n;16 cin >... 阅读全文
摘要:
此题实在无语就因为把判断输入条件写成 n!=-1就WA了几次,自己以后要多注意 1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <cstdio> 5 #include <cmath> 6 7 using namespace std; 8 9 int main(){10 int n;11 while(cin >> n && n >= 0){12 int v,num,sumV = 0;13 vector 阅读全文
摘要:
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 5 using namespace std; 6 7 int main(){ 8 int n; 9 while(cin >>n && n){10 vector<int> food(n);11 for(int i = 0; i < n; i ++ ) cin >> food[i];12 int price;13 cin >> price;14 if(price 阅读全文
摘要:
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 5 using namespace std; 6 7 int main(){ 8 int T; 9 cin >> T;10 while(T--){11 int N, V;12 cin >> N>>V;13 vector<int> value(N), volume(N);14 for(int i = 0; i < N; i ++) cin >>value[i];1 阅读全文
摘要:
每种物品只有一件的是01背包每种物品有无限件的是完全背包每种物品有有限件的是多重背包 (利用二进制思想,转化为01背包)每种物品有多重价值的是二维费用背包这几种背包基本的动态转移方程 dp[i][j] 从前i件物品选择若干物品装到容量为j的背包中产生的最大价值 dp[i][j] = max{ dp[i-1][j] , dp[i][j - c[i] ] + w[i] } 阅读全文
摘要:
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 #include <cstring> 5 #include <cstdio> 6 7 using namespace std; 8 9 int main(){10 int n;11 cin >>n;12 vector<int> stone(n+1,0);13 int sum = 0;14 for(int i = 1; i <= n; i ++){15 cin >> 阅读全文