acm
文章平均质量分 79
kaikai7654321
每个大师都有一颗学徒的心
展开
-
poj1426: Find the Multiple
1. 题目就是找到一个数的可以用01序列表示的最小倍数。 2. 自己用java写,无法ac,超时。到网上查,发现大家说的也是此题可以水过去,就是数字是不需要大数的。按照正常的bfs即可。下面第一段代码就是bfs,但是没有ac.但是大家用的都是c++。自己用java无法。 3. 后来参考了高手的,才觉得写得真好。首先用同余模定理简化,当然,其实按理论最后的结果还是很大。但是按照测试,此题不用大数原创 2016-10-28 15:04:25 · 365 阅读 · 0 评论 -
hdoj1010(temper of the bone) 解题报告
1.首先这道题用的是深搜加剪枝。 2.深搜其实就是一个递归,原理略去,在代码上的实现是分成几步: 第一:确定终止条件。 第二,确定想四个方向前进的for循环。 第三,在for循环里递归调用。 注意,在前进时要标记已经走过的路,这里直接用的吧走过的路变成墙来做的,比较方便。 3.剪枝用了两次,一次在主函数先总得确定是不是迷宫上有那么多可以走的空格。另一次是递归是奇原创 2015-08-12 17:02:03 · 651 阅读 · 0 评论 -
hdoj1016,Prime Ring Problem
这道题原来用的是next_permutation ,超时,没办法,就改用深搜了。 下面是使用next_permutation的代码: /** time: 8.14 author: kaka content: for hdoj1016 attention: 1.超时未通过 */ #include #include using name原创 2015-08-14 10:46:15 · 390 阅读 · 0 评论 -
Hdoj1206,Ignatius and the Princess I
1.首先这道题使用广搜解决的。问题两点,就是深搜和路径的输出。 2.这道题也可以用深搜,但是超时。也就是下面的深搜可以得到答案,但是提交的话就是超时。 3.关于超时的原因。首先,从理论上说,深搜和广搜复杂度差不多,只不过在某些情况下某一种会好一点。因为如果不剪枝,二者都需要遍历所有情况。找路径的存在性问题用深搜。路径的最短问题用广搜。但是这里的话,加入了剪枝。广搜加入剪枝,实在判断下一个可不可原创 2015-09-06 17:38:19 · 394 阅读 · 0 评论 -
hdoj1043,eight
1.首先写一下用广搜预处理得到的。这个方法耗时有点大。但是可以通过。 2.要注意原创 2015-09-08 08:10:36 · 550 阅读 · 0 评论 -
hdoj1044,Collect More Jewels
1.首先这个没有过,超时。虽然用了深搜,超时。后来在网上看到别人写的答案,仿照着写,还是超时。自己又找不到错误。就贴出来,待以后在看看。 2.若是用深搜或者广搜,应该很简单。当然,应该想尽办法剪枝。但是,由于求最大值,有些枝是减不掉的。 3.后来参考网上答案,点击打开链接,仿写了一个,但是还是超时,我也没找到问题所在,就先这样。 4.整体的思路就是先根据原来的图确定各个特殊点之间的相互距离在原创 2015-09-12 08:53:26 · 563 阅读 · 0 评论 -
hdoj1072,Nightmare
1.利用广搜。看到求最小值就这样做了 2.不能标记已经走过的。原来标记了,但是后来去掉了。可以看到node里面还有布尔值,但是下面没有用 3.但是利用前后两个点的时间剩余比较来代替了。这样在题目给出的第三个测试例子里是可以在走过4之后再 走走过的路,但是一般没有走过4就不行。 4.从文件读入读出也没有办到。一会看看。 5.第一次自己做出来题一次ac。 6.最小时间和剩余步数也是两个原创 2015-09-12 16:55:43 · 565 阅读 · 0 评论 -
hdoj1104,Remainder
1.原来很简单,就是广搜。 2.怎么像迷宫一样,把几个选项转换成方向是一个问题。这里实在for里面加了四个判断。不能像迷宫那样,直接用两行就好了。 3.怎么确定bfs的停止条件。后来想到了,就是余数。如果把余数压进谋个容器,通过去除重复,则队列里的数就会保持一定值并在最后逐渐减少。不会陷入无限循环。但是我没有成功。用了队列和数组,向量,都没有成功。后来参考别人写的,才觉得用一个布尔数组是一个好原创 2015-09-13 20:54:40 · 641 阅读 · 0 评论