随笔分类 - 搜索
摘要:题目链接:http://codeforces.com/problemset/problem/510/B题目意思:给出 n 行 m 列只有大写字母组成的字符串。问具有相同字母的能否组成一个环。 很容易知道要用到深搜。暴力搜索~~~ 1 #include 2 #include 3 #inclu...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5143题目意思:给出 1, 2, 3, 4 的数量,分别为a1, a2, a3, a4,问是否在每个数只使用一次的前提下,分成若干部分,每部分数的长度 >= 3且满足是等差数列。可以的话输出 Yes ,否...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/483/B题目意思:有两个 friends,需要将 cnt1 个不能整除 x 的数分给第一个friend,cnt2 个不能整除 y 的数分给第二个friend。x 和 y 都是素数来的。要求求出最小的 v,v...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/476/B题目意思:给出两个字符串str1, str2,其中,str1 只由 '+' 和 '-' 组成,而str2 由 '+','-'和'?'组成。初始点在原点0的位置,经过 str1 的变换最终会达到某一个...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1548题目意思:给出 n 个 floor 你,每个floor 有一个数k,按下它可以到达 floor + k 或者 floor - k的位置。问从floor A 到 floor B 最少的按lift 次数...
阅读全文
摘要:题目链接:http://poj.org/problem?id=3411题目意思:N个city 由 m 条路连接,对于一条路(假设连接Cityia和 Cityb),如果从Citya 去 Cityb的途中,之前已经走过Cityc(可能会等于a),那么就可以交p的钱,否则之前未走过Cityc,就一定要交r...
阅读全文
摘要:题目链接:http://poj.org/problem?id=2531题目意思:将 n 个点分成两个部分A和B(也就是两个子集啦), 使得子集和最大(一定很难理解吧,呵呵)。举个例子吧,对于样例,最佳的分法就是把点2分为一个子集,另一个子集理所当然就是1、3了。 2-1 的权值是50,2-3的权值是...
阅读全文
摘要:题目链接:http://poj.org/problem?id=1724题目意思:给出一个含有N个点(编号从1~N)、R条边的有向图。Bob 有 K 那么多的金钱,需要找一条从顶点1到顶点N的路径(每条边需要一定的花费),前提是这个总花费 2 #include 3 #include 4 usin...
阅读全文
摘要:题目链接:http://vjudge.net/contest/view.action?cid=51369#problem/A (A - Children of the Candy Corn) http://poj.org/problem?id=2488 (A Knight's Jour...
阅读全文
摘要:MazeDescriptionYou are given a special Maze described as an n*m matrix, please find the shortest path to reach (n,m) from (1,1);InputTh...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/440/C题目意思:给出一个数你,问需要用到的1来组成这个数的最少数量是多少。 我一开始对每个数只从 “+”的方向找,也就是假设对于4873,由千位开始配1,接着从百位,然后十位,最后个位。具体过程:444...
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/300/B题目意思:给出n个students(n%3 = 0),编号依次为1~n,接下来有m行,每行有两个数:a和b(1 1人组的人数(不成组) 根据这样硬用并查集来做,代码量非一般多!!!这就是不会算法的悲剧咯~~~ 我的思路: 先用并查集来连边,保证大编号的指向最小编号的。 接着统计一人组,二人组,三人组的人数(分别为c1,c2,c3),以判断结果为-1的两种情况。 最后依次输出: 二人组 + 一人组,三人组,一人组 (除了三人组的情况其他两种都要组合)(以后学好dfs一定要写条简短的代码,呜呜呜~
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/320/B题目意思:有两种操作:"1 x y"(x (2 9)——> (5 11)。理由是 2 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int maxn = 100 + 10; 8 int a[maxn], b[maxn], ans[maxn]; 9 int n;10 11 void dfs(int k)12 {13 int i;14 ans[k] = 1; // 可以到达第k行的区..
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/327/A 题意是输入一个只有0和1的序列,要求找出一个合理的区间,在这个区间里面把0变成1,1变成0,使得该区间和该区间外的1的个数达到最大。 一开始的的思路是:找最大的0区间(序列中头尾第一次遇到0所夹的区间),然后在这个区间里暴搜(保证该区间内细分到的小区间都搜索过),统计0的个数(由于0会变成1,1自然会变成0,所以没有必要统计1的个数)。但是问题是这样做的话,该区间1的个数和0的个数的多少是不确定的:00 还是 0 == 1。有很多不确定的因素,因此不能保证所找到的0区间是最优的。正确的做..
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1238 题意很简单,即找出最长的公共子串。 n个序列为p[0]...p[n-1],最长公共子串(顺着看,存放在p[0])的长度为maxlen,逆着看(存放在reverse数组里)的长度为maxlen1。由于公共子序列是每个序列的子串,因此不妨枚举第一个序列(其实枚举最短的那个子串是最好的)的每一个可能的子串s,以s为模式,分别以p[1]...p[n-1]为目标进行匹配计算。若s为p[1]...p[n-1]的公共子串(strstr[p[k], s) != 0,1 <= k <= n-1),
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 题意很简单,就是输入一个n,把1~n的数填入n个圆圈里,但是要满足相邻两个数的和是素数,输出的时候要按符合条件的序号按递增的形式输出,每个实例之间要有空行。 这是一道dfs的经典题目,其中还要结合...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1372 题目的意思是,在一个棋盘里,给出两点a和b,计算a到b的最小步数。玩过象棋的人应该都知道,“马”是走“日”的,这里的走法就是按“马”的走法来走。假设给出的点是(0,0),它下一步只能有8个选择,也就是(1, 2),(1,-2),(-1,2),(-1,-2),(2,1),(2,-1),(-2,1),(-2,-1)。 这里还有两点要注意:1、输入的字符a-h要化成整型,以便在棋盘里构图。2、最终,每一个knight[i][j]保存的都是最少的步数,否则会递归地找到最少的move数 1 #incl
阅读全文
摘要:题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=4&page=show_problem&problem=227 题意很简单,就是要我们以左下角的点“1”为起点,不能重复且不能间断,一笔画出整个图形,并按照节点序号递增的顺序,访问相邻的节点。不难想到这是一道DFS的题目,遍历所有的边且每条边只能访问一次。 这里我是使用了一个对称的相邻矩阵map[][]来存储这个图。由于该图为一个连通图,因此从任意节点出发进行一次DFS,即可遍历所有节点和所有的边。
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181 又一条深搜,但是我做的时候根本没有想到用dfs做,应该是数学模型还没建立好吧!结果就是只能实现部分功能。我的做法是:由于只用到一个单词的首尾两个字母,所以很自然的想到用结构体来保存;接着比较所有输...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间。 题目大意:从图中的标记'@'开始,向四个相邻的方向找黑色瓷片'.' ,统计能经过的黑色瓷片的数目('@'也算统计中的一个),当然,这个人是不能走红色瓷片'#'的。 有两个地方需要注意:1、要分清w、h,哪一个对应行,哪一个表示列,非常别扭,最好不要按它的(w:列 h:行) 2、统计符合条件的 '.' 时,不要遗漏了对初始位置
阅读全文

浙公网安备 33010602011771号