摘要:
题意:bool多重背包分析:学了种很快的新方法,就是每次填f[j]时直接由f[j-weight[i]]推出,前提是num[j - weight[i]]#include #include #include usingnamespace std;#define maxn 105#define maxm 100005bool f[maxm];int used[maxm], num[maxn], value[maxn];int n, m;void input(){ for (int i =0; i < n; i++) scanf("%d", &value[i]); f 阅读全文
posted @ 2011-06-13 19:57
undefined2024
阅读(2044)
评论(0)
推荐(0)
摘要:
题意:求一个32位整数n写成整数幂的形式,指数最大是多少。分析:首先结果不超过32。从大到小枚举即可。用pow函数,pow函数可以开方,例如求n开i次方,可以改为求n的1/i次幂。一定要写精度,否则waView Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>usingnamespace std;#define eps 1.0e-12longlong n;void work(){ bool fu = 阅读全文
posted @ 2011-06-13 16:27
undefined2024
阅读(323)
评论(0)
推荐(0)
摘要:
利用priority_queue进行广搜,每次弹出距离最短的,并把它能在最大费用内到达的点加入priority_queue由于memset写得马虎,改了很久。View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <queue>using namespace std;#define maxn 105#define maxr 10005struct Edge{ int v, c, l, next;} edge[m 阅读全文
posted @ 2011-06-13 15:59
undefined2024
阅读(693)
评论(0)
推荐(0)
摘要:
题意:在所有长度大于等于m的区间中找一个平均值最大的,输出平均数。分析:动态规划,f[i]表示以i结尾的最大平均数区间的数字总和。num[i]表示f[i]对应的数字数量。则有f[i] = sum[i] - sum[i - m];num[i] = m;或者f[i] = f[i - 1] + cow[i];num[i] = num[i - 1] + 1;意思是要么直接取长为m的区间,要么取以其前一个结尾的最大平均值区间,把当前数字加入其中。View Code #include <iostream>#include <cstdio>#include <cstdlib&g 阅读全文
posted @ 2011-06-13 14:21
undefined2024
阅读(897)
评论(0)
推荐(0)