- 博客(13)
- 收藏
- 关注
原创 10282 - Babelfish(stl map)
10282 - Babelfish题目大意:就是构建一个字典,用来查询单词。阶梯思路:用stl map,用来一一对应单词。然后string可能不支持printf,之前一直都错在这里。然后前面输入的需要注意一下,接受空行用gets和s【0】 == ‘\0’结合判断。#include#include#include#includeusing namespace std;
2014-03-31 19:35:50 804
原创 uva 10591 Happy Number(判重)
description:Problem CHappy NumberTime Limit1 Second Let the sum of the square of the digits of a positive integer S0 be represented by S1. I
2014-03-29 11:05:04 681
原创 141 - The Spot Game(STL set)
141 - The Spot Game题目大意:给出n* n的棋盘,有两个玩家,每个玩家都可以往棋盘上放棋子或是移除一个棋子,判断哪个玩家做完上述动作后的棋盘和之前相同,那这个玩家就输了。棋盘重复包括旋转相同,光看上诉给的图示会漏了一种,分为左旋转,右旋转,180度上下旋转,加上自身一共四种。解题思路:用stl里的set来判重,每次都把这个状态的其他相同的状态找出来,然后逐一的
2014-03-29 10:55:33 604
原创 uva:310 - L--system(字符串处理+ bfs)
310 - L--system题目大意:给出替换的a, b字符串,用来替换遇到的a, b,和起始的字符串和目标字符串,问能否构成形如:(x目标字符产y)这样的字符串;其中x, y可以为空。解题思路:刚开始想用bfs每次替换一个a,或是b,然后储存起来,但是这样的话最后的数组变得非常的大;后来借鉴了别人的思路:他是把原字符串里面长度小于等于目标字符串长度的子串分离出来,做标志
2014-03-20 15:26:08 910
原创 uva:321 - The New Villa(bfs + 哈希判重)
uva:321 - The New Villa题目大意:就是有一个男青年买了一栋大房子,但是他又怕黑,他的卧室又在的通过走廊和另外的房间才能到达,但是走廊的有灯亮着他才敢走,所以现在题目给出每个走廊和房间的门是通向哪里的,和在这个房间内的开关是控制那个房间的。问他能够找到方法使得他能够回到自己的卧室并且最后只剩卧室里的灯是亮的。解题思路:总体的思路是bfs,只是原本是上下左右的移动
2014-03-18 22:36:13 774
原创 uva:704 - Colour Hash
题目:704 - Colour Hash题目大意:有一个彩色的两个轮子的拼盘,每次转动都是同颜色的一起转动。转动有四种,左边的顺时针,右边顺时针,左边逆时针,右边逆时针。解题思路:刚开始用单向bfs,结果忽略了数组太大了,要4^16大小的数组,编译器开不下,所以改用了双向的bfs(),先逆向的bfs()一次,遍历步数只要到8就可以。以后每组数据再从正向开始bfs()
2014-03-10 20:04:58 651
原创 uva:10085 - The most distant state
10085 - The most distant state题目大意:就和八码数问题类似,只是题目没有给最终的状态,要求你自己写出最终的状态,并且给出最短的路径。解题思路:和八码数的解题思路是相同的,只是不给最终的状态,而是让它自己去bfs()直到最后已经不能在走的地步(再走下去就会重复的情况),这里的判重用了哈希判重。然后就是存储路径问题:开了一个数组dis【】用来存
2014-03-07 15:52:48 793
原创 uva:307 - Sticks(dfs + 剪枝)
题目:307 - Sticks题目大意:给出不多于50个的木棍块,这个木棍块又是由一些等长的木棍被随意切割而成的,所以现在题目要求要找出这些木棍块能拼出的最多的木棍长度。解题思路:这题就是dfs + 剪枝。剪枝的地方有4处:1.木棍的长度一定会是这些木棍块加起来的长度的约数,并且木棍是被切割的,所以一定不能小于最长木棍块长。2.将木棍块从大到小排序,找能否拼成某
2014-03-06 23:57:54 2881 3
原创 10422 - Knights in FEN(迭代深度搜索)
题目:10422 - Knights in FEN题目大意:5 * 5的棋盘上摆好了旗子,旗子是按照马走日的规则来的,问能在十步之内将起始的棋盘变成题目所给的棋盘那样吗?可以输出最少步数,不可以就输出不行。解题思路:这题之前我是想着用bfs,但是那个时候判重的时候没有想到用STL,用哈希不太会,直接开数组判重又太大了,用set来记录一个棋盘的状态(之前没有想到),后来看了别
2014-03-05 21:23:30 859
原创 10603 - Fill(BFS)
题目:10603 - Fill题目大意:倒水问题。给出三个杯子,杯子都有固定容量但是没有刻度,并且第一二个杯子是空的,第三个是满的。然后给出想要的水量,问最少要倒多少的水才能得到这个水量,如果不能得到的话,最接近这个水量且小于这个水量的是多少,同样为了得到这个新的水量要的最少的倒出的水。解题思路:这是隐式搜索图问题,把倒水后得到的状态作为图来遍历,并且开一个二维的数组来保存
2014-03-05 15:00:58 926
原创 110 - Meta-Loopless Sorts(递归)
题目:110 - Meta-Loopless Sorts题目大意:模拟比较的过程。解题思路:递归。详细的解释在代码里面。#include#includeconst int N = 10;int m, n;//打印空格void printf_nul(int n){ for(int i = 1; i <= n; i++) printf("
2014-03-03 23:35:41 775
原创 729 - The Hamming Distance Problem(可重集排列,直接枚举)
题目:729 - The Hamming Distance Problem题目大意:给出字符串的长度,给出要求出现的1的个数,打印出所有的可能的排列,按照递增的顺序,这个字符串只有01组成。解题思路:这题的思路也是生成可重集排列的思路,只是这里只有0,1,并且个数确定,所以在要进行递归的时候要进行判断。下一个要填0 的时候需要判断一下0的现有个数,1的也一样。如果现有的0(
2014-03-02 20:05:42 609
原创 592 - Island of Logic
题目:592 - Island of Logic题目大意:岛上住了三种生物,生物‘d’只会说真话,生物‘h’到了白天说真话,晚上说假话。生物‘e’之火说假话,现在要求给你A,B,C,D,E之间的对话(可能对话人物会不满5人)要求能确定的人或是白天黑夜输出。解题大意:枚举所有的人的角色和白天黑夜,这样一共有3*3*3*3*3*2 = 486种,这题错在数组开太小,卡了好久。还
2014-03-02 15:24:00 726
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人