![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索
文章平均质量分 71
616156
赛高______↑
展开
-
【暑假复习】【搜索】POJ1979RedandBlack
给出一个起点,求起点所在的四连通块的大小搜索基础题,广搜深搜都没问题,从起点出发向四周拓展并每次标记访问,再计访问过的节点总数。 深搜代码:#include<cstdio>#include<cstring>#include<algorithm>#define SF scanf#define PF printf#define MAXN 22using namespace std;int原创 2017-06-24 20:47:40 · 331 阅读 · 0 评论 -
【折半搜索】AtCoder Grand Contest 026 String Coloring
题意:给出一个字符串s。 给这个串的每个位置染上红/蓝色,要求正向读每个染成红色的字符所组成的字符串s1,与反向读每个染成蓝色的字符所组成的字符串s2,满足s1=s2分析:由于N很小,我们可以考虑折半搜索。先搜前一半,用字符串hash把蓝、红两种颜色的字符串表示出来,存入一个map里面,再搜后一半,还是用字符串hash求出方案数。#include<cstdio>...原创 2018-07-15 18:46:40 · 317 阅读 · 0 评论 -
【搜索】Codeforces1016F Road Projects
分析:额,可以把树中从1到n的那条链单独提出来, 显然,如果某个点延伸出去的点不小于了2个,那么肯定连那些点(蓝色边)是最优的。因为它不会对最短路造成影响。否则只能连红色边是最优的。显然,我们连接的点u、v是在最优条件下固定的。无非求出这两个点罢了。这两个点满足min{dist0−>u+distv−>n,distn−>u+distv−>0}min{dist...原创 2018-08-05 16:51:53 · 265 阅读 · 0 评论 -
【图论】HDU6370 Werewolf
分析:这题还算比较水的。。。真不知道为什么初三的小朋友被卡了。。。明明人家初二的小朋友拿这题签到来着。。。。显然,可以所有人都是狼人,这是一定合法的,所以一定是村民的人数必然为0因此,只需要知道哪些人一定是狼人,就能得到答案。我们定义一条全是由“认为xx是村民”的边,所组成的链为一条信任链。不同的信任链可以重合。这种信任链的特点是:对某个信任链上的点而言,它认为所有它的...原创 2018-08-10 15:09:34 · 161 阅读 · 0 评论 -
【搜索】【kruskal】BZOJ1016[JSOI2008]最小生成树计数
分析:根据最小生成树的性质,如果存在多个最小生成树,那么这几种最小生成树必然满足:权值相等的边数量相同。所以要计算不同的情况,只需要考虑权值相同的边的选择状态。然后由于题目满足:权值相等的边不超过10条,那么爆搜就可以了。 对于权值相同的一个边集,用爆搜讨论完所有的选择情况,如果选择完后,这种权值边的总数,与预先求出的最小生成树中这种边权的边数量相同,即合法。然后乘法原理乘起来就可以...原创 2018-08-31 17:26:43 · 153 阅读 · 0 评论 -
【暴力】AGC003 Sequential operations on Sequence
分析:我写的暴力居然过了。。奇迹啊。。。直接从后往前依次询问,对最后一次询问,询问其前aqa_qaq个位置,然后转移到q−1q-1q−1位置,就变为前aq−1,aq%aq−1a_{q-1},a_q\%a_{q-1}aq−1,aq%aq−1位置……但这个是n2n^2n2的啊。。加了一个小优化:每次从最大的一个开始,然后依次判断到小于等于aia_iai为止。然后就过了。。。感觉数据是...原创 2018-09-18 12:35:47 · 192 阅读 · 0 评论 -
【图论】【DFS】AGC005E Sugigma: The Showdown
分析:实在不知道有什么难点的题。。。一个人要跑,一个人要追,显然追的人是不会停下的,所以最终答案要么是-1,要么是追的人走的步数*2.根据样例,很容易发现,追不到的情况只有一种:跑的人到了一条边上,然而追的人在这两个端点的距离大于2,此时跑的人就可以通过秦王走位(来回鬼畜),让追的人永远追不上。那么就很简单了,建两棵树,一颗以x为根,一颗以y为根,然后从x出发dfs,走到每个点,先检查追的...原创 2018-09-20 16:53:30 · 285 阅读 · 0 评论 -
【图论】【DFS】AGC013 B Hamiltonish Path
分析:很简单的DFS水题。很容易发现,这个起点和终点的条件是很容易构造的,我们只需要随便从一个点出发,向其中某个方向一直dfs下去,直到走不动了,那个点设为起点。再从另一个方向一直dfs下去,直到走不动了,设为终点。找起点用栈就可以了。#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;#incl...原创 2018-09-28 20:44:49 · 176 阅读 · 0 评论 -
【AC自动机】【状压DP】【搜索】BZOJ1559密码
分析:非常套路的状压DP套AC自动机水题。就是找方案有点恶心。#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<queue>#include<vector>#include<string>#in原创 2018-10-22 20:28:36 · 176 阅读 · 0 评论 -
【图论】【DFS】三校联考10.20T2
题意寻找有多少条边满足:图中所有奇环都包含这条边,且这条边不属于任何偶环分析:最后一个性质好坑。。。一直在想那个性质结果T3都没来得及做…直接建一个DFS树。因为是无向图,所以只存在树边和返祖边。然后很显然只有一条返祖边与树边形成的环是有效的。并且!返祖边有贡献当且仅当全图只有一个奇环!!!。。。。#include<cstdio>#include<cstring&...原创 2018-10-20 16:41:08 · 174 阅读 · 0 评论 -
【暴力】【规律】NOIP2018D2T2 填数游戏
分析:然后尝试着转化一波模型,发现其实就是满足两个条件:1、对于任意一个从左下到右上的对角线,必然满足前面全部是1,后面全部是0(当然,可以全部为0或1)2、若存在某个位置,使得到达它有至少2种不同的路径(即某一步的数字不同),那么它能到达的所有点,在决策时面临的数字必须相同(即它向右和向下走都是同一个数字)。不能矩乘的原因就在性质2上。根据性质1,可以把每个对角线拿出来分别考虑,相当于...原创 2018-12-03 16:50:57 · 619 阅读 · 1 评论 -
【构造】【搜索】Codeforces990F Flow Control
题意:给出一个图,每条边有一个流量。现在给出每个点要求的最终的流量大小,构造出一种流量方案。使得能够满足条件。如果无解输出Impossible分析:很容易证明一点:只要每个点的流量和为0,就一定有解。 证明很简单,设aiaia_i表示i点的需求。如果存在两个点u,vu,vu,v,au>0au>0a_u>0,且av<0av<0a_vmin(|au|,|av|...原创 2018-06-18 21:55:48 · 354 阅读 · 0 评论 -
Codeforces483Div1 983E NN country
题意:给出一颗N个点的树,树上有M条链,需要满足Q次询问: 每次询问给出两个点(u,v)(u,v)(u,v),求从u出发,只通过链来行走(即当前位于某条链的某一个点上,就可以移动到这条链的任意一个点上,这定义为一步),求到达v点的最小步数。链可能会重复覆盖某些点,也可能不连通,若无法到达输出-1N,Q,M≤105N,Q,M≤105N,Q,M\leq 10^5分析:首先,有...原创 2018-05-26 23:02:49 · 460 阅读 · 0 评论 -
【图论】【贪心】【搜索】[Atcoder Grand Contest 022]C Remainder Game
题意:给出一个初始数组A,以及目标数组B,现在要把A的每个值改为B中相应的值,更改的方式如下: 选择一个数x,对任意一个 A中的数aiaia_i,可以改为ai mod xai mod xa_i\space mod\space x,可以不改,但代价均为2x2x2^x 求最小代价,或无解输出-1 数组A的大小n≤50n≤50n\leq 50 ai≤5...原创 2018-04-06 16:42:24 · 196 阅读 · 0 评论 -
【暑假复习】【搜索】AOJ0118:Property Distribution
题意有三种符号,同种符号四联通,求连通块总数题解枚举每一个点,若未被访问过,就访问这个点所在的连通块,将整个连通块的点全部标记,总数++#include<cstdio>#include<cstring>#include<algorithm>#define SF scanf#define PF printf#define MAXN 110using namespace std;int原创 2017-06-24 20:55:34 · 320 阅读 · 0 评论 -
【暑假复习】【搜索】AOJ0033:Ball
题意将一个长度为10,包含0–9所有数字的数字串从头开始放入两个不同的数字串的末尾,要求这两个数字串从前往后递增。题解暴力地01枚举,分别考虑放第一个串或第二个,每次判断是否合法,放完即可返回。 复杂度2的n次方,n<=10,不会超时#include<cstdio>#include<cstring>#include<algorithm>#include<stack>#define SF s原创 2017-06-24 21:02:24 · 395 阅读 · 0 评论 -
【暑假复习】【搜索】POJ3009:Curling 2.0
题意给出一个图,有石头和空地,有一个球,可以向上下左右任意一个没有相邻石头的方向持续移动,直到撞到石头为止(球停留在石头的前一格),并且会使撞到的石头消失,求让球到达目的地最少的步数(不一定非要在终点停下,经过即可视为抵达),且步数必定小于等于10,否则算无解。如果没有合法方案,也属于无解,无解输出-1题解因为步数必然小于10,所以枚举每一步走上下左右的某一个方向即可,判断是否合法,然后转移。 时原创 2017-06-24 21:10:59 · 326 阅读 · 0 评论 -
【暑假复习】【搜索】AOJ0558:Cheese
题意在一个图上给你n个从1到n的节点,求依次经过1到n的路径总长,有障碍格不能通过。题解宽搜最短路,询问n次#include<cstdio>#include<algorithm>#include<cstring>#include<queue>#define SF scanf#define PF printf#define PII pair<int,int>#define MAXN 10原创 2017-06-24 21:14:29 · 306 阅读 · 0 评论 -
【暑假复习】【搜索】POJ3187:Backward Digit Sums
题意一个倒三角形,除最上层以外每个节点等于上左和上右两个节点值得和。 给出层数,最下层的值,求第一层的排列(1-n)题解很显然,最下层的值等于第一层的排列中,每个位置的值乘以杨辉三角中同层数该点的值 样例: 3 1 2 4 4 3 6 7 9 16 杨辉三角: 1 3 3 1 1 2 1 1 1 1 所以16=3*1+1*3+2*3+4*1 因此我的方法是先求出n层杨辉三原创 2017-06-24 21:22:41 · 198 阅读 · 0 评论 -
Codeforces 456 Div2
(写到一半突然断电。。。。。无力,原谅我不写题意了)B:很显然,如果k=1k=1,答案就是n 若k≥2k≥2,答案就是n的第一个1开始,将后面所有位全部转换为1后的值。#include#include#include#define SF scanf#define PF printf#define MAXN 1010using namespace std;原创 2018-01-06 15:12:36 · 247 阅读 · 0 评论 -
【分治&搜索】hihocoder1509 异或排序
题目描述:给定一个长度为 n 的非负整数序列 a[1..n]你需要求有多少个非负整数 S 满足以下两个条件:(1).0≤S2600 ≤ S (2).对于所有1≤in,有(a[i] xor S)≤(a[i+1] xor S)对于所有 1 ≤ i 分析:有了上一题的经验:hihocoder1526 序列的值 现在我们仍然从高到低依次考虑每一位, 1、若满足前i个数中,这原创 2018-01-16 15:18:39 · 157 阅读 · 0 评论 -
hihocoder1251&Uvalive7263 Today Is a Rainy Day 2015北京赛区C
题意:给出一个长度为N的串,每个元素介于1-6之间,现在有两种操作方式: A、将所有值为x的改为y B、将某个位置为x 现在给出初始串S,要求将其变为目标串T的最小操作次数。 N≤100分析:首先,必须得到一个结论,所有的B操作都可以在所有A操作做完后进行 证明非常简单:无论最优解中B操作在任意一个位置,将其在A操作做完后,将其直接改为目标串的值,这样可以是不会增加操作次...原创 2018-02-23 21:24:40 · 168 阅读 · 0 评论 -
【搜索】[AtCoder Regular Contest 092 F]Two Faced Edges
题意:给出一个有向图,对每条边都做一次询问: 反转这条边后,对原图的强连通分量是否有影响? 点的个数N≤1000N≤1000N\leq 1000,边的个数M≤200000M≤200000M\leq 200000分析:首先对于原图的任意一条边(u,v)(u,v)(u,v)如果反转之后,对强连通分量无影响,则: 1、u是否能通过其他边到达v 2、v是否能到达u 这两个问题的答...原创 2018-03-18 20:28:57 · 363 阅读 · 0 评论 -
双向BFS&Meet in the Middle算法总结
前言:尽管搜索题在难度高的比赛中都不是重要考点,但作为骗分的一大技巧,无论多强的选手,都仍然无法忽视搜索的重要性。并且,有些高难度比赛中,一些带一定技巧的搜索题,很有可能会放在签到题的位置上。这些题全场都会做,但正因如此,所有人都会毫不犹豫地先写这道题,如果在这道题上花的时间过多,对后面的难题将造成不可估量的影响。总之,练好搜索是绝对必要的。双向BFS传统的BFS是从起点出发,一直...原创 2018-03-28 13:31:22 · 1032 阅读 · 0 评论 -
【BFS】BZOJ省选十连测 Cycle
分析:蛤?这题绝对有问题。。。复杂度明显不对头。。。它的想法其实就是找到一个点,判断它与它周围的点能否构成环,然后不能再删去这个点。。。然而。。。他每次都memset了一发,这不T?服都服了。。。#include<cstdio>#include<cstring>#include<algorithm>#include<vector>...原创 2019-03-03 21:01:53 · 178 阅读 · 0 评论