搜索
天宇skyblue
这个作者很懒,什么都没留下…
展开
-
hdu 1026 bfs+优先级队列
没有什么难度,就是要用优先级队列,需要重载小于运算符。不用优先级队列不能过!!!!!!!#include #include #include #include #include #include #include #include using namespace std;int dir[4][2] = {0 , 1 , 0 , -1 , 1 , 0 , -1 , 0};原创 2015-07-13 12:19:55 · 375 阅读 · 0 评论 -
蓝桥杯 危险系数 DFS
题目链接:http://lx.lanqiao.org/problem.page?gpid=T35题目大意:抗日战争时期,冀中平原的地道战曾发挥重要作用。地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。我们来定义一个危险系数DF(x,y):对于两个站点x和y (x != y), 如果能找到原创 2016-05-16 16:22:48 · 820 阅读 · 0 评论 -
poj3134迭代加深搜索
题目大意:给你一个n,让你从x出发只用乘除法,求最小的次数算出x^n,所有的使用乘方必须已知即曾经计算出来。思路:迭代加深搜索。n不超过1000,所以最深出现答案的层数不会太深,可以试用跌代加深搜索。即每次设定搜索层数,判断该层是否有解。若有解输出改成即可。需要剪枝操作。#include #include #include #include #include #inclu原创 2016-05-05 14:31:40 · 481 阅读 · 0 评论 -
codeforces 14D 树的直径
题目大意:给你一棵树,要进行两次访问,两次访问中不能重复访问任一节点和边,问两次访问的最大长度乘积,没边 长度为1思路:因为n只有200,所以可以枚举从哪里将树分成两棵树,求两棵树的直径,维护乘积最大值即可。树的直径在以前的博文讲过,两遍dfs即可#include #include #include #include #include #include #inc原创 2016-05-09 15:48:07 · 627 阅读 · 0 评论 -
codeforces 115A
题目链接:http://codeforces.com/problemset/problem/115/A题目大意:举行party,每个人的上级不能出现,上级的上级也不能出现,问最少分多少组、思路:树的深度,每层的为一组。#include #include #include #include #include #include #include #include #in原创 2016-06-02 18:20:16 · 325 阅读 · 0 评论 -
codeforces117C DFS
题目链接:http://codeforces.com/problemset/problem/117/C题目大意:有没有三个点的回路思路:按行判断,DFS即可#include #include #include #include #include #include #include #include #include #include #inc原创 2016-06-07 18:24:22 · 536 阅读 · 0 评论 -
51nod 1268 DFS
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1268题目大意:给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K。如果可以,输出:"Yes",否则输出"No"。Input第1行:2个数N, K, N为数组的长度, K为需要判断的和(2 <= N <= 20,1原创 2016-07-18 11:04:25 · 320 阅读 · 0 评论 -
hdu5723 最小生成树+DFS(距离和,期望)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5723题目大意:找出最小生成树以及任意两点间距离的期望。思路:根据图建立最小生成树,然后DFS求距离和然后求期望即可。求出来最小生成树需要重新建图,建图需要 双向 边,然后DFS求出每条边贡献的次数,除以总共多少种情况就可以了,,。,,,,,,,ps:比赛时代码写残疾了**#原创 2016-07-19 22:26:50 · 365 阅读 · 0 评论 -
codeforces 721C 记忆化搜索 / dp
题目链接:http://codeforces.com/contest/721/problem/C题目大意:给你n个点,m条有向边,每条边的距离,问从1到n最多可以经过多少点是的总距离不超过t,按路径顺序输出这些点思路:dp[i][j]表示到达第i个点经过了j个点所用的最少距离。从1开始记忆华搜索,注意剪枝和路径的记录。#include #inc原创 2016-10-28 21:31:21 · 490 阅读 · 0 评论 -
拼多多迷宫寻路
题目描述假设一个探险家被困在了地底的迷宫之中,要从当前位置开始找到一条通往迷宫出口的路径。迷宫可以用一个二维矩阵组成,有的部分是墙,有的部分是路。迷宫之中有的路上还有门,每扇门都在迷宫的某个地方有与之匹配的钥匙,只有先拿到钥匙才能打开门。请设计一个算法,帮助探险家找到脱困的最短路径。如前所述,迷宫是通过一个二维矩阵表示的,每个元素的值的含义如下 0-墙,1-路,2-探险家的起始位置,3-迷宫的...原创 2019-03-15 16:34:54 · 243 阅读 · 0 评论 -
codeforces429A BFS
题目大意:给你一棵有n个节点的树,每个节点的value为0或1,给你初始value和目标value,对于每个节点课以执行一种操作:将该节点的value变为相反的即0变为1,1变为0,同时给节点的孙子节点,孙子节点的孙子都变反。问,最少进行多少次操作可以将初始value变为目标value,输出操作次数和需要更改的节点。思路:记录每个节点需要变num1和不需要变num2的次数,那么他的儿子结点变不原创 2016-05-05 11:18:37 · 543 阅读 · 1 评论 -
codeforces590C 二维最短路+BFS+优先级队列
题目链接:http://codeforces.com/problemset/problem/590/C题目大意:给你一个n*m的图,#代表不同,'.'代表可以修路,数字1,2,3代表属于某个国家……然后让你求三个国家互相连通最少需要修几条路思路:和前几天做的一道题目类似,分边以1,2,3为起点求三遍最短路即可。。因为是二维,用BFS即可。注意队列一定要用优先级,因为你可能走原创 2016-05-12 17:31:22 · 773 阅读 · 0 评论 -
codeforces28B
题目链接:codeforces 28 B. pSort题目大意:一个数列,初始顺序为S[i] = i;目标顺序为a[i] = i;每个位置i的元素都可以和位置j的元素互换位置,当前仅当|i-j| = d[i]。问能否有初始数列到达目的数列思路:乍一看,有点蒙。细想一下其实也不难。因为他只问每个数能否到达目的位置,也就是说有没有一条路是的S[i] 和a[i] 连通起来。因为n很小,所原创 2016-05-09 19:55:12 · 716 阅读 · 0 评论 -
poj1376 robot bfs
需要注意一下几点:1.每次只能转九十度2. 不能走边界3.边界需要特判4.终点可能不能到达代码如下:#include #include #include #include #include #include using namespace std;int dir[4][2]= {0 , 1 ,1 , 0 , 0 , -1 , -1 , 0};char d原创 2015-07-12 18:00:37 · 311 阅读 · 0 评论 -
hdu 5355 构造 + dfs(多校6.3)
题目大意:给你n快蛋糕,大小为1~n,问能否分成m等份,不能分割蛋糕,可以输出方案,不可以输出no。思路:首先判断能否sum(n)%m == 0,若可以,则yes。然后开始分配,因为n有点大,直接dfs肯定超时,所以只要n大于2m,就将蛋糕分出来2m个,每个人拿相等和的两个蛋糕,剩下的必然是2m~4m个蛋糕,此时dfs毫无压力。此处说一下为什么n要大于2m比较好,因为分配策略问题,我是把2m个原创 2015-08-08 08:53:02 · 374 阅读 · 0 评论 -
hdu5335 搜索+优化
题目意思:给定一个n*m的图,图上的每个点上的值为0或1,让你找到一条路,所经过的01序列最小。思路:若开始为0,则广搜找到最远的0(离终点最近,即x+y最大)。然后开始用优先级队列搜索。ps:刚开始直接用广搜超时了,然后知道可能要找到最远的0,但是想复杂了。比赛时没做出来,有点遗憾。。。。dir数组必须先向下在向右,否则WA,不知为什么,难道数据弱?(本来想的是记录所原创 2015-07-31 19:58:49 · 367 阅读 · 0 评论 -
hdu5305 (dfs) + 剪枝
题目大意;给你n,m表示n个人,其中有m对朋友关系并告诉你,求每个人拥有线上和线下朋友下等的个数思路:首先只要有一个人有奇数条边则结果为0.然后对所有边进行dfs即可。#include #include #include #include #include #include #include #include #include #include #include原创 2015-08-03 16:03:16 · 327 阅读 · 0 评论 -
hdu5433 BFS
题目大意:小明因为受到大魔王的诅咒,被困到了一座荒无人烟的山上并无法脱离.这座山很奇怪:这座山的底面是矩形的,而且矩形的每一小块都有一个特定的坐标(x,y)(x,y)和一个高度HH.为了逃离这座山,小明必须找到大魔王,并消灭它以消除诅咒.小明一开始有一个斗志值kk,如果斗志为0则无法与大魔王战斗,也就意味着失败.小明每一步都能从他现在的位置走到他的(N,E,S,W)(N,E,S,W)四原创 2015-09-17 15:33:50 · 347 阅读 · 0 评论 -
51nod1109 01组成的倍数 数据结构
题目:给定一个自然数N,找出一个M,使得M > 0且M是N的倍数,并且M的10进制表示,是由0和1组成的。求最小的M。例如:N = 4,M = 100。Input输入1个数N。(1 Output输出符合条件的最小的M。Input示例4Output示例100思路:因为n比较大,原创 2016-01-25 13:20:13 · 867 阅读 · 1 评论 -
51nod树的距离之和 DFS+递推
题目:给定一棵无根树,假设它有n个节点,节点编号从1到n, 求任意两点之间的距离(最短路径)之和。Input第一行包含一个正整数n (n <= 100000),表示节点个数。后面(n - 1)行,每行两个整数表示树的边。Output每行一个整数,第i(i = 1,2,...n)行表示所有节点到第i个点的距离之和。Input示例41原创 2016-02-01 19:50:16 · 452 阅读 · 0 评论 -
poj1390区间dp+记忆化搜索
题目大意:一排方块有颜色,每次只能消去相同颜色的块,分值为每次消去数量的平方,求最大和。思路:区间dp,dp[i][j][k]表示从i到j块且j后面有k块与j不想领但同颜色。则j可以和后面的合并也可以和前面的合并。具体看代码#include #include #include #include #include #include #include #inc原创 2016-02-17 14:05:38 · 353 阅读 · 0 评论 -
codeforces466E 并查集+离线处理+dfs
题目大意:一开始有n个员工,它们互相独立,现有三种操作:1 x y y称为x的上级2 x 从x发起一份文件,依次向上级传阅。文件编号一次递增3 x y 问x是否查阅过编号为y的文件思路:最暴力的解法就是模拟他的规则,但是这样明显超时。此时,想到了离线操作。我们可以用并查集确定每份文件的发起者和终结者,即文件移动的范围。。然后对于每次询问可以拆成两个原创 2016-05-10 18:33:43 · 917 阅读 · 0 评论 -
51nod2615 修改01矩阵(状态压缩+搜索)
题目连接:http://www.51nod.com/Challenge/Problem.html#problemId=2615思路:n比较小,状态压缩首行每位是否翻转,则后续每行的状态都已确定,当前行是否翻转需要看上一行当前位置是否为0,翻转结束后看最后一行是全为0即可。代码如下:#include <iostream>#include <bits/stdc++.h...原创 2019-08-05 22:33:22 · 345 阅读 · 0 评论