2014年1月20日

USACO 2.2.3 Runaround Numbers

摘要: 题意:求比给出的M大的循环数, 循环数,从位置0开始数arr[0]个数,然后再从位置i数arr[i]个数,最后回到起点解法:简单模拟/*ID: lsswxr1PROG: runroundLANG: C++*/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define USACO# 阅读全文

posted @ 2014-01-20 12:19 小书包_Ray 阅读(313) 评论(0) 推荐(0) 编辑

★USACO 2.2.2 subset problems

摘要: 题意:给定整数N,求出将集合[1...N]划分成两组,使得两组和相等的方案的个数解法: 直接枚举时间复杂度达不到要求。采用递推的方法,回忆经典的背包问题 f[i][v] = max{f[i - 1][v], f[i - 1][v - c[i]] + w[i]}即,第i个物品选或者不选,结合前i-1种物品的情况可以递推出所有的结果 将本题转换一下, 所有数的和为sum,那么每一组的和必为sum /2 (如果sum是偶数),问题就是:在[1...N]的集合中找到数字之和 为sum /2 的方案个数, 状态变量: f[i][sum] 在[1...i]集合中和为sum的方案的... 阅读全文

posted @ 2014-01-20 10:19 小书包_Ray 阅读(203) 评论(0) 推荐(0) 编辑

导航