上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 44 下一页
摘要: 题目链接和QC没事搞个练习赛,感觉水题居多,这个是我做的唯一比较印象深刻的。这个题,看着题意 那叫一个纠结啊。然后 有点恶搞,以为BFS,DFS神马的,自己乱写了几个代码,错了两次后,想到了正解。。。幸好认真思考了。。。 1 #include <stdio.h> 2 #include <string.h> 3 #define N 1000000 4 int p[5][5],z,o[5]; 5 int main() 6 { 7 int i,j,min,k; 8 z = 0; 9 for(i = 1; i <= 4; i ++)10 for(j = 1; j... 阅读全文
posted @ 2012-07-29 21:52 Naix_x 阅读(239) 评论(3) 推荐(0) 编辑
摘要: 题目链接不加记忆化 搜索 TLE,加上15ms..... 1 #include <stdio.h> 2 #include <string.h> 3 char str1[201],str2[201],str3[402]; 4 int p[201][201]; 5 int z,len; 6 void dfs(int a,int b,int x) 7 { 8 if(z) return ; 9 if(p[a][b]) return ;10 p[a][b] = 1;11 if(x > len-1)12 {13 z = 1;14 re... 阅读全文
posted @ 2012-07-29 10:29 Naix_x 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题目链接赤裸裸的二维树状数组,不用变形什么的。二维树状数组p[i][j]代表的i-lowbit(i)+1 to i ,j-lowbit(j)+1 to j 这个矩阵的和,insert和getsum函数做了一下改变,用两个for来实现插入和求和。又忘记 树状数组 不能为 0,调试了一会,再就是 对求某个区间的和,还是不是很熟悉wa了几次。如求(x1,y1)到(x2,y2)的和,画画图像可以很快得到公式。getsum(x2,y2)+getsum(x1-1,y1-1)-getsum(x2,y1-1)-getsum(x1-1,y2); 1 #include <stdio.h> 2 #inc 阅读全文
posted @ 2012-07-28 10:09 Naix_x 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题目链接中规中矩的二维DP,披着背包的外衣,但感觉和背包没有毛线关系吧。状态转移 p[i][j] = max(p[i-1][j-k]+o[i][k]) k:0 to j i代表课程j代表时间. 1 #include <stdio.h> 2 #include <string.h> 3 int p[101][101],o[101][101]; 4 int main() 5 { 6 int i,j,k,n,m,max; 7 while(scanf("%d%d",&n,&m)!=EOF) 8 { 9 if(!n&&!m) br 阅读全文
posted @ 2012-07-27 20:28 Naix_x 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题目链接第一个树形DP,这个题,以前用普通方法搞,WA了,然后知道是树形DP后,以为类似是数塔只不过是在树上而已,原来理解错了。。。参考了很多的解题报告,看了很多关于树形DP的文档。。终于,完成了,感觉非常类似滑雪的记忆化搜索。状态转移分情况讨论一下,有和一个叉连接,和两个叉连接。节点数总是m+1的。 1 #include <stdio.h> 2 #include <string.h> 3 struct tree 4 { 5 int l,r; 6 }p[101]; 7 int o[101][101],key[101],n,m; 8 int map[101][101]; 阅读全文
posted @ 2012-07-27 16:03 Naix_x 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题目链接说着这个题难吧,代码真的是非常裸,说简单吧,自己想了好几天,都没想出如何用树状数组。以前见过用hash的方式映射的,为什么就没想到呢。。。 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 #define N 500001 5 int p[N],n; 6 struct node 7 { 8 __int64 x; 9 int id;10 }num[N];11 int cmp(const void *a,const void *b)12 {13 return (*(str 阅读全文
posted @ 2012-07-27 13:43 Naix_x 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目链接以前对快排不熟,不会搞结构体快排,今天正巧比赛里有这个题。。。秒杀了。。还是研究树形DP吧。。 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 struct node 5 { 6 int x; 7 int y; 8 int id; 9 }p[150001];10 int cmp(const void *a,const void *b)11 {12 struct node *c = (struct node *)a;13 struct node *d = (str.. 阅读全文
posted @ 2012-07-27 08:52 Naix_x 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 真的是好久没写总结了,每天都在忙着刷题,看题,看新的东西,暑假时间多了,更要提高效率。说一下今天的比赛,其实也没啥好说的,或许对于我们来说题目难度有点大,每次我们都是跟题,这样的选择也是无奈啊。。。每次做多校都是被虐。。。在受虐中成长吧,今天的比赛第一个题,不知是数据水,还是就是贪心。。。在怀疑中31分钟1Y了。。。剩下继续找可做的题。。找了半天,发现各种神似图论的题。。第二个神似几何题,然后我觉得好像见过,然后想到做过1维答案是中位数,然后就以为是和中位数,然后悲剧了14次提交,中间各种恶搞啊。。在1-3个小时的时候,现在想想就是一种折磨啊,看着外校的队伍都在过题,实在是痛苦啊,帮着sc.. 阅读全文
posted @ 2012-07-26 18:46 Naix_x 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 题目链接其实这个就是经典的DP,编辑距离,状态转移啥的,在书上讲的很详细,这个题,要输出路径。中间注意在删除和插入的时候要把路径上的位置改变,WA了3次。。。基本上是自己盲查数据查到的。。。开始的时候并不是用队列存的每一种操作,想当然的以为每个位置都只有一个操作,没想清楚,va aaaav。。然后就是这个位置的变化。。。没有注意到插入,注意了插入,又忘记了删除,abcde,deabc。。。总之,过程很曲折。。 1 #include <stdio.h> 2 #include <string.h> 3 char str1[100],str2[100]; 4 int p[10 阅读全文
posted @ 2012-07-26 10:36 Naix_x 阅读(539) 评论(0) 推荐(0) 编辑
摘要: 题目链接很不错的一个DP,结果让我糟蹋了。。想了半天把状态方程想出来,结果编程的时候,把一个1写成i了,在SCF和QC的帮助下查到了。。。真悲剧啊20+的提交。。。题意:老板雇人有,招人费,工人工资,开除人的费用。给出第几个月需要几个人。问最少的花费。二维DP。i代表月份,j代表在这个月的人数。所以这个月的情况跟上个月有关系,状态转移方程o[i][j] = min (o[i-1][k] +新的花费);按说1打成了i,应该是很大的错误,怎么过的数据啊。。。。 1 #include <stdio.h> 2 #include <string.h> 3 #define N 10 阅读全文
posted @ 2012-07-25 21:02 Naix_x 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 题目链接题目直接说明题意了,求最长上升的公共子序。开一个标记数组,标记上一个匹配的数字就行。这个题坑爹的是输出格式,题目中根本没有说明,不过,猜猜就知道是每个样例之间有空行,还果真是。。。PS:这样是瞎搞过的。。。。杭电数据水了。。。2012.8.13PS:这份代码是正解,这个坑过了好久了,才来添。。。其实就是把dp[i][j][k],然后多一维记录上升长度为k,最小的数是多少。。。然后+各种优化,时间复杂度降低到O(n^2),然后空间复杂度也降了很多。。。2012.11.6 1 #include <cstdio> 2 #include <cstring> 3 usin 阅读全文
posted @ 2012-07-25 16:27 Naix_x 阅读(162) 评论(5) 推荐(0) 编辑
摘要: 题目链接和以前HDU1081很类似。1081有两种做法,一种是直接压缩成一维,一种是利用矩形内部加减。这个题,只能用后者吧,反正我用的后边一种方法。 1 #include <stdio.h> 2 #include <string.h> 3 __int64 p[1000][1000],o[1000][1000],sum[1000][1000]; 4 int main() 5 { 6 int i,j,m,n,t,x,y; 7 __int64 max; 8 scanf("%d",&t); 9 while(t--)10 {11 memset(p,.. 阅读全文
posted @ 2012-07-25 16:06 Naix_x 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 题目链接map建哈希,题目中NC不知道搞神马的。。。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <vector> 5 #include <map> 6 #include <queue> 7 #define N 16000001 8 using namespace std; 9 map <string,bool> p;10 char o[N],k[N];11 int main()12 {13 int t,i, 阅读全文
posted @ 2012-07-25 15:32 Naix_x 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题目链接当看懂这个题意的时候,就没啥难度了,百练上有个中文版的数据一模一样。。。普通O(n^2)DP。 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 int o[2000]; 5 struct node 6 { 7 int x,y; 8 int h; 9 }p[2000];10 int cmp(const void *a,const void *b)11 {12 return (*(struct node *)a).x >(*(struct node *)b).x 阅读全文
posted @ 2012-07-25 14:52 Naix_x 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 今天讲的是高精度加法减法。整理一下这部分,当模版了。。高精度加法,无小数部分。百炼 2981大整数加法算是精简了一点。 1 #include <stdio.h> 2 #include <string.h> 3 int p1[300],p2[300]; 4 int main() 5 { 6 char str1[201],str2[201]; 7 int i,len1,len2,max; 8 scanf("%s%s",str1,str2); 9 len1 = strlen(str1);10 len2 = strlen(str2);11 for(i =.. 阅读全文
posted @ 2012-07-25 10:49 Naix_x 阅读(673) 评论(3) 推荐(0) 编辑
上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 44 下一页