08 2015 档案
摘要:时间很快,短训已经结束,短短20天,心里有一些思绪想要记下。 收获: 从最近发的随笔中可以看出,做得最多的是搜索——Dfs,Bfs。对于搜索,如何描述状态,如何压缩状态,如何决定下一个结点,是否可以剪枝 等等,都是在做搜索题目时需要注意的。当然做的题目量不仅仅是只有写成随笔的那些题,还有一些...
阅读全文
摘要:基本思路就是Bfs: 本题的一个关键就是如何判段状态重复。 1.如果将状态用一个int型数组表示,即假设为int state[17],state[0]代表机器人的位置,从1到M从小到大表示障碍物的位置。那么如果直接用STL中的set是会超时的,但如果自己建立一个hash方法,像这样: int...
阅读全文
摘要:题目要求就是做求两个二进制数的gcd,如果是用java的话,这题很简单。但也可以用C++做,只能先给自己留下这个坑了,还在研究c++的做法。import java.math.BigInteger;import java.util.Scanner;/** * Created by emerald on...
阅读全文
摘要:基本思路是Dfs: 1. 一个一个格子摆放,以每个各自的左上角的点为基准点代表格子,比如(0,0)代表(0,0)(0,1)(1,0)(1,1)组成的格子,(0,1)代表(0,1)(0,2)(1,1),(1,2)组成的格子,以此类推,即可一个一个格子按顺序摆放。 2. 当摆放(x,y)时,比较分别...
阅读全文
摘要:大致思路是DFS: 1. 每个图案所包含的白色连通块数量不一: Ankh : 1 ; Wedjat : 3 ; Djed : 5 ; Scarab : 4 ; Was : 0 ; Akeht : 2 根据每个图包含的白色连通块判断是哪个图案 2. 两个Dfs函数,一个判断白色,一...
阅读全文
摘要:关于这题,先看看官方的解释:地球人都知道整点是不能构成正五边形和正三边形和正六边形的,所以只需暴力枚举四个点判断是否是正四边形即可。假如你不是地球人,那么即使暴力枚举正三边 形和稍微不那么暴力地找正五边形和正六边形也是可以通过的(反正找不到)。那么很明显,接下来要思考就是如何找正四边形,只找四条相...
阅读全文
摘要:这道题如果直接用Dfs,运气好的话是可以直接过的。 但如果要在Dfs的基础上加快速度,剪枝是必不可少的。 我的剪枝策略: 1.当前点(x,y)回到出发点至少需要 |x| +| y| 步,如果剩余的步数不足以达到当前所需的最小步数,则剪枝。比如在没有障碍的情况下,要求在4次行走时完成回路...
阅读全文
摘要:大致思路:其实用dfs就可以解决,但是只用dfs的话,会导致超时。在进行dfs前,应该判断一下从1点能否到达目的地,这样就不会超时了,估计是测试数据中有很多是从1点无法到达目的地的。 判断能否到达可以用bfs判断,在这道题里,效率还算不错。C++代码:#include #include #in...
阅读全文
摘要:基本思路是递归枚举,对每一个位置每一次从'A'开始到'A'+L-1枚举,如果在这个位置的选择这个字母能使字符串成为‘Hard’,则计数,一直计数到N就立即输出答案。判断是否是‘Hard’的方法,从末尾开始枚举长度为1的字符串一直到长度floor(Length/2)的字符串和前一个相同长度的字符串比较...
阅读全文
摘要:基本思路是暴力枚举,思考一下可以发现,可以跳过一下情况。对于目前最小的minBW,每次枚举一种排列计算bandwidth进行比较,如果大于当前minBW已经可以断定这个排列已经不可能是最好的解了。 而且对于一个点来说,与它相连的点为N,那么就这个点而言,最好情况就是这些点分布在其两侧,band...
阅读全文
摘要:一道查找字符串的题,要求在给出的字符串中找出三段字符串a,b,c,其中a,b,c三个字符串有先后关系,且不能有交集,即原字符串中的一个字母不能被用两次。 这三个字符串拼成“anniversary”。 先后A了两次,第一次用头文件中的strncpy和strstr函数。我再昨天也写了一篇随笔...
阅读全文
摘要:最近做题遇到分割与匹配字符串的题目(hdu5311),看来别人的代码,才知道有strncpy()和strstr()函数,于是搜集了一点资料,记录一下基本用法。一、strncpy()char * strncpy ( char * destination, const char * source, si...
阅读全文
摘要:可以把N个人分别看作顶点,各种关系则看作边,因为边数正好是N-1,结合题目,其实可以证明这是一棵树。题目要求的就是计算结点数(不包括根)的为K的子树有多少棵。 建立一棵树,然后一个结点 i 为根的子树的结点数,就是 i 的直接相连的结点,以及以它直接相连的结点为根的子树的结点数。如果没有子结点...
阅读全文
摘要:题意:给出式子abcde / fghij = N, 其中a, b, c, d,e, f, g, h, i, j代表0~9中的任意数字,不能重复,因此构成两个五位数(可以有前导0),要求这两个数整除为N。题目给出N,求所有满足要求的式子,并且要按除数(被除数也是一样)从大到小输出。一个N对应输出一组答...
阅读全文

浙公网安备 33010602011771号