上一页 1 ··· 130 131 132 133 134 135 136 137 138 ··· 182 下一页
摘要: 题意: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)
摘要: 题意:给定n个区间,要使每个区间内至少有两个数字被选中,共需要选出多少个不同的数字。分析:按区间结束点从小到大排序,从左到右看每个区间内是否已有两个数被选出,若不够则选该区间最后的数字填补。利用树状数组统计该区间已被选中了多少数字。View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>usingnamespace std;#define maxn 10005struct Interval 阅读全文
posted @ 2011-06-12 15:21 undefined2024 阅读(482) 评论(0) 推荐(0)
上一页 1 ··· 130 131 132 133 134 135 136 137 138 ··· 182 下一页