大三ACM - 搜索
Little_boy_z
这个作者很懒,什么都没留下…
展开
-
HDU - 1078 FatMouse and Cheese 记忆化搜索
#include #include #include #include #include #include #include #include #include #include #define INF 99999999#define MAX 100000#define INF 100000000using namespace std;int原创 2017-10-28 16:06:34 · 185 阅读 · 0 评论 -
计蒜客 无脑博士的试管们
啊...太久不做这种题都忘了怎么做了和之前那个倒可乐的起一模一样呀..就是BFS/DFS,暴力枚举所有的情况即可。A给B,A给CB给A, B给CC给A, C给B#include#include#include#include#includeusing namespace std;int A, B, C;bool vis[25][2原创 2017-11-20 19:20:45 · 471 阅读 · 0 评论 -
51nod 1455 宝石猎人
苏塞克岛是一个有着30001个小岛的群岛,这些小岛沿着一条直线均匀间隔分布,从西到东编号为0到30000。众所周知,这些岛上有很多宝石,在苏塞克岛上总共有n颗宝石,并且第i颗宝石位于岛 pi上。小法正好到达0号小岛上,他拥有卓越的跳跃能力,能根据以下规则在小岛之间向东重复跳跃:· 首先,他会从0号岛跳到d号岛· 此后,他会根据以下规则继续跳跃,L原创 2017-11-21 17:32:51 · 279 阅读 · 0 评论 -
51nod 1405 树的距离之和 搜索+DP
给定一棵无根树,假设它有n个节点,节点编号从1到n, 求任意两点之间的距离(最短路径)之和。Input第一行包含一个正整数n (n <= 100000),表示节点个数。后面(n - 1)行,每行两个整数表示树的边。Output每行一个整数,第i(i = 1,2,...n)行表示所有节点到第i个点的距离之和。Input示例41 23 24 2原创 2017-11-27 19:04:56 · 270 阅读 · 0 评论 -
hdu1195 Open the Lock 双向BFS
看http://blog.csdn.net/liuqiyao_01/article/details/8892261终于看懂双向BFS的具体做法了。准备两个队列,分别放出发点和终点。之后while(){ BFS(0) BFS(1) //分别代表两个点出发遍历。}对于每一个bfs,首先看看是否上一个bfs已经找到答案了,如果找到了,这个就不需要遍历了。之后就原创 2018-02-05 21:07:48 · 195 阅读 · 0 评论 -
Sorting by Subsequences CodeForces - 844C
You are given a sequence a1, a2, ..., an consisting of different integers. It is required to split this sequence into the maximum number of subsequences such that after sorting integers in each of the...原创 2018-02-11 21:56:38 · 444 阅读 · 0 评论 -
岳麓山上打水 DFS+完全背包
描述今天天气好晴朗,处处好风光,好风光!蝴蝶儿忙啊,蜜蜂也忙,信息组的同学们更加忙。最近,由于XX原因,大家不得不到岳麓山去提水。55555555~,好累啊。信息组有一个容量为q升的大缸,由于大家都很自觉,不愿意浪费水,所以每次都会刚好把缸盛满。但是,信息组并没有桶子(或者瓢)来舀水,作为组内的生活委员,你必须肩负重任,到新一佳去买桶子。新一佳有p种桶子,每种桶子都有无原创 2018-02-07 20:12:42 · 567 阅读 · 0 评论 -
标题:方格分割
6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。如图:p1.png, p2.png, p3.png 就是可行的分割法。试计算:包括这3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法。请提交该整数,不要填写任何多余的内容或说明文字。从中间开始,这个题是成中心对称的,我们去相反的操作。我们遍历到x,y,我们同时把6-x和6-y算上。并...原创 2018-03-15 20:35:01 · 549 阅读 · 0 评论 -
数独问题
简单题poj2676 poj2918 最简单的数独。按行遍历,一位一位的找空格。#include<iostream>#include<cstdio>using namespace std;int a[10][10];char s[10][10];int i,j;bool ok(int k,int x,int y){ for(int i=0;i<9;i++) { ...原创 2018-03-05 21:36:11 · 283 阅读 · 0 评论 -
程序设计:蒜头君下棋 迷之DFS
蒜头君喜欢下棋。最近它迷上了国际象棋。国际象棋的棋盘可以被当做一个 8\times 88×8 的矩阵,棋子被放在格子里面(不是和中国象棋一样放在线上)。蒜头君特别喜欢国际象棋里面的马,马的移动规则是这样的:横着走两步之后竖着走一步,或者横着走一步之后竖着走两步。例如,一匹马在 (3,3)(3,3) 的位置,则它可以到达的地方有 (1,2)(1,2),(2,1)(2,1),(1,4)(1,4),(4...原创 2018-03-25 20:48:56 · 412 阅读 · 0 评论 -
历届试题 大臣的旅费 树的直径
首先从1出发dfs,找到离1最远的点,设为x。然后再从x出发,找离x最远的点,顺便计算着路径长度。找到最远的点后,输出路径长度即可。#include<iostream>#include<cstring>#include<vector>using namespace std;struct node{ int to,cost;};vector<node&...原创 2018-03-28 22:10:07 · 315 阅读 · 0 评论 -
HDU - 5927 F - Auxiliary Set
Given a rooted tree with n vertices, some of the vertices are important. An auxiliary set is a set containing vertices satisfying at least one of the two conditions: ∙∙It is an important vertex ∙∙It i...原创 2018-04-30 20:36:59 · 305 阅读 · 0 评论 -
HDU - 5925 D - Coconuts 二维数组的离散化问题
参考:https://www.cnblogs.com/stultus/p/6393444.html他的行和列是反着的..wa了无数次...学习使用了离散化这个知识点。这道题最大的难点就是离散化之后如何计算每个区间内的小格子数量,因为常规的离散化肯定会破坏小格子的数量的,所以我们需要记录一下啊。如果对于x方向进行离散化时, 1 2 5 7位置分别存在一个坏椰子。 那么我们离散化肯定离散成了 1...原创 2018-04-30 21:43:53 · 571 阅读 · 0 评论 -
K King of the Waves 巧妙dfs
给你n,代表有0 n-1个人,给你n行,每行n个字符, 字符是X,i=j就是这个人在这个位置 1 代表,i人能赢j人当king 0代表输; 游戏规则是b 是king a能赢b a当king 问裁判按什么安排顺序0能当king这道题有一个误区,下意识建图就是 a如果可以打败b 就连接a->b 最后扫一遍。这样是不全的。有些图无法遍历到。你其实不需要关心后面谁打赢谁,我们是需要保证0这个人能赢即...原创 2018-05-02 20:24:10 · 559 阅读 · 0 评论 -
D Detour 最短路+暴搜
完全就是理解题意的问题....他的题目可以简化成一下:有n个点,m条边。要求从0到达1,输出路径。但是对于每个点,你不允许从这个点走 “此点到达1点的最短路所经过的那个边”。如果你到达了2点。2点指向3,4,5. 如果2点到达1点的最短路经过了3点,也就是走了2->3这条边,那么你就不能走这条边。你只能走4,5这两个点。所以我们第一步肯定是要求出所有点到达1点的最短路,所经过的第一个点求出来...原创 2018-05-02 21:11:07 · 361 阅读 · 0 评论 -
Problem G Gentlebots 随机模拟
Rainforest Inc. is opening a large new automated warehouse in the far Northern reaches of theUK—some place they call “Walthamstow”.The robotic worker drones inside will operate in not just one or two,...原创 2018-05-03 15:43:05 · 437 阅读 · 0 评论 -
方格分割 DFS+ 对称性 + 用点代表格子
6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。如图:p1.png, p2.png, p3.png 就是可行的分割法。试计算:包括这3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法。请提交该整数,不要填写任何多余的内容或说明文字。 利用普通的暴力枚举百分百会超时。我们选择不枚举格子原创 2017-11-04 13:33:18 · 616 阅读 · 0 评论 -
HDU 1043 八数码问题 A*搜索+康拓展开+逆序对判断+路径输出
康托展开:和其他一样,为了方便表示各个状态,让每个状态都变成一个数来表示逆序对判断:如果图八数码,那个这个图所有的逆序对之和一定是偶数的,如果是奇数,则不是八数码路径输出: pre数组记录前置点,vis数组同时表示是否访问过,也记录着方向。到达这个点是都得什么方向。A*搜索:建立一个queue,按照g排序,优先访问g小的,g相同访问h小的。 而估价函数是用的曼哈顿距离原创 2017-11-03 20:31:26 · 349 阅读 · 0 评论 -
poj 1376 Robot BFS 块状的
DescriptionThe Robot Moving Institute is using a robot in their local store to transport different items. Of course the robot should spend only the minimum time necessary when travelling from one原创 2017-10-30 20:44:12 · 227 阅读 · 0 评论 -
poj1010 Tempter of the Bone DFS花式剪枝...
题目注意点:要t时刻恰好到达!各种剪枝。①时间超了,直接return②求出结果了,以后的全部直接return③题目一开始,如果可走区间小于要求时间,直接return④奇偶剪枝:对于每次的dfs,剩余时间减去当前点到达目的地的直接距离 所得到的那个值如果是偶数,继续运行。如果是奇数return。 因为那个数是留给我们乱走绕远路的,如果是奇数的话,我们走不回来了。#i原创 2017-10-30 21:46:45 · 218 阅读 · 0 评论 -
51nod 1489 蜥蜴和地下室 dfs
哈利喜欢玩角色扮演的电脑游戏《蜥蜴和地下室》。此时,他正在扮演一个魔术师。在最后一关,他必须和一排的弓箭手战斗。他唯一能消灭他们的办法是一个火球咒语。如果哈利用他的火球咒语攻击第i个弓箭手(他们从左到右标记),这个弓箭手会失去a点生命值。同时,这个咒语使与第i个弓箭手左右相邻的弓箭手(如果存在)分别失去b(1 ≤ b 因为两个端点的弓箭手(即标记为1和n的弓箭手)与你相隔较远,所以火球不能原创 2017-11-08 19:50:38 · 246 阅读 · 0 评论 -
poj 1564 Sum It Up
Language:DefaultSum It UpTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 8123 Accepted: 4149DescriptionGiven a specified total t and a list of n i原创 2017-10-31 13:26:56 · 159 阅读 · 0 评论 -
hdu1518 Square
Problem DescriptionGiven a set of sticks of various lengths, is it possible to join them end-to-end to form a square? InputThe first line of input contains N, the number of test ca原创 2017-10-31 17:03:27 · 251 阅读 · 0 评论 -
POJ 1573 Robot Motion 搜索找一个循环
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 12845 Accepted: 6234DescriptionA robot has been programmed to follow the instructions in its path. Instr原创 2017-10-31 17:44:37 · 197 阅读 · 0 评论 -
hdu1072 Nightmare
Problem DescriptionIgnatius had a nightmare last night. He found himself in a labyrinth with a time bomb on him. The labyrinth has an exit, Ignatius should get out of the labyrinth before the bomb原创 2017-10-31 18:44:20 · 179 阅读 · 0 评论 -
hdu 1728 逃离迷宫 剪枝DFS
有两点需要注意。第一点是转弯问题,准备一个数组来存放到达每个点最小的转弯数。第二点就是剪枝了剪枝1:如果求出来了,直接return剪枝2:如果当前已经大于最大转弯数了,直接return剪枝3:第二次到达某个点时,如果转弯数大于之前到达的一次,直接return剪枝4:同样第二次到达某点,如果方向不一样我们还要+1,判断+1之后是否大于之前到达的那一次,如果大于了直接retur原创 2017-10-31 19:48:02 · 302 阅读 · 0 评论 -
poj 1011 Sticks DFS 剪枝
DescriptionGeorge took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the original state, but he forgot how many sti原创 2017-11-01 19:01:03 · 267 阅读 · 0 评论 -
HDU 1401 双向BFS !!!
#include#include#include#include#includeusing namespace std;struct point {int x,y;bool check(){if(x=0&&y>=0&&yreturn true;return false;}};struct node{point p[4]原创 2017-11-01 20:23:14 · 225 阅读 · 0 评论 -
POJ1190 生日蛋糕 强大的dfs剪枝!!
Description7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。 设从下往上数第i(1 Ri+1且Hi > Hi+1。 由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。 令Q = Sπ 请编程对给出的N和M,找出蛋糕的制作方案(适当的Ri和Hi的值),使S最小。原创 2017-11-01 21:53:42 · 299 阅读 · 0 评论 -
poj 1729 Jack and Jill BFS嵌套,同时进行两个
Description Ever since the incident on the hill, Jack and Jill dislike each other and wish to remain as distant as possible. Jack and Jill must attend school each day; Jack attends a boys’ school wh原创 2017-11-02 17:13:08 · 729 阅读 · 0 评论 -
hdu 1664 BFS 数组组成+取模 挺好的一道
Different DigitsTime Limit: 10000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1430 Accepted Submission(s): 392Problem DescriptionGiven原创 2017-11-02 18:27:54 · 250 阅读 · 0 评论 -
HDU 1430 DFS + 康托展开 + 映射处理 +预处理!
第一点:模板操作是对于8个字母进行操作的,直接处理起来特别麻烦。对于这种有顺序要求的不重复分字符串处理,我们可以考虑康托展开,用一个数字来替代整个字符串。康拓展开:http://blog.csdn.net/zhongkeli/article/details/6966805 其实就是按照事先的约定,把一个字符串变成一个数字。第二点:为了省时间,我们进行预处原创 2017-11-02 19:25:13 · 331 阅读 · 0 评论 -
hdu 3567 康托展开 +BFS
HDU 1430 DFS + 康托展开 + 映射处理 +预处理!http://blog.csdn.net/little_boy_z/article/details/78428300和hdu1430很类似,模仿着来即可。主要会用康托就好了#include#include#include#include#include#include#inc原创 2017-11-02 19:50:42 · 301 阅读 · 0 评论 -
可以来拯救吗 巧妙dfs 省时间
链接:https://www.nowcoder.com/acm/contest/117/E来源:牛客网题目描述 quailty is BNU's red sun. quailty非常喜欢给同学讲题,一天,他又拉着SK给他讲题。 quailty:给一个长为n的序列,求给定子序列的和,会吗? SK:。。 quailty:给一个长为n的序列,求给定子序列的和的平方,会吗? ...原创 2018-04-28 21:14:55 · 273 阅读 · 0 评论