
搜索
文章平均质量分 82
wjf1514
这个作者很懒,什么都没留下…
展开
-
HDU 2821 Pusher
dfs.枚举每个点作为起点,然后四个方向移动就行。先把字符串数组转化为整数,方便判断,每次dfs前后,注意修改与恢复。#include#include#include#include#include#include#include#include///LOOP#define REP(i, n) for(int i = 0; i < n; i++)#define FF(i,原创 2013-09-06 07:24:34 · 640 阅读 · 0 评论 -
HDU 4431 Mahjong
dfs。其实是很麻烦的模拟题。三种和法,每次枚举一张牌(每类牌不能超过4张),然后分别判断三种情况。注意杠+5对 != 7对,然后国士无双(为啥想起了中华小当家)和七对会有所重叠,所以必须分开考虑。原创 2013-09-05 16:13:06 · 1204 阅读 · 0 评论 -
HDU 4474 Yet Another Multiple Problem
bfs。求n的最小倍数,要求其中不包含所给的数字。通过余数来判重。原创 2013-09-05 16:16:33 · 639 阅读 · 0 评论 -
HDU 1664 Different Digits
对于任意的整数n,必然存在一个由不多于两种数字来组成的n的倍数?原创 2013-09-05 19:08:37 · 1635 阅读 · 0 评论 -
HDU 1885 Key Task
bfs。100*100的地图上,有4种钥匙,可能有多个或没有出口,可能有钥匙没门,也可能有门没钥匙。压缩一下,三维数组判重。#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include///LOOP#define R原创 2013-09-05 09:59:13 · 624 阅读 · 0 评论 -
HDU 1429 胜利大逃亡(续)
bfs.在20*20的地图中在规定时间以内找到出口,严格小于给定时间。地图上有钥匙,对应不同的门,有钥匙才能通过相应的门。二进制压缩一下,用三维数组判重即可。#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include原创 2013-09-05 09:55:31 · 1180 阅读 · 0 评论 -
HDU 1226 超级密码
bfs。用给定的数字,组成n的倍数(最小),在m进制下输出。先在10进制下处理,输出的时候判断一下就行。长度不能超过500.先把可用的,小于m的数存下来备用,每次拿到一个余数,就乘以m再加一遍可以扩展的数,用余数判重,直至得到0或队空。#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#inc原创 2013-09-05 10:27:43 · 1087 阅读 · 0 评论 -
HDU 4101 Ali and Baba
长着一张博弈脸的搜索题。给出n*m的地图,有石头空地若干,还有一个宝藏。正整数表示石头的hp,0表示空地,-1表示宝藏,而且保证只有一个。AB轮流敲,每次从边界开始,选一个可达的石头,敲一下,石头的hp-1,hp为零就变成空地了。谁先敲到宝藏,谁赢。原创 2013-09-11 07:17:34 · 958 阅读 · 0 评论 -
HDU 4068 SanguoSHA
很暴力的一道题。问我方是否有一种排列能赢对方的所有排列。枚举呗。dfs按字典序求出我方的一个排列,再用这个排列跟敌方的所有排列比,看赢了多少局。#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#incl原创 2013-09-11 14:47:42 · 759 阅读 · 0 评论 -
HDU 4294 Multiple
dfs。给定n,求n的倍数在m进制下所用的数字种类最少,有多个就输出最小的那个。就是把HDU 1664 Different Digits 的代码中的10换成m就过了。#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#原创 2013-09-06 15:30:10 · 522 阅读 · 0 评论 -
HDU 3533 Escape
bfs.在地图上又若干炮塔(随便翻译啦),给出地图大小和炮塔个数以及限定时间,问是否能在限定时间内从左上角跑到右下角。每个炮塔都会开炮的,给出他们开炮的方向,时间间隔,炮弹速度,以及坐标。首先,怎么判断能不能进入下一个点呢?换句话说就是怎么判断下一时刻,那个点是否有停留的炮弹。假如枚举每个炮塔,再计算是否可行,这样不仅不好写代码,也会浪费时间。不妨用3维数组,表示在t时刻,x,y点是否可以进入原创 2013-09-09 19:39:23 · 692 阅读 · 0 评论 -
HDU 4403 A very hard Aoshu problem
dfs.给出一个数串,可以向其中加入若干或0个加号,然后再加一个等号,使等号两端相等。用dfs枚举加号的位置,然后处理等号两端,判断是否相等,十分暴力也可以过。。。注意用long long,15位数不剪枝还是会超int的原创 2013-09-05 16:01:24 · 537 阅读 · 0 评论 -
HDU 4090 GemAnd Prince
dfs.消宝石,每次可以把同色并且相连的宝石消掉,所谓相连,该格子周围的8个格子都算是相连。消完之后,要下落,并且把空的列向右移,也就是说,保证前几列不空,后边都空。每次找到一群可消除的宝石(相连且大于3个),消掉,移动,记录当前值及最大值,深搜,还原。找的过程bfs,dfs都行吧,搜的同时就把相应的宝石消掉并记录个数。如果剩下的最大值加当前值不大于已得到的最优值,就可以剪掉了。#原创 2013-09-17 16:18:20 · 1349 阅读 · 0 评论