摘要: 今天基本上一个晚上的时间都花在这道题目了,感觉是一道典型的 BFS,主要时间花在判重的方法上了;一开始没判重,而且每比较,所以得不到最短时间.....一开始是在每个坐标上设布尔值,若走过此地则 布尔:=false; 后来发现根本不行,因为路径不同,也可能走过同一个地方;后来 zyt 大牛灵光一现,我茅塞顿开,其实可以在每个坐标上记录从起点到该坐标的最短时间(首先要预处理,否则都为0了),如果当前所用时间小于记录时间,则记录时间等于当前时间,继续此次操作;否则停止这次操作,进行下一次操作;感觉对搜索越来越熟悉了,程序是需要练的啊........恩...贴一下代码...... 1 program 阅读全文
posted @ 2012-10-05 22:07 改名字干什么 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 向总今天中午跟我们说要做合并果子,用堆来做,堆是前几天才学的,还没怎么熟悉。程序的大概思路是用 贪心+堆结构,不知道快排能否过,现在还没试。每次取出一个最小值,筛一次,维护堆(每次都加了一个maxlongint,防止越界的情况,想向各位大牛们请教更好的方法。);两个最小值相加,既是该次所耗体力,再把它放入堆中。代码............... 1 program P1097; 2 var 3 s,n,i,j,k,u,x,y:longint; 4 a:array[1..10001] of longint; 5 procedure shai(m,n:longint); 6 var... 阅读全文
posted @ 2012-10-05 19:30 改名字干什么 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 恩.......DFS深度搜索+递归,主要是判断的问题(弄了比较久....),把每一次的字母数记录下来,找最大值;代码如下.....感觉还是不错的......program p1311;var s:array[1..21] of string; b:array[1..21] of longint; i,j,k,z,y,l,n,m,max:longint; ch,ch2:char;procedure haha(a:string;data:longint);var i,j,k,l,m,c,data2:longint; s2:string;function pan... 阅读全文
posted @ 2012-10-05 15:52 改名字干什么 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 恩...用DFS深搜,本来是想编一个循环的DFS的,可是编了好久没有编出来,所以干脆还是用递归的办法编了一个,递归倒不是很难,这道题感觉有点八皇后的影子,每次一到临界条件然后判断是否符合题意就可以了,把程序贴下,顺便向大牛们求循环的编法。 1 program p1128; 2 var 3 n,s,k,i,j,m:longint; 4 x:array[1..30]of longint; 5 procedure haha(a,q,s:longint); 6 var 7 i,j:longint; 8 function ha(a:longint):boo... 阅读全文
posted @ 2012-10-05 11:08 改名字干什么 阅读(173) 评论(0) 推荐(0) 编辑