DFS
文章平均质量分 79
Free_way
这个作者很懒,什么都没留下…
展开
-
[挑战程序设计竞赛] AOJ 0033 - Ball
题意是枚举十位数的左右组合顺序原创 2014-11-25 13:51:47 · 930 阅读 · 0 评论 -
[挑战程序设计竞赛] POJ 3009 - Curling 2.0
题目大意:给定起点和终点的位置,从起点开始朝一个方向扔石头,当石头碰到一个方块,会停止在方块的前一个位置,并且这个方块会消失。当石头在一个方向上没有碰到任何方块,石头会飞到Board外,则游戏失败。求出从起点开始扔石头,是否能在10次以内碰到终点的位置。能则输出最少的次数,不能则输出-1。由于题目只询问10次以内是否能碰到终点的位置。那DFS的复杂度就没有多大了。。直接原创 2014-11-27 16:08:08 · 759 阅读 · 0 评论 -
[字典树 + dfs] HDU 1298 - T9
题目想了好久,发现需要在查询字典树的时候,枚举每个数字上的字母。就没敢去想用dfs。但是后来经过计算发现,w最大值是1000,每个数字串长度最大为100。原创 2014-11-18 14:07:32 · 865 阅读 · 0 评论 -
[挑战程序设计竞赛] POJ 2718 - Smallest Difference
题意:给定0~9之间的一些不重复的数字,把这些数字任意组合成两部分,求两部分数字的差的最小值。(注意不能有前导0~)仔细想了一下发现:当给定数字个数为奇数时,两部分的个数应该是差一位的。当给定数字个数为偶数时,两部分的个数应该是相等的。用DFS做了一下,结果提交后TLE了,然后想了一下,发现输入的数字的个数为10的时候,结果只有一种~于是特判数字个数为10的时候,直原创 2014-11-28 15:43:52 · 974 阅读 · 0 评论 -
[挑战程序设计竞赛] POJ 3187 - Backward Digit Sums
题意:给定数字N和Sum。求由1~N的组合成的序列按题目的方式求和等于Sum。如果解有很多,输出字典序最小的那个。题目保证输入数据一定有解。不多说啦,DFS裸题,然后用类似杨辉三角的方式求和即可。。之前用队列模拟的求和。。结果TLE了。。然后改成二维数组方式求和了。。#include #include #include #include #include #include原创 2014-11-29 22:41:24 · 684 阅读 · 0 评论 -
[挑战程序设计竞赛] POJ 3050 - Hopscotch
题意:给定5x5的矩阵。矩阵中的每个点都可以作为起点,每个点可以跳到附近上、下、左、右四个位置。问:执行6次操作,可以组合出多少种不同的序列?DFS简单题~ 把每次搜到的结果存到set容器内,最后输出set元素个数即可。#include #include #include #include #include #include #include #include #i原创 2014-11-29 23:42:50 · 819 阅读 · 0 评论 -
[挑战程序设计竞赛] AOJ 0525 - Osenbei
题意:有一个烤饼器可以烤r行c列的煎饼,煎饼可以正面朝上(用1表示)也可以背面朝上(用0表示)。一次可将同一行或同一列的煎饼全部翻转。现在需要把尽可能多的煎饼翻成正面朝上,问最多能使多少煎饼正面朝上?输入:多组输入,每组第一行为二整数r, c (1 4),剩下r行c列表示煎饼初始状态。r=c=0表示输入结束。输出:对于每组输入,输出最多能使多少煎饼正面朝上。 题原创 2014-12-02 12:34:36 · 1166 阅读 · 0 评论 -
Codeforces 27E - Number With The Given Amount Of Divisors
深搜枚举即可。#include <stdio.h>int a[100] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53};typedef unsigned long long ULL;int n;ULL ans;void dfs(int step, ULL tmp, int num){ if(num >原创 2015-03-20 14:35:59 · 672 阅读 · 0 评论