构造
WerKeyTom_FTD
我是一只来自中山纪念中学高三的oier,请多多指教
展开
-
[CF1019C]Sergey's problem
题目大意一个有向图无自环图,找到一个点集S满足: 点集内任意两个不同的点x和y,满足d(x,y)>=2。 对于任意一个不在点集内的点y,存在一个点集内的点x,满足d(x,y)<=2。构造对于任意图都存在解,构造性解法可以证明这点。 找到任意一点w,将w以及w的出边指向的点都删去,对剩余的图找到一个解S‘’。 如果存在一个u->w,且u在S’内,我们直接令S...原创 2018-08-12 10:54:30 · 1093 阅读 · 0 评论 -
[agc008d]K-th K
前言简单构造,一开始看错题瞎写了一发。题目大意给了一个长度为n的序列x。 请构造一个长度为n*n的序列a,只包含1~n这n个元素,每个元素出现n次,且对于元素i,a的第xi个位置是元素i,且前xi个位置恰好有i个i。构造显然可以正反各贪心一遍,不懂就看程序,正确性显然。 瞎填以后还可以n^3验证。#include<cstdio>#include<algorithm>#define fo(i,原创 2017-10-19 17:15:16 · 608 阅读 · 0 评论 -
[agc001d]Arrays and Palindrome
题目大意给定你a序列,请你重排它并构造一个b序列。 使得两个序列元素和均为n。 对于一个长度为n的字符串,满足如果前a[1]个是回文串,接下来a[2]个是回文串……且前b[1]个是回文串,接下来b[2]个是回文串……那么这个字符串处处相同。构造题我打了下表猜想了一下。 2个奇数无解。 否则奇数放首尾。 b就是第一个+1,最后一个-1,其余照抄。#include<cstdio>原创 2017-09-15 22:36:41 · 910 阅读 · 2 评论 -
[agc012c]Tautonym Puzzle
前言怎么wxh随手秒的傻逼题我看了好多眼啊。 对于这种题我感到措手不及,因为这样的题我一般只会两种方法。 一种是分离构造,将答案序列分成若干个互不相干的部分,答案是这些部分答案的和。 那么只要我能想到如何简单构造一个部分即可。 可惜我这样想长度怎么都爆。 另一种是倍增构造,但是想了好久都不知道如何不长度*2的把答案*2。 这就很GG了。 最后总结一下我的想题过程,这样的题还是朝着二进制原创 2017-09-21 22:15:37 · 606 阅读 · 0 评论 -
[agc015d]A or...or B Problem
前言一开始想着按二进制位倒着推统计贡献,每次讨论四种情况。 推着推着就发现了结论。 然而还是想复杂了。 直接值域就好了嘛。题意用若干个(至少一个)[A,B]中的数进行or操作能得到多少本质不同的数?做法先找到A和B最高一个不同的二进制位,设为d。 因为我菜下面我们都假设A是较大数。而且因为我懒接下来都用小写。 我们可以根据第d位是0还是1划分两类数。有1的是第一类数。 我们找到a第二个有原创 2017-09-28 22:18:38 · 779 阅读 · 0 评论 -
[agc14e]Blue and Red Tree
前言这题主要是要想到倒过来,是一个很唯一的过程。 我大概想到了,但我比题解蠢。 题解的不需要区分红蓝让我觉得很机智。题意有一颗全是蓝边的树,你对其执行n-1次操作。 每次操作选择一条全是蓝边的路径,将其中的一条蓝边断开,假设选择的路径是j->k,断的边是x-y,且断开后j和x联通,那么k和y联通。 然后你需要选择j->x上的一个节点,以及k->y上的一个节点,在这两个节点间连红边。 现在问原创 2017-09-27 22:13:12 · 438 阅读 · 0 评论 -
[LibreOJ β Round #4]多项式
题目大意构造一个不超过6w次的非0多项式,使得每项系数是非负数且小于k,并使得任意数x代入后模k=0。扩展欧拉定理我们知道了扩展欧拉定理。 那么可以直接构造x2∗ϕ(k)−xϕ(k)x^{2*\phi(k)}-x^{\phi(k)}#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(原创 2017-09-04 22:32:47 · 448 阅读 · 0 评论 -
[LibreOJ β Round]ZQC的树列
题目描述见LOJ。做法显然对于每一段数字,要么可选要么必选。 假如有t个,若必选,则方案为2^t-1,否则为2^t。 因此只有1、2、3就可以构造所有情况。 尝试把n拆分成2^t-1以及2^t的乘积。 这个用dfs即可。#include<cstdio>#include<algorithm>#include<cmath>#define fo(i,a,b) for(i=a;i<=b;i++原创 2017-06-17 15:31:55 · 973 阅读 · 0 评论 -
[bzoj4878]挑战NP-Hard
题目描述天才大学生quailty热衷于解决NP-Hard问题,你如果AC 了这道题,就可以成为他真正的粉丝。图染色问题:给定 无向图G和一个正整数k。对于图中的每个点,选择一个在[1,k]之间的整数作为其颜色。你需要保证对于每条边, 其两端点的颜色均不相同。简单k路径问题:给定无向图G和一个正整数k。请找到一条经过了恰好k条边的简单路径 。即,你需要找到一个长度为k+1的序列v_1,v_2,…原创 2017-05-20 09:13:59 · 703 阅读 · 0 评论 -
[agc018f]Two Trees
前言好题题目大意两颗树。 给每个节点赋一个权值,使得两颗树的任意子树点权和的绝对值为1。构造我们先来判断无解。 绝对值为1意味着模2等于1。 可以根据这点确定每个点在两棵树中的点权奇偶性。 存在矛盾即无解。 如果不存在矛盾,我们可以开始构造。 首先i在第一棵树的编号就是i,在第二棵树是i+n。 原树的边先不动,我们增加一个节点s向两个根节点连边。 对于一个i,如果其点权为奇数,我们就原创 2017-10-10 19:41:16 · 911 阅读 · 0 评论 -
[agc016c]+/- Rectangle
前言对着样例构造乱搞过了QAQ题意构造一个n*m的矩阵,每个元素在-1e9~1e9间,每一个大小为h*w的子矩阵和是负数,而整个矩阵的和是正数。构造如果n是h的倍数且m是w的倍数,那么整个矩阵恰好分成若干个h*w的子矩阵,既然每个都是负数,和怎么可能是正数? 然后我们可以设一个d(d是常数比4000小就行然后尽量大比如2000),对于一个(ih,jw),我们填上-(hw-1)d-1,其余位置填上d原创 2017-10-05 17:00:10 · 656 阅读 · 0 评论 -
[agc004c]AND Grid
前言构造题,我又不是很会…… 太蠢了。题目大意给你一个网格图,有一些格子涂了紫色。 请你构造出两个网格图,其中一个都涂了红色,且四联通,另一个都涂了蓝色,且四联通。 要求紫色的位置必须红和蓝,其余都不能同时涂红和蓝。 保证边界没有紫色。做法不看边界奇数都涂红,偶数都涂蓝。 然后对于红图第一列涂红,蓝图最后一列涂蓝。 一定满足条件。#include<cstdio>#include<alg原创 2017-10-30 14:49:22 · 677 阅读 · 0 评论 -
小Y增员操直播群
题目大意有nnn个人,初始一个人一个联通块,编号都是000。 每次两个联通块合并,假设较小联通块大小是xxx,较大联通块编号为yyy的会与较小联通块大小是y mod xy mod xy\ mod\ x的连边,然后编号变成y+xy+xy+x,接下来合并两个联通块。 最终所有人都在一个联通块内。 现在给你最终联通块中所有连边情况,已知一天里联通块合并可...原创 2018-05-30 08:26:25 · 987 阅读 · 0 评论 -
[CF804E]The same permutation
题目大意一个长度为nnn的排列,现在你要构造一个长度为n(n−1)2n(n−1)2\frac{n(n-1)}{2}的操作序列,每个操作形如(x,y)(x,y)(x,y)满足x<yx<yx\lt y,其效果是交换第xxx和第yyy个位置。每种本质不同的操作只能用一次。 这个操作序列需要满足,从头开始执行,最终序列变回原样。 要求判断无解。做法先考虑如何判断无解。 当...原创 2018-06-03 15:13:01 · 614 阅读 · 0 评论 -
[Neerc2013]Dictionary
题目大意给你n个长度不超过10的小写字母字符串。 请你构造一颗节点数最少的字典树。 使得对于任意一个人给定字符串,字典树中都存在一条祖先后代链对应的字符串与其相等。做法首先显然,如果字符串a包含字符串b,可以直接剔除字符串b。 我们考虑最优解,一定是按照某个顺序添加字符串进入字典树中。 假设现在有字符串c,可以找到其一个最长前缀,使得该前缀可以被字典树表示,然后把剩余后缀加...原创 2018-03-26 11:39:45 · 497 阅读 · 0 评论 -
[bzoj4986]MiniumCut
题目大意一副无向图,给定任意两点间最小割,请构造出这样的图,或判断无解。构造显然构造出最小割树即可。 容易发现最小割树一定是一颗最大生成树。 不同的最大生成树之间任意两点间最小割不变。 因此做一颗最大生成树,看它是否满足条件即可。#include<cstdio> #include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using nam原创 2017-12-12 21:05:41 · 524 阅读 · 0 评论 -
[arc063e]Integers on a Tree
题目大意一颗点权树,相邻节点点权差绝对值为1。 现在一些点点权已确定,构造一种方案。做法自下而上推出每个节点点权区间范围。 为空则无解,同时如果儿子间对该点奇偶性要求不同也无解。 然后接下来只需自上而下构造,只要和父亲相差1,且点权在区间范围内一定可以合法。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i原创 2017-11-16 21:03:31 · 671 阅读 · 0 评论 -
[agc006e]Rotate 3x3
前言结论题。题目大意不想讲。做法不想说。 推荐在网上搜索其他题解或看官方题解。#include<cstdio>#include<algorithm>#include<cmath>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;const int maxn=100000+10;int tree[maxn],a[maxn][3]原创 2017-11-01 14:53:47 · 931 阅读 · 3 评论 -
[agc005c]Tree Restoring
前言简单题,数据范围可能是吓人的。题目大意给你每个点到最远点的距离,求是否存在这样的一颗树。简单一个性质是每个点的最远点一定是直径的端点。 然后我们找出直径长度,要求能构造出这条直径(每种距离都有2个点,当然直径中心只需要1个)。 然后其余点都可以直接接在直径上,因此到最远点的距离不能少于直径长度的一半。 满足就能构造。#include<cstdio>#include<algorithm>原创 2017-10-31 10:31:44 · 645 阅读 · 0 评论 -
[agc004f]Namori
前言这题好牛逼啊。题目大意给你一颗全白的树或环套树。 你每次可以选择一条连接两个同色点的边,将两个端点反色。 问变成全黑的最小步数,要求判断无解。树的做法树是一个二分图,看起来很棒的样子。 我们不妨设深度为奇数(根的深度为1)的点是一个空位,而深度为偶数的点有一个硬币。 我们发现,一次操作相当于将一个硬币移到相邻的空位。 最终要求原本是空位的点都被硬币填满。 那么只有硬币数等于空位数才有原创 2017-10-30 15:26:34 · 1695 阅读 · 2 评论 -
[bzoj4874]筐子放球
题目描述小N最近在研究NP完全问题,小O看小N研究得热火朝天,便给他出了一道这样的题目: 有 n 个球,用整数 1 到 n 编号。还有 m 个筐子,用整数1到m编号。 每个球只能放进特定的两个筐子之一,第 i 个球可以放进的筐子记为 Ai 和 Bi 。 每个球都必须放进一个筐子中。 如果一个筐子内有奇数个球,那么我们称这样的筐子为半空的。 求半空的筐子最少有多少个。 小N看到题目后瞬间没原创 2017-05-20 08:50:27 · 656 阅读 · 0 评论 -
[51nod 1851]俄罗斯方块
题目描述给一个黑白图,每次能将某些区域的格子黑白反转,至于某些区域的意思嘛,就是俄罗斯方块形状的区域咯(可水平翻转、上下翻转、旋转) 求能否将图变成全白结论51nod的题解写得比较好。 这里懒得写了。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;int s原创 2017-05-20 08:36:26 · 575 阅读 · 0 评论 -
[bzoj4147]Euclidean Nim
题目描述Euclid和Pythagoras在玩取石子游戏,一开始有n颗石子。 Euclid为先手,他们按如下规则轮流操作: ·若为Euclid操作,如果n题解太强了 http://blog.csdn.net/PoPoQQQ/article/details/46549901#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a原创 2017-05-24 10:51:59 · 443 阅读 · 0 评论 -
鼎纹
题目描述构造我们可以考虑顺序扫一遍鼎面。 每碰到一个1,一定只与铜模的第一个1匹配,然后尝试匹配,匹配失败就是NO,否则把被匹配位置赋为0。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;const int maxn=1000+10;bool a[maxn]原创 2016-09-08 16:39:25 · 1050 阅读 · 0 评论 -
CF717E
题目大意给定一颗n个节点的树,n<=10^5 每个节点有一个颜色, 黑色或白色。 你需要输出一条从节点1开始行走的,长度不超过10^7的路径,规定每走到一个节点就会改变其颜色(注意初始站在1不会改变1的颜色),每次只能走向相邻的节点,你输出的路径需要使所有结点都变成黑色。构造一波我们用solve(x)表示从x开始走,最后回到x,任务是将以x为根的子树中除了x以外的节点都变成黑色(x的颜色可以任意原创 2016-09-12 21:47:32 · 628 阅读 · 0 评论 -
[51nod 1479]小Y的数论题
题目描述小Y喜欢研究数论,并且喜欢提一些奇怪的问题。 这天他找了三个两两互质的数a, b, c,以及另一个数m, 现在他希望找到三个(0, m)范围内的整数x, y, z,使得 (x^a+y^b) Mod m=(z^c) Mod m 构造我们知道2^x+2^x=2^(x+1) 于是我们这样构造: 若m不为2的幂数,我们令x=2^kb,y=2^ka,z=2^l,那么cl-kab=1,可以原创 2016-08-17 16:45:27 · 738 阅读 · 0 评论 -
[51nod 1449]砝码称重
题目大意你用无数个砝码,每个砝码的重量都是w的幂数,而且每个砝码重量都不同。 问能不能用天平与这些砝码称重量为m的物品。解法能称,就说明存在两个只由01组成的w进制数相减可以得到m。 我们从低位往高位做。 如果是0或1,明显这一位可以构造出来,不管m除以w继续变成子问题。 如果是w-1,那么被减数这一位是0,减数这一位是1,相减后还要借位,借位就是被减数减1,于是我们让m除以w再加1使得被减原创 2016-08-17 16:40:31 · 1030 阅读 · 0 评论 -
[肝学习资料]构造题
Hack it CF468C定义f(x)表示x的数字和,给定a请输出一组l,r,使[l,r]的f值和为a的倍数 。对于x考虑10^y>x,那么显然f(x+10^y)-f(x)=1 设solve(l,r)表示[l,r]的答案,显然有solve(2,10^18+1)-solve(1,10^18)=1 相当于少了个f(1)多了个f(10^18+1),根据上面的结论差为1。 推广到一搬solve(x+原创 2016-07-03 21:41:18 · 1027 阅读 · 0 评论 -
reimu hakurei
题目名意义博丽灵梦 本弱表示从来自机都选的是博丽灵梦QAQ (当然像红魔乡附加关那种就只能选雾雨魔理沙了题目描述 构造首先很显然 f[i]=∑j|ib[j]∗d(ij)f[i]=\sum_{j|i}b[j]*d(\frac{i}{j}) d是除数个数函数。 先把d处理出来。 一个显然的结论:一定能构造出价值为满的 b都是正整数,改变i的选或不选状态只对后面产生影响。 从前往后做,如原创 2016-06-27 15:55:52 · 1880 阅读 · 0 评论 -
[bzoj4500]矩阵
题目描述有一个n*m的矩阵,初始每个格子的权值都为0,可以对矩阵执行两种操作: 1. 选择一行, 该行每个格子的权值加1或减1。 2. 选择一列, 该列每个格子的权值加1或减1。 现在有K个限制,每个限制为一个三元组(x,y,c),代表格子(x,y)权值等于c。问是否存在一个操作序列,使得操作完后的矩阵满足所有的限制。如果存在输出”Yes”,否则输出”No”。显然我们把每一行或每一列看做一个点原创 2016-05-18 20:39:42 · 1053 阅读 · 0 评论 -
[NOI2016模拟5.14]最长公共子序列
前言关于这个前缀……是因为这个题目的名字很容易让人想到一些别的题目,所以加前缀区分一下。题目描述naive做法设i表示A串不在LCS的位置,j表示B串不在LCS的位置。由于不能让lcs结果为n,所以填入B串第j个位置的字符不能为s[j]。 我们先固定j,然后考虑B串的可能性个数。 考虑j<=i的情况。 第一条红线前的部分就被确定了,只需要考虑第一条红线后有多少种可能即可。 那么就是看i取原创 2016-05-16 19:49:23 · 773 阅读 · 1 评论 -
三色图
题目大意给定一个二分图,请你给每条边一个颜色(0,1,2) 一个点的点权定义为其所有与之相连的边颜色和模3 任意一条边连接的两端点点权必须不同 请构造一种染色方案结论对每一个联通块进行分析。 首先说出我们的构造目标:左边点点权均为0,右边点点权均不为0,这样一定符合要求 具体构造方案是将右边的点分为两两一组,以其中一个为起点,另一个为终点,然后跑一条可行路径,因为是联通的,所以该路径一定存原创 2016-09-22 16:18:15 · 1153 阅读 · 0 评论 -
[51nod1655]染色问题
题目描述一个n(3<=n<=100)个点的完全图,现在给出n,要求将每条边都染上一种颜色k(1<=k<=n),最终使得所有三个点构成的环(C(n,3)个不同的换)上三条边的颜色和在所有颜色中任选三种颜色的组合(C(n,3)种方案)一一对应,由你来给出染色方案。 本题有多组数据构造易得n是偶数时无解 n为奇数时,i与j之间连(i+j-2)%n的颜色。 不会证,但确实显然#include<cstd原创 2016-10-29 18:04:49 · 532 阅读 · 0 评论 -
完美标号
题目描述给定M个二元组(A_i, B_i),求X_1, …, X_N满足:对于任意(A_i, B_i),有|X_{A_i} - X_{B_i}| = 1成立。黑白染色如果不能黑白染色,显然不可能有解。 而能够黑白染色, 发现颜色就是合法解。 因此考虑黑白染色即可。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b原创 2016-10-29 18:47:39 · 418 阅读 · 0 评论 -
围墙
题目描述蛐蛐国准备在和它的一个邻国——蝈蝈国之间修一堵围墙。 围墙可以看成是一个长度为n的括号序列,与此同时还有一个长度为n的排列P,一个围墙被称为稳的,当且仅当: 1、这个括号序列是合法的。 2、构造一张n个点的图,当且仅当第i个位置是左括号时,点i向右Pi连边,最后形成的图必须满足每个点度数均为一。保证对于任意i有Pi 一个括号序列合法的定义如下: 1、空序列是合法的。 2、如果“原创 2017-03-25 16:40:06 · 583 阅读 · 0 评论 -
[bzoj2530]Party
题目大意一个n个节点的图,保证存在大小至少为23n\frac{2}{3}n的团。 请输出任意一个大小为13n\frac{1}{3}n的团。构造将任意无边相连的两个点删去。 只有1/3n个点不在那个2/3n大小的团上,那么我们会把这些点连同一些在团上的1/3n个点删去。 还剩下1/3n个点在团上,即可输出。#include<cstdio>#include<algorithm>#define原创 2017-04-07 17:19:20 · 589 阅读 · 0 评论 -
[luoguP3599]Koishi Loves Construction
题目描述Koishi决定走出幻想乡成为数学大师!Flandre听说她数学学的很好,就给Koishi出了这样一道构造题:Task1:试判断能否构造并构造一个长度为n的的排列,满足其n个前缀和在模n的意义下互不相同Taks2:试判断能否构造并构造一个长度为n的的排列,满足其n个前缀积在模n的意义下互不相同按照套路,Koishi假装自己根本不会捉,就来找你帮忙辣。问题一容易知道n为大于1的奇数无解。 因原创 2017-02-15 15:04:59 · 776 阅读 · 0 评论 -
[51nod 1143]Square Country 3
题目描述http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1143构造法不是很会证为什么很快出解…… 随机a[1~n]和b[1~m],使得a与b内均未有重复元素,且和为完全平方数,且每一项均为完全平方数。在400^2内随机即可。 然后c[i,j]=a[i]*b[j],检验重复即可。 详见代码。#include<cstdi原创 2017-01-12 20:35:50 · 466 阅读 · 0 评论 -
[51nod 1139]奇妙等式的解
题目描述五个不同自然数a < b < c < d < e 满足a^2 + b^2 + c^2 + d^2 + e^2 = abcde。给出1个数N,求e <= N的全部的解。构造考虑构造算法。 假如a,b,c,d,e是合法解。 bcde-a,b,c,d,e也是合法解 同理有a,acde-b,c,d,e也是…… 注意这里的合法解不考虑a<b<c<d<ea<b<c<d<e 可以证明所有解是联通原创 2016-12-21 22:34:06 · 826 阅读 · 0 评论 -
[bzoj3100]排列
题目大意给定长度为N的序列,权值范围在[1,n]。 求一个长度最大的区间使该区间是一个包含1的排列。 n<=1e6,空间限制16M做法一个区间合法的条件? 1、包含1 2、所有元素互不相同 3、若长度为k,区间和为k*(k+1)/2 这样的区间的性质? 最大值等于区间长度。 这样的区间最大值可以在1左边或右边,做两次即可,下面假设最大值在1右边。 枚举每一个1,然后枚举右端点的位置原创 2016-11-29 16:34:06 · 834 阅读 · 2 评论