分析:dp[i]表示前i天的最大收入。
现排序,然后dp[i]=max(dp[i],dp[a[j].s-1]+a[j].v)(a[j].e
#include
#include
using namespace std;
#define N 110
int dp[N]; //dp[i]表示第i天的最大收入
struct Node
{
int s,e,v;
} node[N*1...
分类:
其他好文 时间:
2015-06-07 17:31:39
阅读次数:
153
分析:d[i][j]表示前i回合获得j分的方法数。
d[i][j]=d[i-1][j-1]+d[i-1][j-2]+d[i-1][j-3]。
我方最多进攻20次,每次得3分,最多20*60的状态量。
#include
using namespace std;
//dp[i][j]代表我方第i轮获得j分的种类数
__int64 dp[26][70...
分类:
其他好文 时间:
2015-06-07 17:30:02
阅读次数:
103
题意:一个钟的三个指针在不停的转动,他们厌烦了这样,当他们互相的距离角度大于等于D时,他们会很开心,问一天之中他们happy的时间占总时间的百分比。
分析:只要找到某一分钟内,他们happy的时间,然后钟每过12个小时相当于43200秒复原一次。因此总时间就是43200秒,只要求出在这43200的happy时间,即可求出百分比。枚举12*60分钟,看一分钟内有多少秒是happy的时间,一分钟内解...
分类:
其他好文 时间:
2015-06-07 15:56:17
阅读次数:
141
分析:dp[l][i][j][k]表示选前l件时花费i元,积分j,免费p时能获得的最大价值。k值也作为一种背包算。
状态转移方程:
dp[l][i][j][k] = max(dp[l][i][j][k], dp[l-1][i-a[l]][j][k]+c[i], dp[l-1][i][j-b[l]][k]+c[i], dp[l-1][i][i][k-1]+c[i]) (k > 0, i >= ...
分类:
其他好文 时间:
2015-06-07 15:49:06
阅读次数:
92
#include
using namespace std;
int mod[20]={1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2};
char s[1010]; //字符串
int num[1010]; //转换为数字
int sovle()
{
int len,i,c,ans;
len=strlen(s);
ans=1;
for(i=0...
分类:
其他好文 时间:
2015-06-07 13:55:30
阅读次数:
128
http://acm.hdu.edu.cn/showproblem.php?pid=2177威佐夫博奕,面对奇异局势既bk=ak+k时是必败点,其中bk>=ak,k=bk-ak别的处理和其他博弈相同,注意题目的数据取一堆的时候数据有问题#include #include #include #incl...
分类:
其他好文 时间:
2015-06-07 11:01:16
阅读次数:
122
题意:初始状态为左边空一行,数字在右边28个格子。末态要按一副卡片在一行顺序牌,即第一行为11-17,第二行21-27,。。。。,可以通过四个空格来转移卡片,问从初始状态到末态最少要多少步。
分析:
1、每次操作只能把一个数字放到某个空格,不能交换两个数字的位置。
2、用的是再哈希法hash =(v+10)%M来处理冲突。
3、空格的左边为空或者数字的末尾为7则不能填充。
4、填充空...
分类:
其他好文 时间:
2015-06-07 09:45:12
阅读次数:
263
题意:给一个天数N,求20*20方阵内细菌的变化情况。每次变化加上一个d[k],d数组有给定的16个数。k是某个格子它本身加上它上下左右的四个数。 简单模拟题。
分析:
#include
using namespace std;
int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
char den[]=".!X#";
int D[16];
int map...
分类:
其他好文 时间:
2015-06-07 09:43:15
阅读次数:
102
题意:给一棵树染色,这棵树有n个节点,根结点是r。每个结点都有一个权值ci,开始时间为0,每染色一个结点需要耗时1,每个结点染色代价为ci*ti(ti为当前时间),每个结点只有在父结点被染色的条件下才能被染色。求染完整棵树要花费的最小代价。
分析:贪心总体思路,每次找一个权值最大的节点,如果是根节点,则首先对它染色,否则的话可以得出一个结论,在它父亲已经染色的情况下,立刻给它染色是最优的。对于第...
分类:
其他好文 时间:
2015-06-07 09:40:49
阅读次数:
256
题意:n个洞组成一棵树,有m个士兵,从1号洞开始攻打,每个洞有a个bug和b的价值。一个士兵可以打20个bug,为了拿到这个洞的价值b必须留下k个士兵消灭这个洞的所有bug(k*20>=bug的数量,且留下的士兵不可以再去攻打其他的洞,且必须攻打了前面的洞才可以攻打后面的洞)。问花费这m个士兵可以得到的最大价值是多少。
dp方程:dp[i][j]=max(dp[i][j],dp[i][j-k]...
分类:
其他好文 时间:
2015-06-07 09:35:45
阅读次数:
241