随笔分类 -  搜索

摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1104注意这里定义的取模运算和计算机的%是不一样的,这里的取模只会得到非负数.而%可以得到正数和负数.所以需要a mod b = (a % b + b) % b 这样转换得到。并且,由于新的N可以很大,所以我们每一... 阅读全文
posted @ 2015-06-03 19:10 NowAndForever 阅读(180) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1429终于开始能够做状态压缩的题了,虽然这只是状态压缩里面一道很简单的题.状态压缩就是用二进制的思想来表示状态.总共有10种钥匙,那么开一个(1#include #include #include #include... 阅读全文
posted @ 2015-06-03 16:03 NowAndForever 阅读(194) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2822给定起点和终点,问从起点到终点需要挖几次只有从# 到 .或者从. 到 . 才需要挖一次。#include #include #include using namespace std;const int max... 阅读全文
posted @ 2015-06-02 21:13 NowAndForever 阅读(188) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2645找出每个点到距离最近的车站的距离。直接bfs就好。 1 #include 2 #include 3 #include 4 using namespace std; 5 int n,m; 6 int ma... 阅读全文
posted @ 2015-06-02 21:04 NowAndForever 阅读(171) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1627给定 n 和 L 找出第n个范围在0-L之内的字符串,字符串要求没有相邻的子串是相同的。按照格式输出。这个题的关键在于判断字符串是否是符合要求的字符串.枚举字符串所有子串可能的长度,然后判断即可。#inclu... 阅读全文
posted @ 2015-06-02 20:16 NowAndForever 阅读(167) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2266给一个字符串和一个数n,在字符串中间可以插入+或者 -,问有多少种等于n的情况.要注意任意两个数之间都可以插入也可以不插入,注意枚举完所有情况.#include #include char s[15];int... 阅读全文
posted @ 2015-06-01 20:22 NowAndForever 阅读(154) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1704遇到标记过的就dfs,把隐含的标记,最后计数需要注意。 1 #include 2 #include 3 int n; 4 int vis[501][501]; 5 void dfs(int x,int y... 阅读全文
posted @ 2015-06-01 19:54 NowAndForever 阅读(184) 评论(0) 推荐(0)
摘要:Problem Description作为一个强迫症患者,小 Y 在走游戏里的迷宫时一定要把所有的宝箱收集齐才肯罢休。现在给你一个 N *M 的迷宫,里面有障碍、空地和宝箱,小 Y 在某个起始点,每一步小 Y 可以往上下左右走,当然前提时没有走出迷宫并且走到的点不是障碍。如果小 Y 走到了某个为宝箱... 阅读全文
posted @ 2015-05-31 21:19 NowAndForever 阅读(431) 评论(0) 推荐(0)
摘要:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1566题意还是蛮难懂的,至少对于我来说,需要认真读题。输入矩阵的每一个数字换成2进制后,顺时针围一圈,用1表示墙,0表示空,这样就可以表示出一个迷宫,现在就是判断这个迷宫属于4种类型中哪种类型。参考了... 阅读全文
posted @ 2015-05-31 21:06 NowAndForever 阅读(202) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1254题目意思很简单,只要思路对就好。首先考虑搬运工能否到达推箱子的那个点,这个可以根据箱子前进方向得出搬运工需要到达的目的地,用另一个bfs判断,然后就类似两个点的bfs那样用一个数组标记状态,需要注意箱子在边上... 阅读全文
posted @ 2015-05-30 20:26 NowAndForever 阅读(296) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1226难以想到怎么去bfs,还是对状态的划分不明确,知道了之后感觉还是挺简单的。这题关键是密码可能很长,然后判断是否整除用到了一点技巧,确保不会溢出,输出的时候是用递归回溯输出。因为同一个数可以取多次,而最终取的是... 阅读全文
posted @ 2015-05-29 21:27 NowAndForever 阅读(530) 评论(1) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1195这道题虽然只是从四个数到四个数,但是状态很多,开始一直不知道怎么下手,关键就是如何划分这些状态,确保每一个状态都能遍历到。得到四个数之后,分三种情况处理,每次改变一个数之后都要加入队列,最先输出的就是步数最少... 阅读全文
posted @ 2015-05-28 20:52 NowAndForever 阅读(143) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1072遇到Bomb-Reset-Equipment的时候除了时间恢复之外,必须把这个点做标记不能再走,不然可能造成死循环,也得不到最优解。#include #include #include using names... 阅读全文
posted @ 2015-05-28 19:32 NowAndForever 阅读(145) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1240开始没仔细看题,看懂了发现就是一个裸的bfs,注意坐标是三维的,然后每次可以扩展出6个方向。第一维代表在第几层。后两维代表行和列。 1 #include 2 #include 3 #include 4 ... 阅读全文
posted @ 2015-05-28 14:49 NowAndForever 阅读(133) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1728这两道题花了一下午的时候调试,因为以前做过类似的题,但是判断方向的方法是错的,一直没发现啊,真无语。每个状态除了坐标外还需要记录步数,和方向。还要注意输入格式。并且每一个点并不是走过了就不能在走,只要到达这个... 阅读全文
posted @ 2015-05-27 20:46 NowAndForever 阅读(156) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2216zjt和sara在同一个地图里,zjt要去寻找sara,zjt每移动一步sara就要往相反方向移动,如果他们相邻或者在同一个格子里就算相遇。输出最少步数。注意zjt每次必须要有能移动的点才移动,否则不能移动,... 阅读全文
posted @ 2015-05-27 09:18 NowAndForever 阅读(306) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1180注意点就是楼梯是在harry移动完之后才会改变方向,那么只要统计到达这个点时间奇偶性,就可以知道当前楼梯是水平的还是垂直的。并且我们需要知道当前到达楼梯这个点的方向,这样才知道下一个往哪个方向走,可以根据di... 阅读全文
posted @ 2015-05-25 21:00 NowAndForever 阅读(310) 评论(0) 推荐(1)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2102题目还是不难,注意起点一定是(0,0,0),然后到达P点时间 2 #include 3 #include 4 #include 5 using namespace std; 6 char field[2... 阅读全文
posted @ 2015-05-25 12:46 NowAndForever 阅读(141) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1026求起点到终点的最少花费,输出路径的时候麻烦一点,借鉴了别人的思路,用dfs 递归打印出路径。用额外一个二维数组标记当前点的前驱,因为点是一个坐标,那么可以用 s=x*m+y 映射成一个点就可以了。这样知道这个... 阅读全文
posted @ 2015-05-24 11:02 NowAndForever 阅读(189) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1242感觉题目没有表述清楚,angel的朋友应该不一定只有一个,那么正解就是a去搜索r,再用普通的bfs就能过了。但是别人说要用优先队列来保证时间最优,我倒是没明白,步数最优跟时间最优不是等价的吗?就算士兵要花费额... 阅读全文
posted @ 2015-05-23 10:02 NowAndForever 阅读(181) 评论(0) 推荐(0)