HDU 5366 The mook jong (简单DP)】的更多相关文章

题意:ZJiaQ希望把木人桩摆在自家的那个由1*1的地砖铺成的1*n的院子里.由于ZJiaQ是个强迫症,所以他要把一个木人桩正好摆在一个地砖上,由于木人桩手比较长,所以两个木人桩之间地砖必须大于等于两个,现在ZJiaQ想知道在至少摆放一个木人桩的情况下,有多少种摆法. 思路:题意类似于“要求找到所有满足这样要求的二进制的数:(1)不能出现101   (2)不能出现11  (3)不能为0”. 问题是可以降低规模的,也就是也可以递推,假设cnt[i][0]表示第i位放0的所有可能数,cnt[i][1…
先暴力写了一个DFS,然后找规律.. #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; __int64 dp[]; int main() { dp[]=; dp[]=; dp[]=; dp[]=; ;i<=;i++) dp[i]=dp[i-]++dp[i-]; int n; while(~scanf("%d&q…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5375 题面: Gray code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 626    Accepted Submission(s): 369 Problem Description The reflected binary cod…
题目 简单dp //简单的dp #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; ][];//dp[i][j] di i ceng di j ge zui da he ][]; int main() { int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&…
超级楼梯 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 58070    Accepted Submission(s): 29503 Problem Description 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?   Input 输入数据首先包含一个整数N,表示测试实例的个数,然后是…
思路: 因为是对称的,所以如果两段是对称的,那么一段的前缀和一定等于另一段的后缀和.根据这个性质,我们可以预处理出这个数列的对称点对.然后最后一个对称段是从哪里开始的,做n^2的DP就可以了. 代码: #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <algorithm> #inc…
题意: 地图为长为n个单位长度的直线,每通过一个单位长度需要t秒. 有3种塔,红塔可以在当前格子每秒造成x点伤害,绿塔可以在之后格子造成y点伤害,蓝塔可以使通过单位长度的时间增加z秒. 让你安排塔的排列是造成的伤害最大. 思路: 最开始想到dp,状态dp[i][r][g][b]表示:假设前i格放了r个红塔.g个绿塔和b个蓝塔,枚举第i+1格放什么. 因为长度最大为1500,所以如果这样开状态的话,需要1500^4的空间,这显然是开不下的. 后来想到,一种塔的数量可以表示成总数减去另外两种塔的数量…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6024 题意:有n个room在一条直线上,需要这这些room里面建造商店,如果第i个room建造,则要总花费加上Ci , 不建造的话, 总花费就要加上去左边的第一间商店的距离.求总的最小花费. 题解:dp1[i] 为第i个建造的最小花费, dp2[i] 为第i个不建造的最小花费. dp1[i] = min(dp1[i-1], dp2[i-1]) + Ci dp2[i] = min(dp2[i], dp…
Tickets 搬中文 Descriptions: 现在有n个人要买电影票,如果知道每个人单独买票花费的时间,还有和前一个人一起买花费的时间,问最少花多长时间可以全部买完票. Input 给出 N(1<=N<=10),表示有N组样例 给出K (1<=K<=2000),表示有K个人买票.. 给出K个数表示这个人单独买票会花的时间..保证每个数 (0s<=Si<=25s) 给出K-1个数,表示这个人和前面那个人一起买票会花的时间..保证每个数 (0s<=Si<=…
The mook jong 问题描述 ZJiaQ为了强身健体,决定通过木人桩练习武术.ZJiaQ希望把木人桩摆在自家的那个由1*1的地砖铺成的1*n的院子里.由于ZJiaQ是个强迫症,所以他要把一个木人桩正好摆在一个地砖上,由于木人桩手比较长,所以两个木人桩之间地砖必须大于等于两个,现在ZJiaQ想知道在至少摆放一个木人桩的情况下,有多少种摆法. 输入描述 输入有多组数据,每组数据第一行为一个整数n(1 < = n < = 60) 输出描述 对于每组数据输出一行表示摆放方案数 输入样例 1 2…