08 2012 档案

摘要:本题和南阳上的那个 房间安排 一个道理,不过就是加了个是两排房子,需要化简;简单思想:初始化数组,如果需要移动,自增一,代表一个操作,最后便历,找出操作数做多的那个,就是我们需要的最长时间代码:#include<stdio.h>#include<string.h>int main(){ int T,a[250],max,i,j,f,t,n,x; scanf("%d",&T); while(T--) { scanf("%d",&n); memset(a,0,sizeof(a)); for(i=0;i<n;++i 阅读全文
posted @ 2012-08-23 17:43 煮人为乐 阅读(346) 评论(0) 推荐(0)
摘要:PacketsTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 36708Accepted: 12227DescriptionA factory produces products packed in square packets of the same height h and of the sizes 1*1, 2*2, 3*3, 4*4, 5*5, 6*6. These products are always delivered to customers in the square parcels of the same h 阅读全文
posted @ 2012-08-23 16:51 煮人为乐 阅读(899) 评论(1) 推荐(1)
摘要:In ActionTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2165Accepted Submission(s): 713Problem DescriptionSince 1945, when the first nuclear bomb was exploded by the Manhattan Project team in the US, the number of nuclear weapons have soared acros 阅读全文
posted @ 2012-08-23 11:44 煮人为乐 阅读(420) 评论(0) 推荐(0)
摘要:FATETime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3945Accepted Submission(s): 1742Problem Description最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐 阅读全文
posted @ 2012-08-22 18:35 煮人为乐 阅读(302) 评论(0) 推荐(0)
摘要:这个题,我使用最短路的方法解得,初始化每段路为1 ,这样只要找出荷最小的就最佳方法。初始化时,用上下来初始MAP#include<stdio.h>#define MAX (1<<20)#define MAX_1 1001int n,A,B,map[MAX_1][MAX_1],dis[MAX_1];bool vista[MAX_1];void dilskta(int k){ int i,j,u,min; for(i=1;i<=n;++i) { vista[i]=false; dis[i]=map[i][k]; } for(i=2;i<=n... 阅读全文
posted @ 2012-08-22 11:12 煮人为乐 阅读(202) 评论(0) 推荐(0)
摘要:背包问题里面最基础的0 1背包问题,就是讲放或者不放的问题。其基本思想是,先放一个权值,然后用剩余的空间来放其他的,更新这时全部的能量状态,然后放两个,这时是 根据第一次的各权值状态来更新本次能量状态....依次类推#include<stdio.h>#include<string.h>int max(int a,int b){ return a>=b?a:b;}int main(){ int T,n,m,i,j,f[1010],a[1010],v[1010]; scanf("%d",&T); while(T--) { scanf(&qu 阅读全文
posted @ 2012-08-22 10:45 煮人为乐 阅读(194) 评论(0) 推荐(0)
摘要:本题的基本思路是想地杰斯特拉找出最短路,然后用广搜找出有多少个路这个题很让人崩溃,刚开始一直runtime error 搞得我一头雾水,高了半天,我map初始化的语句该做条件表达式就过了,不解今天大奔又弄个runtime error 问我类,我昨天在自己的电脑上交了,回头他交不了,我愣了愣,后来才发现得用c++提交,依然无解#include<stdio.h>#include<string.h>#define MAX 1000010//#define MAX_1 1001int map[1001][1001],dis[1001];int res[1001];int n,m 阅读全文
posted @ 2012-08-22 09:16 煮人为乐 阅读(317) 评论(0) 推荐(0)
摘要:本题我的基本思路是先固定第一行和第一列,从2,2,开始更新。只要保证本列和本行纹出现过就行,而且还要从小到大访问#include<stdio.h>#include<math.h>int a[600][600];int main(){ int k,n,max; int i,j,x,xx,y,yy,flat,f; while(scanf("%d",&n)!=EOF) { max=(int)pow(2,n); x=2; y=2; for(i=1;i<=max;++i) { a[1][i... 阅读全文
posted @ 2012-08-21 08:23 煮人为乐 阅读(169) 评论(0) 推荐(0)
摘要:该题和那个蜜蜂朝露,上楼梯其实差不多,因为只有0和1两个数字,所以情况就变得可知,用递归可以找出#include<stdio.h>int a[42];int fan(int k){ if(k==2) return a[k]=3; if(k==3) return a[k]=5; if(k>3) return a[k]=fan(k-1)+fan(k-2);}int main(){ int T,n; scanf("%d",&T); a[0]=0; a[1]=1; fan(40); while(T--) ... 阅读全文
posted @ 2012-08-20 10:59 煮人为乐 阅读(190) 评论(0) 推荐(0)
摘要:这个题还是用递归做的,就是一个一个深度遍历,条件合适时,就输出当前数组存储的の即可#include<stdio.h>#include<math.h>#include<string.h>int a[25],ben[25],n;int prime(int k){ int i; for(i=2;i<sqrt(k)+1;++i) if(k%i==0) return 0; return 1;}void print(int count){ int i; if(count==n&&prime(a[0]+a[n-1]))//当满足条件时就输出 ... 阅读全文
posted @ 2012-08-20 10:56 煮人为乐 阅读(165) 评论(0) 推荐(0)
摘要:本来不打算写这些的,感觉有点水,就是知道递推公式就行啦,还有就是__int64的问题,输出用I64d%蟠桃记Time Limit : 2000/1000ms (Java/Other)Memory Limit : 65536/32768K (Java/Other)Total Submission(s) : 62Accepted Submission(s) : 46Font: Times New Roman | Verdana | GeorgiaFont Size: ← →Problem Description喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有 阅读全文
posted @ 2012-08-18 11:15 煮人为乐 阅读(5457) 评论(0) 推荐(0)
摘要:这次测试,上来我就啃了这这个题,谁知半小时了,脑子还是一头雾水,别人已经刷了4道啦,没办法,只好先放一放。其他的做完菜回过头重新做。字符串里面,我一直不擅长字符指针,刚开始用字符指针去做,但是很吃力,因为要考虑结束符的问题。再看查题,里面的括号真是个问题,加上这次老师说是考递归,我想里面的括号难道是用递归脱去,但想想这样也太麻烦了吧。没办法,只好用那一招啦---查资料,人家说时先脱括号,从后面向前脱。感觉说的有道理,脱去的只要连起来就行啦,哎...有好几个童靴都提交啦,里面的数组需要小心,容易出错,我也是参考人家的格式,感觉还要多加练习才行啊.no Code - -||#include< 阅读全文
posted @ 2012-08-18 11:03 煮人为乐 阅读(365) 评论(0) 推荐(0)
摘要:这个题目用一般的搜索无法完成,因为题目要求在指定的时间内完成,所以只好一步一步来啦,用DFS解决但是如果这样结果会超时,网上说是用一种奇偶剪枝的方法来间断搜索时间,下面是剪枝的简单理论,一看就懂: 把map看作 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 从 0->1 需要奇数步 从 0->0 需要偶数步 那么设所在位置 (x,y) 与 目标位置 (dx,dy) 如果abs(x-y)+abs(dx-dy)为偶数,则说明 abs(x-y) 和 abs(dx-dy)的奇偶性相同,需要走偶数步 如果abs(x-y 阅读全文
posted @ 2012-08-17 17:17 煮人为乐 阅读(2516) 评论(0) 推荐(0)
摘要:第一次用递归搜索,感觉怪神奇的,就是记者标记指针和返回 就行啦View Code /* 功能Function Description: POJ-1979 开发环境Environment: vc6.0 技术特点Technique: 版本Version: 作者Author: jzjz 日期Date: 20120817 备注Notes: 迷宫搜索 */#include<stdio.h>#include<string.h>int... 阅读全文
posted @ 2012-08-17 11:34 煮人为乐 阅读(193) 评论(0) 推荐(0)
摘要:这个题网上有很多讲解,感觉在看这个题之前最好先去看看KMP ,不然看再多的讲解,可能也不能理解构造失败指针的意义是什么。在KMP中NEXT的作用是党不匹配时指针后移,而这个后移量则是通过 NEXT 来控制的,这个题里面 构造 失败指针的意义 和NEXT的作用一样,就是前后移动指针的。这个懂了,再看看别人的图示,就会明白构造的过程,其中 我理解的是用 广度优先 遍历的。大家可以看看这个文章http://www.cppblog.com/mythit/archive/2009/04/21/80633.html里面讲解的很详细。代码:#include<stdio.h>#include< 阅读全文
posted @ 2012-08-17 10:20 煮人为乐 阅读(832) 评论(0) 推荐(0)
摘要:食物链Time Limit : 2000/1000ms (Java/Other)Memory Limit : 20000/10000K (Java/Other)Total Submission(s) : 2Accepted Submission(s) : 1Problem Description动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是"1 X Y",表示X和Y 阅读全文
posted @ 2012-08-15 10:37 煮人为乐 阅读(329) 评论(0) 推荐(0)
摘要:这个题的大致思路是 先判断 是否在同集内,如果输入的两个在,那么标为NO,如果这样还不能确定结果,那么用判断是否联通来确定,另外注意的就是0 0的情况 和 标记 数组(判断是否出现,因为最后判断联通,是连续的)的问题。/* 功能Function Description: HDOJ-1272 开发环境Environment: vc6.0 技术特点Technique: 版本Version: 作者Author: jzjz 日期Date: 20120814 备注No... 阅读全文
posted @ 2012-08-14 10:44 煮人为乐 阅读(1250) 评论(0) 推荐(0)
摘要:#include<stdio.h>int bin[1001];int find(int x){ int t=x; while(bin[t]!=t) t=bin[t]; return t;}void insert(int x,int y){ int fx,fy; fx=find(x); fy=find(y); if(fx!=fy) bin[fx]=fy;}int main(){ int n,m,a,b,i,sum; while(scanf("%d",&n),n) { for(i=0;i<=n;+... 阅读全文
posted @ 2012-08-13 18:00 煮人为乐 阅读(150) 评论(0) 推荐(0)
摘要:这个题原来没有思路,感觉较难,想着得建树,后来在讨论区看到神贴,用set水过,看了一下,才想到方法,其实这个不用set的巧妙之处是 运用了set 相同的元素只存储一个的特性,建立两个容器,好啦,大家一看代码便知思路,我暴怒废话啦#include<iostream>#include<set>#include<string>#include<algorithm> //这个不能少,用到比较时旧的添上using namespace std;int main(){ int n; string str1,str2; set<string>a,b; 阅读全文
posted @ 2012-08-13 10:21 煮人为乐 阅读(226) 评论(0) 推荐(0)
摘要:没啥好说的,比较简单,就是注意一些特殊的提放就行啦/* 功能Function Description: HDOJ_2574 开发环境Environment: vc6.0 技术特点Technique: 版本Version: 作者Author: jzjz 日期Date: 20120813 备注Notes: 题目大意是 找出女生编号中,包含素数种类最多的(不是个数),如果两个相同,找出字典数小的,输出名字 */#include<stdio.h>#includ... 阅读全文
posted @ 2012-08-13 09:26 煮人为乐 阅读(203) 评论(0) 推荐(0)
摘要:这两天简单研究了KMP ,网上有很多讲解的文章,我在这里就不班门弄斧啦。大家要是学的话,可以看看这个人写的http://www.matrix67.com/blog/archives/115。KMP要是只看讲解,估计会很困难,大家可以结合具体例子去调试分析学习,比较快把。NEXT 有很多不同的版本,我喜欢传统的版本,下面就用POJ这个题做个模板把。3561这个题目说的长。一看例子就知道,和那个剪画布的一模一样。就是从第二个里面找第一个串的数量。当然这里主串交长,简单的BF是行不通的。下面代码 1 #include<stdio.h> 2 #include<string.h> 阅读全文
posted @ 2012-08-10 16:16 煮人为乐 阅读(206) 评论(0) 推荐(0)