DFS
文章平均质量分 75
九野的博客
这个作者很懒,什么都没留下…
展开
-
HDU 4597 Play Game 2013 ACM-ICPC吉林通化全国邀请赛H题
题意:给定T个测试数据,下面有2副牌,每副n张,每张都有一个分值问:2个人轮流取牌,每次取一张(从任意一副的牌顶或牌底取),先手可获得的最大分值 开始往博弈想了,这题是记忆化搜索#include#include#include#include#include#include#define N 25using namespace std;int c原创 2013-09-01 18:46:03 · 1971 阅读 · 0 评论 -
Codeforces 109C Lucky Tree 组合计数+dfs
题目链接:点击打开链接题意:给定n个点的树,有边权。定义lucky number:数字只有4或7组成对于一个三元组(i, j, k)若path(i,j) 路径上的数字存在lucky number && path(i,k) 路径上的数字存在lucky number则三元组合法。问有多少个合法的三元组。( (i,j,k) != (i,k,j) )用全集-补集。dfs原创 2014-09-02 16:41:15 · 1673 阅读 · 0 评论 -
HDU 4123 Bob’s Race 树的直径+单调队列
题意:给定n个点的带边权树Q个询问。下面n-1行给出树下面Q行每行一个数字表示询问。首先求出dp[N] :dp[i]表示i点距离树上最远点的距离询问u, 表示求出 dp 数组中最长的连续序列使得序列中最大值-最小值 思路:求dp数组就是求个树的直径然后dfs一下。对于每个询问,可以用一个单调队列维护一下。O(n)的回答。#include #includ原创 2014-11-09 14:18:19 · 1749 阅读 · 0 评论 -
UVALive 6527 Counting ones dfs(水
题目链接:点击打开链接#include #include using namespace std;typedef long long ll;ll re;vector p;void dfs(int dep, int g) { if (dep == 0) return ; if (p[dep-1] == 1) { re += (dep-1) * (1原创 2014-10-30 13:14:56 · 1635 阅读 · 0 评论 -
A Yellowstar的第一道题 博弈
题目链接:点击打开链接先来个暴力程序找下规律。若n*r*c 是偶数,则是必败态,输出0.000000否则对于3*3*3 赢的位置有:1 0 10 1 01 0 10 1 01 0 10 1 01 0 10 1 01 0 11为必胜点。也就是说左上角是1,这样扩散出去。答案就是所有1位置的概率和。暴力程序:#include #in原创 2014-11-16 16:46:25 · 1980 阅读 · 0 评论 -
HDU 4812 D Tree 树分治+逆元+hash新姿势
题意:给定n个点的树 K下面n个数是点权下面n-1行给出树边。问:是否存在一条路径使得路径上点权积 % mod = K若存在则输出路径的两端。若存在多条路径则输出字典序最小的一条。思路:按树重心分治。分成路径是否经过树重心。然后用力码。。has[x] = u;表示乘积为x 对应的点是u但这样has就不能用计数器来优化清空。原创 2014-10-04 21:18:44 · 2746 阅读 · 0 评论 -
UVALive 6088 Approximate Sorting 构造题
题目链接:点击打开链接题意:给定一个n*n的01矩阵我们跑一下样例==40111000001000110 0123\|____0|01111|00002|01003|0110用0-n-1随便构造一个序列:如:1230我们计算1230的权值 :int ans = 0;对于个位0,我们查找第0行:0111,0前面的数原创 2014-11-02 11:49:49 · 1364 阅读 · 0 评论 -
Codeforces 56D Changing a String 编辑距离 记忆化dp
题目链接:点击打开链接编辑距离,,== 一边dp一边记录前驱太累,,还是dp后找路径大法好#include#include#include#includeusing namespace std;#define ll int#define N 1010char s[N], t[N];int dp[N][N], n, m;// 0为插入 1为删除 2 3为替换struct原创 2014-08-04 16:17:19 · 1281 阅读 · 0 评论 -
Aizu 2306 Rabbit Party 爆搜顶点导出子图
题目链接:点击打开链接 题意:给定n个点的完全图,下面给出m条边权不为0的边下面m行给出边和边权。其他的边边权都为0.选择一个顶点导出子图,该子图的每个点点权为 该点连接的最小边权。找一个这样的子图使得点权和最大,输出点权和。思路:因为是一个完全图,所以我们选择的点构成的图一定不包含权值为0的边。因为若包含了权值为0的边,则大可以把这两点删掉而不会减小答案。所以原创 2014-12-04 16:26:23 · 1756 阅读 · 0 评论 -
URAL 2013 Neither shaken nor stirred dfs 模拟
题目链接:点击打开链接题意:给定n个点的有向图:下面n行,第一个数字表示点权,后面一个数字m表示有m条边。起点是1.对于每个点,输出2个值表示前驱点权1和该点点权2。1、若有多条路径到达该点且前驱的点权存在>0则输出unknown,否则输出前驱的点权(就是若有多条路径且全为0输出0,否则若只有一条路径则输出前驱点权,否则输出unknown)2、若1输出的是0,则输出该点原创 2014-12-09 14:52:02 · 1637 阅读 · 0 评论 -
Uva 10825 Anagram and Multiplication dfs 爆搜排列
题目链接:点击打开链接题意:给定m( 3构造一个m位n进制的数。使得这个数*2, *3, *i ( 2如:m = 6, n = 10;则 这个数可能为 1428572*142857 = 2857143*142857 = 4285714*142857 = 5714285*142857 = 7142856*142857 = 857142输出:原创 2015-01-21 17:00:01 · 1475 阅读 · 1 评论 -
UVALive 3621 Power Calculus n次幂最少需要几次乘除得到 搜索
题目链接:点击打开链接题意:输入一个n(n问:有一个x,最少需要几次乘除可以算出x^n。思路:记忆化搜索import java.io.PrintWriter;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparat原创 2015-01-22 21:49:36 · 1453 阅读 · 0 评论 -
HDU 4085 Peach Blossom Spring 记忆化搜索枚举子集 斯坦纳树
题目链接:点击打开链接题意:第一行输入n个点 m条可修建的无向边 k个人下面给出修建的边和修建该边的花费。开始时k个人在1-k的每个点上(一个点各一人)目标:从m条给定边中修建部分边使得花费和最小让k个人移动到 [n-k+1, n] 后面的k个点上(每个点放一个人)。思路:首先就是一道斯坦纳树,还是先求一个dp数组(求解方法:点击打开链接)dp[i][j] 表示原创 2015-02-13 16:34:53 · 1100 阅读 · 0 评论 -
CodeForces 264A Escape from Stones dfs
题目链接:点击打开链接题意:开始有一个区间[0,1]每次操作在中间填i,然后选择坐半段或者右半段(给出选择的方案,然后从左到右输出填写的i)(i=1 2 3···)#include char s[1000005];void dfs(int x){ if(s[x] == 0)return ; if(s[x] == 'l') { df原创 2015-03-01 22:56:13 · 1541 阅读 · 0 评论 -
HDU 5323 SOLVE THIS INTERESTING PROBLEM 爆搜
链接Solve this interesting problemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 511 Accepted Submission(s): 114Problem Desc原创 2015-07-28 20:12:36 · 1264 阅读 · 0 评论 -
Codeforces 570D TREE REQUESTS dfs序+树状数组
链接题解链接:点击打开链接题意:给定n个点的树,m个询问下面n-1个数给出每个点的父节点,1是root每个点有一个字母下面n个小写字母给出每个点的字母。下面m行给出询问:询问形如 (u, deep) 问u点的子树中,距离根的深度为deep的所有点的字母能否在任意排列后组成回文串,能输出Yes.思路:dfs序,给点重新标原创 2015-08-14 20:02:04 · 2521 阅读 · 0 评论 -
HDU 5416 CRB and Tree dfs
链接题解链接:http://www.cygmasot.com/index.php/2015/08/20/hdu_541/题意:给定n个点的树下面n-1行给出边和边权下面q个询问每个询问一个数字s询问有多少条路径使得路径的边权异或结果 == s 结果%(1e9+7)询问不超过10组。思路:设路径{u,v}的边权异或结果为 f(u,v)设lca 为u v的最原创 2015-08-20 19:38:25 · 2241 阅读 · 2 评论 -
Codeforces 463E Caisa and Tree dfs+分解质因素
题目链接:点击打开链接题意:给了一棵树每个点有点权操作1 : 1 u 表示询问 gcd(Valueof(u), Valueof(v) ) != 1 的所有v 点中深度最大的点[ v是 path(u, root); && v!=u ]操作2 : 2 u w 修改点权因为操作2的个数不超过50个,所以每次更新点权后都把所有答案预处理一遍。这样回答是O(1原创 2014-08-30 20:26:49 · 2451 阅读 · 2 评论 -
ZOJ 3816 Generalized Palindromic Number dfs+暴力枚举
题目链接:点击打开链接题意:给定一个数n找一个最大的数u使得u枚举前面有多少位是一样的。然后分类讨论。啪啦啪啦#include #include #include #include #include using namespace std;typedef long long ll;const int N = 22;int pie[N], piesize;ll原创 2014-09-07 19:04:57 · 2531 阅读 · 0 评论 -
HDU 2894 欧拉回路
#include#include#include#include#includeusing namespace std;#define N 20020struct node{ int from, to, dou, nex;}edge[N];int head[N], edgenum;void add(int u, int v,int dou){ node E={u,v,dou原创 2014-05-02 21:39:10 · 1642 阅读 · 0 评论 -
Uva 12009 平方数尾数与自身相同 dfs 构造
题目链接:点击打开链接题意:rt思路:从最低位开始构造,若x位的平方数是自身则继续构造。mark:#pragma comment(linker, "/STACK:1024000000,1024000000") #include#include#include#include#include#include#include#include#include#inc原创 2014-05-07 00:17:22 · 1604 阅读 · 0 评论 -
Codeforces 384E 线段树+dfs序
题目链接:点击打开链接题意:给定n个点,m个询问的无向树(1为根)下面n个数表示每个点的权值下面n-1行给出树操作1:x点权值+v, x的第 i & 1 的儿子-v, 第 !(i&1) 的儿子+v操作2:询问x点权值dfs把树转成序列根据深度把点分成2组分别用线段树维护。。然后Y一下#include#include#include#include原创 2014-06-24 16:33:01 · 1410 阅读 · 0 评论 -
Codeforces 39E What Has Dirichlet Got to Do with That? 博弈+记忆化搜索
题目链接:点击打开链接题意:给定 a个箱子 b个球 常数n (球和箱子都是各不相同的,不会出现有一样的物品)设 way = 把b个球放到a个箱子中的方法数, 若way >= n则游戏结束有2个人玩游戏。若当前轮到 X时1、 X选择增加一个箱子或增加一个球2、若增加完后方法数>=n 则X失败若先手必胜,则输出 Masha ,若先手必败则输出 Stas ,若为平局则输出原创 2014-07-16 17:05:47 · 1539 阅读 · 0 评论 -
BNU 25593 Prime Time 记忆化dp
题目链接:点击打开链接题意:一个游戏由3个人轮流玩每局游戏由其中一名玩家选择一个数字作为开始目的:获得最小的得分对于当前玩家 O ,面对 u 这个数字则他的操作有:1、 计分 u +1 ,然后 u++;2、计分 u / x, 然后 u /= x; 其中x为u的因子且x为素数然后下一个玩家继续上述操作3个人各操作一次 为1轮当一轮结束后,若u==1 则游戏原创 2014-07-17 21:01:10 · 1114 阅读 · 0 评论 -
Codeforces 414C Mashmokh and Reverse Operation 归并排序在线求交换序列后逆序数
题目链接:http://codeforces.com/contest/414/problem/C先复制一个思路:解法:2^n个数,可以联想到建立一棵二叉树的东西,比如 2,1,4,3就可以建成下面这样 [2,1,4,3] le原创 2014-04-08 18:14:33 · 2495 阅读 · 0 评论 -
Codeforces 6D Lizards and Basements 2 dfs+暴力
题目链接:点击打开链接#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define N 110#define ll intll n, a, b;ll h[N];vectorG,ans;voi原创 2014-06-28 12:44:17 · 1610 阅读 · 0 评论 -
codeforces 366D 求1-n点最大区间长度 枚举区间左端+二分区间右端dfs判可行
题意:给定n个点m条边的无向图下面m条边 每条边都有一个区间,只有在该区间内的点可以通过 问从1-n点 最长 的一个区间 长度 枚举左端,二分右端,dfs判断是否可行 #include#include#include#include#include#include#include#includeusing namespace std原创 2013-11-25 19:32:13 · 2055 阅读 · 2 评论 -
HDU 2485 求删最少点使得 边权=1的有向图最短路>k
题意:给定n个点 m条有向边 k下面m条有向边问删最少几个点使得1-n的最短路>k这样思考:如果k = inf,那么我们只要给每个点拆点一下,限流为1,然后原图的边容量为inf,跑个最小割即可(这样建图就能求出删点的最小割,而不是删边的最小割)注意这样建图,起点拆点出的边容量=inf,终点同理而此题中,我们只需要把所有在满足k条件的所有路径上的点加入图即原创 2014-05-18 20:56:28 · 5113 阅读 · 0 评论 -
Codeforces 29D Ant on the Tree 树的遍历 dfs序
题目链接:点击打开链接题意:给定n个节点的树1为根则此时叶子节点已经确定最后一行给出叶子节点的顺序目标:遍历树并输出路径,要求遍历叶子节点时按照给定叶子节点的先后顺序访问。思路:给每个节点加一个优先级。把最后一个叶子节点到父节点的路径上的点优先级改为1把倒数第二个叶子节点到父节点的路径上的点优先级改为2如此每个点就有一个优先级,每个访问儿子节原创 2014-07-04 23:36:05 · 1579 阅读 · 0 评论 -
HDU 4228 Flooring Tiles 反素数
推出了结论,万万没想到最后用搜索。。还想dp来着。。#include #include #include #include #include #include #include #include using namespace std;#define ll long long#define N 1000005ll prime[N],primenum;//有primen原创 2014-07-05 23:54:56 · 1279 阅读 · 0 评论 -
Codeforces 453C Little Pony and Summer Sun Celebration dfs树上构造
题目链接:点击打开链接题意:给定一个无向图任选一个起点,使得访问每个点的次数奇偶与最后一行的输入一致思路:选一个奇数点作为起点dfs树一下,若子节点不满足则先走到子节点再回来如此就能保证所有子节点合法这样dfs结束后最多只有根节点不满足,随便找一个与根相连的点调整一下。#include #include #include #include #includ原创 2014-08-02 18:17:39 · 1369 阅读 · 0 评论 -
HDU 4919 打表找规律 java大数 map 递归
== oeis:点击打开链接然后不知道哪里写挂了,贴个基友的代码刷人气啊,兄弟多刷新几下再走啊import java.math.*;import java.util.*;import static java.lang.System.out;public class Main { static BigInteger x0 = new BigInteger("0");原创 2014-08-05 17:42:12 · 1967 阅读 · 0 评论 -
Codeforces 343D Water Tree dfs序+线段树
题目链接:http://codeforces.com/contest/343/problem/D题意:给定一棵树(给定图一定是树)1、把v点及其子树灌上水2、把v点及v到根的路径去掉水3、询问v点是否有水思路:dfs序(不是欧拉序列)把树转成dfs_clock那么对于点v 出现的时间in[v]和消失的时间out[v] ,一定会把v子树下所有节点都夹在[ in[v], o原创 2014-06-21 11:23:05 · 1231 阅读 · 0 评论 -
HDU 4886 TIANKENG’s restaurant(Ⅱ) hash+dfs
题意:1、找一个字符串s使得 s不是给定母串的子串2、且s要最短3、s在最短情况下字典序最小hash,,,结果t掉了。。。然后加了个姿势怪异的hash值剪枝才过。。队友是屌啊,,随手改了一下,特么我都不知道为毛过了#include #include #include #include #include #include #include #include #原创 2014-07-30 10:31:33 · 1143 阅读 · 0 评论 -
Codeforces 455B A Lot of Games 字典树上博弈
题目链接:点击打开链接题意:给定n个字符串,k局游戏对于每局游戏,2个玩家轮流给一个空串添加一个小写字母使得加完后的字符串不是n个字符串的前缀。输家下一轮先手问是先手必胜还是后手必胜思路:对于第一局游戏,若先手能到达必败态和必胜态,则先手会一直输到倒数第二局然后最后一局必胜所以此时是first若先手是必胜态或者是必败态,则是轮流赢,跟k的奇偶有关#inclu原创 2014-08-10 10:46:32 · 1529 阅读 · 0 评论 -
Codeforces round #321 (DIV. 2)
题解链接:http://www.cygmasot.com/index.php/2015/09/23/codeforces_580/链接A:Kefa and First Steps题意:the length of the maximum non-decreasing subsegment直接搞,水题#include #include #i原创 2015-09-23 21:51:35 · 1822 阅读 · 0 评论