ACM-暴力
暗金色
这个作者很懒,什么都没留下…
展开
-
UVA - 817 According to Bartjens 暴力
题目大意:给出一个字符串,要求你在这个字符串里面加入符号,使得结果为2000解题思路:直接暴力#include<stdio.h>#include<string.h>#include<vector>#define maxn 30using namespace std;char str[maxn];bool flag;int num[maxn], sign[maxn], len;char原创 2015-04-29 20:14:33 · 970 阅读 · 0 评论 -
POJ - 3278 Catch That Cow(BFS)
题目大意:给你两个坐标,你的位置是第一个坐标 现在有两种操作:操作1:前进一个单位 操作二:前进(当前位置 - 0)个单位 问到达第二个坐标的最小操作数解题思路:纯BFS裸题#include <cstdio>#include <cstring>#include <queue>using namespace std;const int N = 200010;struct Node {原创 2015-10-10 10:25:47 · 378 阅读 · 0 评论 -
LightOJ - 1012 Guilty Prince(DFS)
题目大意:给你一张地图,起始位置是‘@‘,空地是’.’,障碍是’#’,问能遍历多少个’.’解题思路:dfs裸题#include <cstdio>#include <cstring>#include <queue>using namespace std;const int N = 30;struct Node { int x, y; Node() {} Node(int原创 2015-11-08 22:58:54 · 735 阅读 · 0 评论 -
LightOJ - 1039 A Toy Company(BFS)
题目大意:给你三个字符,字符可以向下变化或者向上变化,再给出几个限制,问需要变化几次才能变成最终串解题思路:BFS裸题#include <cstdio>#include <cstring>#include <queue>using namespace std;const int N = 30;const int M = 100;struct Node { int x, y, z,原创 2015-11-08 23:00:15 · 1478 阅读 · 0 评论 -
LightOJ - 1094 Farthest Nodes in a Tree(树的直径)
题目大意:给你一棵树,问树上两个结点的最远距离解题思路:先用0做根结点,找出最远的叶子结点。再已该叶子结点做根结点,就能找到最远的距离了#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;const int N = 30010;struct Edge{原创 2015-11-08 23:02:10 · 596 阅读 · 0 评论 -
POJ - 3087 Shuffle'm Up(模拟题)
题目大意:给你三个字符串s1, s2, s3,问能否经过操作将s1和s2结合,变成s3 操作如下:假设s1和s2结合后变成了s4,那么s4的最后一个字符就是s2的最后一个字符,s4的倒数第二个字符是s1的最后一个字符,以此类推 如果s4不是s3的话,那么就将s4变成s1和s2,s1为s4的前n个字符,s2为s4的后n个字符 问需要执行多少次操作才能达到目标解题思路:模拟裸题了#include原创 2015-10-10 10:53:36 · 478 阅读 · 0 评论 -
POJ - 1426 Find The Multiple(暴力)
题目大意:给你一个数a,要求你找到另一个数b,b只能由0和1组成,且b % a == 0,求b解题思路:打了个表发现,并不会超long long,所以直击暴力枚举#include <cstdio>#include <cstring>#include <queue>using namespace std;int n;void solve() { queue<long long> Q;原创 2015-10-10 10:35:36 · 388 阅读 · 0 评论 -
HDU - 2612 Find a way(BFS + 枚举)
题目大意:有两个人要去肯德基见面,问两个人到达任意一个肯德基的最短时间和解题思路:先BFS找出每个人到达任意一个肯德基的最短时间,然后再判断即可,代码写搓了…#include <cstdio>#include <cstring>#include <queue>#include <algorithm>using namespace std;const int N = 210;const in原创 2015-10-10 11:19:59 · 418 阅读 · 0 评论 -
POJ - 1321 棋盘问题(DFS)
题目大意:给你一个棋盘,要求你在这个棋盘上面放K个车,使得车两两不互相攻击,问有多少种摆放方法解题思路:我用的是二进制,如果该位是0的话,表示该位不能放置 枚举的时候,每次找当前状态的最后一个1,然后依次枚举即可 找最后一个1的方法是s & (-s) #include<cstdio>#include<algorithm>using namespace std;const int N = 2原创 2015-10-10 10:20:50 · 313 阅读 · 0 评论 -
POJ - 3414 Pots(BFS)
题目大意:给你两个瓶子,问能否经过下面的三种操作,使得任意一个瓶子中存在V单位的水,操作如下: 操作1:将该瓶子的水装满 操作2:将该瓶子的水倒掉 操作3:将第i个瓶子的水倒到第j个瓶子,直到i空或者j满解题思路:分六种情况讨论,倒满第一个瓶子,倒满第二个瓶子,倒空第一个瓶子,倒空第二个瓶子,将第一个瓶子的水倒到第二个瓶子内,将第二个瓶子的水倒到第一个瓶子内在开数组纪录一下状态和操作即可#in原创 2015-10-10 11:00:22 · 365 阅读 · 0 评论 -
FZU - 2150 Fire Game(BFS)
题目大意:给你一个矩阵,’.’表示空地,’#’表示草地。现在要求你任选两个草地进行点火,使得这个矩阵内的所有草地在最短时间内都着火(如果一个草地着火了,下一秒,和他相邻的草地都会着火)解题思路:先枚举两个草地,接下来就是bfs判断着火情况了#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using原创 2015-10-10 11:04:16 · 472 阅读 · 0 评论 -
POJ - 3984 迷宫问题(水BFS)
题目大意:给你一个迷宫,最短时间内走出解题思路:水#include <cstdio>#include <cstring>#include <queue>using namespace std;const int N = 10;struct Node { int x, y; Node() {} Node(int x, int y):x(x), y(y) {}};int原创 2015-10-10 11:12:22 · 479 阅读 · 0 评论 -
POJ - 2251 Dungeon Master(BFS)
题目大意:给你一个三维的迷宫,问能否逃出去解题思路:纯BFS裸题#include <cstdio>#include <cstring>#include <queue>using namespace std;const int N = 35;struct Node{ int x, y, z, time; Node() {} Node(int x, int y, int原创 2015-10-10 10:22:55 · 340 阅读 · 0 评论 -
POJ - 3279 Fliptile(DFS)
题目大意:给你一个矩阵,要求你将矩阵上的1全部变成0 有一种翻转操作,就是将当前这个位置的数变成另一个数(0变1,1变0),相邻的四个位置的数也要变换 问最后能否将所有的1都变成0,输出变换的最小字典序解题思路:以一个数为中心的翻转,最多只有1次,因为之后的偶数次相当于没操作,奇数次就和1的效果一样了 所以可以枚举第一行的操作 第一行操作完后,操作其他行,如果要让第一行的1都变成0的话,只能原创 2015-10-10 10:32:40 · 490 阅读 · 0 评论 -
POJ - 3126 Prime Path(BFS)
题目大意:给你两个素数,要求你将第一个素数变成第二个素数 变换的规则如下,一个素数的变换只能变换成另一个和他相差只有一位的素数,比如1033变成1733 问最小的变换步数解题思路:先打个表,将1000-10000的素数全都找出来,接下来就是裸BFS了#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>原创 2015-10-10 10:47:33 · 397 阅读 · 0 评论 -
UVA - 11624 Fire!(BFS)
题目大意:给出一个矩阵,’#’表墙壁,’J’表示人,’F’表示火,’.’表示空地,人一个单位时间内只能移动一个单位(上下左右),火一个单位时间内能把四周的空地都燃着,问这个人能否逃出迷宫,如果能逃出,最短时间是多少解题思路:BFS,用队列处理火和人的关系,人先走,火再蔓延 有火的地方蔓延只能蔓延一次就够了,也就是说只能进入队列一次#include <cstdio>#include <cstrin原创 2015-10-10 11:10:38 · 439 阅读 · 0 评论 -
HDU - 1029 Ignatius and the Princess IV(暴力)
题目大意:给出奇数个数组,要求你找出出现次数大于等于一半的数字解题思路:排序,暴力找#include <cstdio>#include <algorithm>using namespace std;const int N = 1000010;int n;int num[N];void init() { for (int i = 0; i < n; i++) scanf原创 2015-09-26 10:00:46 · 376 阅读 · 0 评论 -
UVA - 10047 The Monocycle (BFS)
题目大意:有一个n*m的网格,网格上面有的地方有障碍物 现在有一个人,骑着独轮车,要求从一个地方到达另一个地方,骑独轮车时,只能直走,或者左拐,右拐,不能向后走 独轮车的轮子被分成了5部分,每部分都有对应的颜色,刚开始时是绿色向下,当经过一个格子时,颜色就会变换 问从起点出发到终点,到终点时独轮车的绿色颜色向下,需要多久解题思路:暴力BFS#include <cstdio>#include原创 2015-07-25 12:19:26 · 675 阅读 · 0 评论 -
UVA - 11624 Fire! BFS
题目大意:有一个迷宫着火了,这个迷宫里面有个人,这个人想要逃出迷宫,求最小的逃出距离是多少。人和火的走动的方向只有四个方向,上下左右解题思路:要判断下一个点能不能走,就得先判断一下走下去后火会不会烧过来,所以在每次走之前,要先让火走,再让人走#include#includeusing namespace std;#define maxn 1010typedef struct sta原创 2014-12-27 12:21:23 · 532 阅读 · 0 评论 -
UVA - 585 Triangles 暴力
题目大意:要求你找出一个由白色三角形围成的最大三角形解题思路:假设每一点都为顶点,然后暴力枚举。这里要注意一下三角形的朝向,下标和为奇数的点的三角形的底边是在下面的,而下标和为偶数的点的底边是在上面的#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define maxn 105#define原创 2015-04-27 22:46:20 · 609 阅读 · 0 评论 -
Acdream的暴力专场
A - LCM Challenge Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem DescriptionSome days ago, I learned the concept of LCM (least common multi原创 2015-04-30 19:34:49 · 795 阅读 · 0 评论 -
UVALive - 4253 Archery 暴力
题目大意:有一个人在x轴上射箭,他能移动的范围是[0,L],现在有m个靶子,给出每个靶子的坐标(y坐标和两个x坐标),问这个人能否一箭射到所有的靶子解题思路:二分枚举这个人所在的位置,计算一下当前位置和所有靶子的角度,维护一个角度区间,表示这个区间内的所有靶子都能射中。如果当前位置和一个靶子的角度(两个角度之间的最小值)大于当前区间的最大值,那么这个人就要向右移动,反之,如果小于当前区间的最小值,那原创 2015-05-03 18:03:51 · 792 阅读 · 0 评论 -
UVA - 1354 Mobile Computing dfs
题目大意:有n个砝码,要求放在天平上,每个天平的长度是1,要求放上砝码后,使得天平的水平长度达到最大解题思路:因为砝码的数量只有6个,所以可以用一个二进制数来表示状态 枚举每种状态下的结果,左端的长度用负数表示,右端的长度用正数表示 枚举该状态时,先把当下的子状态都枚举了,然后取其最大值或者最小值即可。。。好难解释,具体看代码#include<cstdio>#include<cmath>#i原创 2015-05-03 18:27:47 · 1126 阅读 · 0 评论 -
UVA - 656 Optimal Programs 暴力
题目大意:刚开始栈中有一个数字,要求你经过一定的操作后,栈中最后保留下来的数等于所给的数。解题思路:纯暴力,但要加上剪枝 1.当前的操作步数中,DUP的次数要大于等于其他操作的和 2.判断的时候,只有操作次数为偶数,且DUP的次数等于其他操作次数的和#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#in原创 2015-04-28 12:34:33 · 875 阅读 · 0 评论 -
UVA - 11127 Triple-Free Binary Strings dfs
题目大意:有一个字符串,这个字符串由0,1和*组成,*可以变成0也可以变成1,要求变化后的字符串的字符只能是0或者1。 现在给出这个字符串,要求变化后的字符串中不能出现三个连续相同的子串,问最多可以变化成多少个符合规则的串解题思路:因为只有0和1,且只有30位,所以可以用一个正数来表示状态。dfs暴力枚举,边枚举边判断,看当前的是否符合#include<cstdio>#include<cstri原创 2015-05-03 19:48:18 · 1006 阅读 · 0 评论 -
UVA - 10120 Gift?! 暴力+规律
题目大意:有n块石头,礼物在第m块石头上,相邻石头的距离为1,规定小青蛙第一步跳到第一块石头上,接下来的跳跃要符合该规则,假设这是第n次跳跃,那么小青蛙跳跃的距离为(2 * n - 1)解题思路:石头数量如果超过49的话,小青蛙就可以跳到任意一块石头上,所以其他的情况只需暴力dfs就可以解决了#include<cstdio>#include<cstring>int pos, len;bool d原创 2015-05-03 15:22:31 · 769 阅读 · 0 评论 -
UVA - 10483 The Sum Equals the Product 暴力
题目大意:给出一个范围,要求找出这个范围内满足 n = x + y + z = x * y * z的所有式子解题思路:因为这里的小数位精确到了0.01,所以先讲x,y,z都相应放大100倍 从小到大枚举,假设x <= y <= z,那么x的范围就在 (0,n ^(1/3)],y的范围就在[x,(n-x)^(1/2)]这样范围就可以确定下来了 而z又可以通过x和y得到 因为x + y + z原创 2015-05-03 15:13:23 · 699 阅读 · 0 评论 -
UVA - 818 Cutting Chains 暴力
题目大意:给出n个环(类似奥运五环的那种环),要求你打开其中的m个环,然后以这m个环为中介,使得所有的环能形成一条链解题思路:暴力枚举,用二进制表示断开的环的位置和数量。 断开环后,和该环相连都断开了,也就是该环变成了一个孤立的环 接着判断一下非断开的环能否连成一个环,如果能连成一个环,那就不可能通过m个环当中介连成一条链 还得判断一下非断开的环的度,如果度超过2,也不能变成一条链#inclu原创 2015-04-28 18:08:28 · 1115 阅读 · 0 评论 -
UVA - 1374 Power Calculus 迭代深搜
题目大意:问从1变到n至少需要多少步。变换规则如下 1.变化过程中的中间结果可以任意使用 2.每次只能挑选两个数进行加减解题思路:先算一下至少需要多少步,然后在如果在当前步数下无法到达结果的话,就当前步数加1,继续搜索下去#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define maxn原创 2015-05-01 15:43:49 · 1044 阅读 · 0 评论 -
UVA - 10624 Super Number 暴力
题目大意:给出n和m,要求你输出一个m位数的数,这个数要求符合一个规则 从左往右数位数,如果位数为k的时候,(k >= n),截至到该位,这个数必须能被k整除 比如162456723 1能被1整除,16能被2整除,162能被3整除。。。以此类推解题思路:刚开始以为30位的话,long long可以解决,结果可想而知。。 枚举每一位,然后进行判断即可#include<cstdio>#incl原创 2015-05-01 15:39:00 · 597 阅读 · 0 评论 -
UVA 10479 The Hendrie Sequence 规律
题目大意:一个序列,刚开始由0变到了1,接着往后一个个变化下去 变化的规则是,如果当前数是k,就在这个序列的最后面加上k-1个0,再加上k+1 现在问这个序列的第n个数是多少解题思路:这是有规律的,第2的k次方个数刚好是k 如果当前数是k,且k刚好是2的n次方,那么这个数前面就有n-1个0,n-2个1,n-3个02组合,以此类推 如果要求第n个数是多少,只需要找到n是哪个k之前的,然后依照上原创 2015-05-01 23:05:36 · 927 阅读 · 0 评论 -
UVA - 10570 Meeting with Aliens 暴力
题目大意:有n个外星人要开园桌会议,外星人的编号由1到n,要求编号为i的外星人的相邻位置必须坐着编号为i-1和编号为i+1的外星人。 现在给出n个外星人坐在圆桌上的顺序,要求你经过最少次交换(交换是两个外星人交换所坐位置),使得所有外星人坐法都符合上诉规则。解题思路:枚举每个外星人坐的位置,假设该位置坐的必须是编号为1的外星人,然后编号从左递增或者递减,最后检查该安排需要交换几次外星人 如果该外原创 2015-05-01 15:28:36 · 995 阅读 · 0 评论 -
UVA - 10396 Vampire Numbers 暴力+打表
题目大意:给出n,要求你输出所有符合规则的n位数 规则如下,这个n位数由两个n/2位数相乘得到,并且满足 1.这n位数为偶数 2.这两个n/2位数上的所有数刚好组成了这n位数 3.两个n/2位数不能都是10的倍数解题思路:因为输入只有4,6,8,所以先预处理,暴力枚举4,6,8的情况,然后打表#include<cstdio>#include<set>#include<cmath>usi原创 2015-05-01 23:53:35 · 680 阅读 · 0 评论 -
HDU - 5012 Dice BFS
题目大意:给出两个色子,只能进行四种操作,左转,右转,上转,下转,问能否经过旋转使两个色子的各面都相同解题思路:直接暴力,用vis数组表示是否搜索过,这种解法接近1S,有点悬#include#include#include#include#define maxn 700000using namespace std;const int Z[4][6] = {{2,3,1,0,4,原创 2015-03-11 19:29:23 · 475 阅读 · 0 评论 -
HDU - 4737 A Bit Fun 暴力水题
题目大意:给出n个数,要求找出符合 f(i, j) = a i|a i+1|a i+2| … | a j . Where “|” is the bit-OR operation. (i <= j) 的区间有多少个解题思路:直接暴力#include<cstdio>#include<algorithm>#include<cstring>using namespace std;#define max原创 2015-03-19 15:27:58 · 573 阅读 · 0 评论 -
HDU - 1495 非常可乐(BFS)
题目大意:中文题意解题思路:裸BFS#include <cstdio>#include <cstring>#include <queue>using namespace std;const int N = 110;const int INF = 0x3f3f3f3f;int vol[3];int num[N][N];int dir[6][3]= {{0, 1, 2}, {0, 2, 1原创 2015-10-10 11:14:15 · 446 阅读 · 0 评论