摘要: 我们设置一个dp[j][r][x]表示花j元,r积分,免费拿x次所得的最大价值。那么dp[j][r][x]=Max(dp[j-a[i]][r][x],dp[j][r-b[i]][x],dp[j][r][x-1]);这里最坑爹的是尽然有0元物品与0积分物品,害的我WA了好几次。所有要用一个temp来记录最大值,最后再赋值给dp[j][r][x];#include<iostream>#include<cstdio>#include<cmath>#include<cstring>using namespace std;#define Max(a,b) 阅读全文
posted @ 2013-05-27 23:54 fangguo 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 对于每个同学,不满足的情况为他的一个朋友,他自己,他的一个非朋友。在朋友关系中,会被计算两边,故结果除2。#include<iostream>#include<cstdio>#include<cmath>int b[1010];int main(){ int n,i,j,ans,t; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&b[i]); ans=0; for(i 阅读全文
posted @ 2013-05-27 22:27 fangguo 阅读(142) 评论(0) 推荐(0) 编辑