摘要: 此dp可以理解为最暴力的dp,因为他需要遍历每个状态,所以将会出现2^n的情况数量,所以明显的标志就是数据不能太多(好像是<=15?),然后遍历所有状态的姿势就是用二进制来表示,01串,1表示使用,0表示未使用,就把所有的状态投射到很多二进制的数上(类似于hash?)然后对每个状态找上一"些"状态的 阅读全文
posted @ 2017-04-12 21:40 benTuTuT 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 点这里去看题 区间dp ,dp[l][r][d]代表从l到r的区间底色为d,具体看代码 第一次见到区间dp。。。两个小时对着敲了五遍终于自己敲懂了一遍ac 阅读全文
posted @ 2017-03-21 22:08 benTuTuT 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 点这里去看题 套公式,判断是否为奇异组合 阅读全文
posted @ 2017-03-18 13:13 benTuTuT 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 点这里去看题 n为斐波那契数时,先手败,推断方法见算法讲堂 阅读全文
posted @ 2017-03-18 10:52 benTuTuT 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 点这里去做题 如图 找必胜点和必败点, 1.终点为必胜点 2.所有能一步走到必胜点的都是必败点 3.每一步都只能走到必败点的是必胜点 阅读全文
posted @ 2017-03-17 17:11 benTuTuT 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 点这里去做题 基础的巴什博奕,注意m<n的情况 阅读全文
posted @ 2017-03-17 16:42 benTuTuT 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 点这里去做题 最简单的巴什博奕 ,凑m+1 阅读全文
posted @ 2017-03-17 16:35 benTuTuT 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 最水的一道石油竟然改了一个小时,好菜好菜。 x<=r y<=c x<=r y<=c x<=r y<=c x<=r y<=c 阅读全文
posted @ 2017-03-14 22:11 benTuTuT 阅读(95) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include using namespace std; int a[100001],vis[100001]; queueq; int bfs(int n,int k) { int head,next,i; q.push(n); a[n]=0; vis[n]=1; while(q.size(... 阅读全文
posted @ 2017-03-14 20:51 benTuTuT 阅读(111) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include using namespace std; int a[5][5],b[5][5]; int di[4][2]={0,1,0,-1,1,0,-1,0}; void bfs(int x,int y) { int tx=x,ty=y,i; if(a[x][y]==0) { a[x][y]=1... 阅读全文
posted @ 2017-03-14 17:43 benTuTuT 阅读(190) 评论(0) 推荐(0) 编辑