Step

#1   HDU4488            03/31/2013

2013-03-31 00:17:53

阅读数 359

评论数 0

POJ3014 Cake Pieces and Plates DP

虽说是DP入门题,但第一次要理解还是会花很大的劲。 dp[i][j]表示j块蛋糕放在i个盘子上的方法数,可有盘子是空的。 ①若i==j 当盘子有空,问题可转化为dp[i-1][j] (i-1保证了至少有一个盘子是空); 当盘子全满,只有一种情况,就是每个盘子放一块蛋糕; ②若i>j...

2013-05-23 18:03:10

阅读数 591

评论数 0

POJ2479 Maximum sum DP

最大连续字串和的加强版。 1 -1 2 2 3 -3 4 -4 5 -5 Hit:In the sample, we choose {2,2,3,-3,4} and {5}, then we can get the answer. 即求两段不重叠连续字串的最大和 第...

2013-05-23 16:29:38

阅读数 473

评论数 0

POJ 1159 Palindrome dp

//题意:求至少添加多少个元素使原字符串构成回文 //思路:将原字符串翻转,两字符串求最长公共子串,然后为每个没匹配到的字符在相应对称的位置添加一个元素即可, //结果是n - Lcs.size //因为开dp[5000][5000]超内存,所以用到了传说中的滚动数组 #include #in...

2013-05-21 16:17:48

阅读数 392

评论数 0

POJ 1050 To the Max DP

【题意】求n*n矩阵的最大子矩阵(即子矩阵里的每个数之和最大) 【分析】不会= =,以为要两个坐标同时怎样,各种YY,YY不出来 稍微看了下题解,发现做法挺简单的,在和最大的连续子序列的基础上枚举,将二维矩阵压扁成一维 令a[i][j]为矩阵第j列前i个元素的和,的到一个新的序列,最上面加上...

2013-05-20 09:03:20

阅读数 387

评论数 0

HDU 1160 FatMouse's Speed DP

简单DP,最长递减子序列,要保存路径 矬代码献上: #include #include #define N 1005 struct Mouse { int w,s; int id,prev; }mice[N]; int dp[N]; int cmp(const vo...

2013-05-19 17:13:24

阅读数 463

评论数 0

HDU 2546 饭卡 DP

题意显而易见,不过一个细节看走眼奉献了1WA 【分析】 (1)初始余额m小于5,直接输出m (2)初始余额大于5: 找出最贵的菜,与最末的元素交换位置 然后转化为01背包问题 选择令前n-1种菜之和最接近m-5,然后余额减去最大价值的菜即m - 选择的菜价格之和 - a[n-1] m...

2013-05-19 15:39:06

阅读数 442

评论数 0

hdu 1087 Super Jumping! Jumping! Jumping! DP

简单的递增数列最大和 dp[i]保存以i为结尾的递增数列最大和 于是有dp[i] = max(dp[i], dp[j]+a[i]); #include using namespace std; #define N 1005 int a[N],dp[N]; int main() ...

2013-05-19 14:48:04

阅读数 449

评论数 0

HDU 1058 Humble Number DP

好好做专题系列= = DP第一题 【题意】因子只有{2、3、5、7}中一个或多个的数称为Humble Number,从小到大将它们排成数列,求第n个Humble Number。 这是前20个Humble Number {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 1...

2013-05-19 14:26:31

阅读数 501

评论数 0

hdu 1969 二分查找

比较奇葩的二分: 【题意】N块派(F+1)个分,每块派的半径为r1~rn,分派条件是每个人必须相等并且派是一块的(可由一块分出,但不能两块拼凑)。求没人分得的派的最大面积。 用n块面积的总和除以F+1得最大每人可能分得的派max,于是从0到max二分,条件是分出的整派要大于或等于F+1 二分...

2013-05-19 00:47:37

阅读数 518

评论数 0

hdu 2141 二分查找

省赛跪在二分上= =,抓狂!!! 好吧,恶补基础,找些二分的来做做。 数据比较大~用二分都担心会超时,但它还是过了~~ 方法比较暴力,先把两个数列合并为一个数列。 怎样合并?枚举= =,n平方。 然后得出两个数列,先给合并的数列排序。 下一步?枚举= =,枚举非合并的数列,用每...

2013-05-18 22:11:45

阅读数 531

评论数 0

卡特兰数|斯特灵数

/* 卡特兰数 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120...

2013-05-06 18:14:15

阅读数 538

评论数 0

HDU 1018 Big Number

wiki: 斯特灵公式是一条用来取n阶乘近似值的数学公式。一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特灵公式十分好用,而且,即使在n很小的时候,斯特灵公式的取值已经十分准确。 公式为: 这就是说,对于足够大的整数n,这两个数互为近似值。更加精确地: 或 题目求...

2013-05-06 10:10:02

阅读数 446

评论数 0

stirling

/*Stirling第一类数 #include #define N 20 __int64 mul[N+1], a[N+1][N+1]; void Solve() { mul[1] = 1; for(__int64 i = 2; i <= 20; i++) mul[i] = mul[...

2013-05-06 09:28:43

阅读数 494

评论数 0

a4

#include #define N 100 #define INF 100000000 struct PCB { int id;//标志数 int priority;//优先数 int cputime;//已占用CPU时间 int alltime;//还需占用CPU时间 int sta...

2013-05-03 14:09:44

阅读数 387

评论数 0

HDU 1027 全排列

STL偷懒法= = #include #include using namespace std; int seq[1010]; int main() { int n, m; while(scanf("%d%d",&n,&m)!=EOF) { f...

2013-05-02 14:31:16

阅读数 415

评论数 0

讲个笑话壹

从前,有一只兔子。 又来了一只兔子。 它扶着耳朵站在第一只兔子的肩膀上。 又来了一只兔子。 它扶着耳朵站在第二只兔子的肩膀上。 又来了一只兔子。 它扶着耳朵站在第三只兔子的肩膀上...

2013-04-26 13:22:34

阅读数 564

评论数 0

HDU1005 Number Sequence(规律题)

f[i] 的值由 f[i-1] 和 f[i-2] 求出,而f[i]的值只取0~6,因此该数列是循环的,周期 奇怪的地方(暂时弄不懂,mark着): RE代码 #include int main() { int f[55]; f[1]=1;f[2]=1; int a,b,n,roll; ...

2013-04-23 13:46:56

阅读数 481

评论数 0

HDU1713 相遇周期

题目描述比较坑爹: 1、相遇指的同一点出发然后再次在同一点相遇(不过其实由卫星轨道不在同一平面上也可以想到) 2、圈数和天数描述反了。。。 题目要求的是最小相遇周期,给出b/a(b圈每a天) 、d/c(d圈每c天)。 相遇问题先令时间同步,于是: 有b*c/a*c    d*a/...

2013-04-23 11:19:08

阅读数 483

评论数 0

HDU1443 Joseph

【题意】k个好人和k个坏人围成一圈,好人编号1~k,给定m,从1开始数第m个人被杀,然后从被杀的那个人的下一个人开始计数,如此循环,求使所有坏人被杀前没有一个好人被杀的最小的m。 枚举+直接模拟 #include #include //int ret[16]={0,2,7,5,30,1...

2013-04-23 10:39:28

阅读数 479

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭