
构造
文章平均质量分 57
小衣同学
No Saturday , no Sunday , no holiday .
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
AtCoder Regular Contest 156 C. Tree and LCS(思维题 构造 数学归纳法)
求该路径上的点(x1,...,xk)和对应排列上的点(Px1,...,Pxk)的最长公共子序列都得到一个值,线性序列的话,1 2 3 4 5和5 4 3 2 1就可以了,也就是取逆序序列,此时最长公共子序列值为1。只有同时包含(u,v)的路径里能同时有u值和v值,并且这俩是满足线性序列两端的条件的。树上的话,考虑两个叶子u和v,令ans[u]=v,ans[v]=u,并且,去除掉两端的1和5之后,剩下的子段仍然满足要求。每次剥掉两个叶子,把产生的新叶子再塞进队列里,其实就是想想,线性序列怎么拓展成树上序列。原创 2024-09-23 00:20:30 · 332 阅读 · 0 评论 -
2024年广东省大学生程序设计竞赛暨广东省邀请赛-个人线上赛 D. 马(构造)
中国象棋规则,n*m的地图放k个马,使得任意两个马互相不能攻击。原题的spj好像有点问题,自己搬了一下造了个交洛谷过了。三个三角形数之和一定能表示所有数(打表发现的)输出一个矩形抠掉三个等腰直角三角形即可。原创 2024-06-03 13:34:21 · 405 阅读 · 0 评论 -
Codeforces Round 941 (Div. 1) E. Connected Cubes(构造)
(9)新增L型条,使每种颜色(7)(8)两部分连通,至此所有颜色已完全连通。(5)对于奇数行,z轴正向多出来的这k层,每一层填充k种颜色中的一种,(6)对于偶数行,x轴正向多出来的这k层,每一层填充k种颜色中的一种,这样可以使得原来偶数行的原图里的颜色,和本次新增的奇数行的部分连通,这样可以使得原来奇数行的原图里的颜色,和本次新增的偶数行的部分连通,(7)沿z轴正向,k种颜色每种颜色分配一个平行y轴的长条,(8)沿x轴正向,k种颜色每种颜色分配一个平行y轴的长条,(4)奇数行,x轴正向伸长为n+k。原创 2024-04-28 05:05:17 · 601 阅读 · 0 评论 -
AtCoder Grand Contest 066 B. Decreasing Digit Sums(构造 打表找规律)
然后考虑变小怎么做,逆向考虑10000,如果*2=10000变小,前一项就是5000,这样不断除以2,2500,1250,...逆向这个过程,考虑构造5的j次方,每个*2的时候,都会变小几次,然后变大一次,整体趋势变小,偶有变大。给定一个n(n原创 2024-04-01 23:59:24 · 300 阅读 · 0 评论 -
AtCoder Grand Contest 066 A. Adjacent Difference(构造 思维题)
n*n(n<=500)的矩阵,第i行第j列的数a[i][j](-1e3<=a[i][j]<=1e3)相邻:a[i][j]和a[i][j+1]认为相邻,a[i][j]和a[i+1][j]认为相邻。不难发现,由于每个数向左向右构成了一个长为d的区间,所以两次操作的代价和是d*n*n。第一次,将黑色的数改成最近的d的奇数倍,将白色的数改成最近的d的偶数倍。第二次,将黑色的数改成最近的d的偶数倍,将白色的数改成最近的d的奇数倍。所以较小代价的那次就是不超过n*n*d/2的,输出即可。jiangly B站讲解。原创 2024-04-01 23:51:22 · 412 阅读 · 0 评论 -
Codeforces Round 761 (Div. 2) D2. Too Many Impostors (hard version)(交互+构造 最小次数)
令a[1]=huai,a[2]=huai+1,a[3]=huai+2,a[4]=hao,a[5]=hao+1,a[6]=hao+2,而a[2]和a[3]两坏情况是翻转不过来的,说明a[2]和a[3]只能是一好一坏,那么a[1]一定是坏。b[1]询问2、3、5,b[2]询问2、3、6,b[3]询问3,5,6,b[4]询问2、5、6。注意到a[1]-a[3]的询问结果是0,说明a[2]和a[3]要么一好一坏,要么两坏,同理,a[5]和a[6]要么一好一坏,要么两好,即a[5]和a[6]至少有一个好。原创 2024-01-08 00:19:50 · 859 阅读 · 0 评论 -
Codeforces Round 908 (Div. 1) D. Colorful Constructive(构造 贪心)
每次给定一个数n(n原创 2023-11-13 04:05:07 · 298 阅读 · 0 评论 -
Codeforces Round 788 (Div. 2) E. Hemose on the Tree(树上构造)
那么,考虑答案能不能是n,考虑将根填成n,剩下的值域[1,n-1]和[n+1,2n-1]是对称的两半。要求路径上的权值异或和(路径上的每条边的边权和每个点的点权都要参与异或)的最大值最小,但是至少有一个点会有n这一位,意味着会从偶数次变成奇数次,所以显然不成立。如果答案小于n,意味着任意一端为根的路径,n这一位都出现了偶数次,对于n个点和n-1条边,每个点需要赋权,每条边需要赋权,首先,答案不会小于n,因为n是2的幂次,占了一个二进制位。也就是异或值为n时,边用n+c,点用c。以下n-1条边,读入树边。原创 2023-11-13 03:36:32 · 214 阅读 · 0 评论 -
Avito Cool Challenge 2018 F. Tricky Interactor(交互 构造)
①如果b[i]一开始是1,那么翻之前为pre+suf,翻了[1,i]之后,总的1的个数为i-(pre+1)+suf-1。②如果b[i]一开始是0,那么翻之前为pre+suf,翻了[1,i]之后,总的1的个数为i-pre+suf。对于n>=2的情况,先问32次询问[2,n],这样[L,n]对应[2,n],[1,R]对应[1,n]计[1,i-1]的1的个数为pre,当前无法确定第i位是什么,但是已知[i,n]的个数为suf。那么,如果询问[1,i]的时候,[i+1,n]中01的个数相同,就无法区别是否翻转,原创 2023-11-12 17:20:03 · 693 阅读 · 0 评论 -
AtCoder Regular Contest 163 C. Harmonic Mean(构造 补写法)
①n冲突的时候,n-1一定不会冲突,因为前面的序列是i*(i+1)的格式,不存在两个相邻的数。1. 当n没有在前面的序列里出现过时,可以用(2,6,12,...,n)来构造一组解。2. 当出现过时,例如当n=6时,序列为(2,6,12,20,30,6)不能满足条件。②n个数倒数求和=1,每个数乘以2后倒数求和=1/2,再加上1/2即为1,也是基于这个等式,用最大的数一拆二扩展,直至满足n个数,此时,我们先构造(2,6,12,20,5),五个数,即得到(2,4,12,24,40,10),满足题意。原创 2023-07-03 04:20:23 · 396 阅读 · 0 评论 -
Nebius Welcome Round (Div. 1 + Div. 2) F. Approximate Diameter(构造/图论性质+二分+最短路)
Nebius Welcome Round (Div. 1 + Div. 2) F. Approximate Diameter(构造/图论性质+二分+最短路)原创 2023-03-13 04:07:08 · 335 阅读 · 0 评论 -
2020牛客暑期多校训练营(第十场)I.Tournament(构造/贪心)
2020牛客暑期多校训练营(第十场)I.Tournament(构造/贪心/调整法)t(1原创 2022-11-26 11:30:55 · 510 阅读 · 0 评论 -
Codeforces Round #833 (Div. 2) D. ConstructOR(构造 逆元/exgcd)
Codeforces Round #833 (Div. 2) D. ConstructOR(构造 逆元/exgcd)原创 2022-11-13 19:07:09 · 743 阅读 · 0 评论 -
AtCoder Regular Contest 149 C.Avoid Prime Sum(构造题,补写法)
AtCoder Regular Contest 149 C.Avoid Prime Sum(构造题,补写法)原创 2022-10-03 02:00:41 · 523 阅读 · 0 评论 -
Codeforces Round #770 (Div. 2) F. Fibonacci Additions(构造+差分)
题目长为n(n<=3e5)的序列a、b,模数mod(1<=mod<=1e9+7)两个序列有初值,0<=ai,bi<modq(q<=3e5)次操作,每次给一个a或b的区间加上一个斐波那契数列,此处,fib[1]=fib[2]=1%mod,fib[i]=(fib[i-1]+fib[i-2])%modA l r,对a[l]加fib[1]%mod,...,对a[r]加fib[r-l+1]%modB l r,对b[l]加fib[1]%mod,...,对b[r原创 2022-02-13 23:15:35 · 509 阅读 · 0 评论 -
Codeforces Round #715 (Div. 1) A.Binary Literature(构造 鸽巢原理)
题目t(t<=1e4)组样例,每次给出n<=1e5,然后给出三个长度为2*n的01串你需要构造出一个长度不超过3*n的串,使得该串的子序列中至少包含三个串中的两个串显然一定有解,多解输出任一解,保证sumn<=1e5思路来源夏老师题解赛后感觉很sb,菜的div1要爆零了...鸽巢原理,三个串中,必有两个串同时包含n个0或两个串同时包含n个1假设第一个串过半的是0,第二个串过半的是1,则第三个显然放入其中一堆即相当于在字符集只有01的情况下线性求出了l原创 2021-04-21 13:17:44 · 322 阅读 · 0 评论 -
Codeforces Round #606 (Div. 2) F.Beautiful Rectangle(构造)
题目给定n(n<=4e5)个数,第i个数ai(1<=ai<=1e9),你可以用其中的若干个数,构成一个美丽矩阵,美丽矩阵即同一行内不存在相同的数,同一列内不存在相同的数的矩阵要求最大化美丽矩阵的面积,并输出面积、长、宽和构造的矩阵思路来源自己乱搞的题解注意到一个事实是,如果想在一个矩阵里放x个相同的值,按对角线放最优,即长宽>=x都得成立,于是,不妨设行<=列,并且二分最大的行row,答案只可能是<=row的行注意到行答案不一定是r原创 2021-04-15 20:17:17 · 223 阅读 · 0 评论 -
Codeforces Round #714 (Div. 2) (B构造 D. Min Cost String构造/欧拉回路 E.Colorings and Dominoes组合数学/dp)
#include<bits/stdc++.h>using namespace std;typedef pair<int,int> P;const int N=52,M=N*N+5;vector<P>e[N];bool vis[M];int now[N],ans[M],cnt,to[M];int n,k,c,x,y;char res[M];void dfs(int u){ while(now[u]<e[u].size()){ ...原创 2021-04-14 14:11:12 · 261 阅读 · 0 评论 -
Wunder Fund Round 2016 (Div. 1 + Div. 2 combined) F. Double Knapsack(构造)
题目思路来源namomoCamp的ppthttps://www.cnblogs.com/cjyyb/p/10575154.html题解可以二分,但由于两个序列单增的性质,所以可以双指针,想实现的优雅一点,于是参考了yyb的博客代码#include <bits/stdc++.h>using namespace std;typedef long long ll;#define pb push_backconst int N=1e6+10;int原创 2021-01-31 22:48:56 · 263 阅读 · 0 评论 -
Codeforces Round #268 (Div. 1) C.Hack it!(构造)
题目思路来源namomoCamp的ppt题解代码求[1,1e18-1]的和的时候,考虑每一位每一个值出现的概率都是均等的#include <bits/stdc++.h>using namespace std;typedef long long ll;ll ans,a,l,r,v;ll mul(ll x,ll y,ll mod){ ll ans=0; for(;y;y>>=1,x=(x+x)%mod){ if(y&1)ans原创 2021-01-31 22:15:38 · 234 阅读 · 0 评论 -
2020ICPC·小米 网络选拔赛第一场 G.Tree Projection(构造)
题目给定一个n(n<=2e5),给定一个长为n的排列A和一个长为n的排列B,你需要判断是否上述两个序列可以构造出一棵树,使得A是以A1为根的一个合法的topo序列,B是以B1为根的一个合法的dfs序列思路来源官方题解题解题目是好idea的题,题解思路也很清奇,女少口阿可以发现这样构造,①topo更小的连向了之前已经连好的一坨,每次会从topo更小的先往后扩展,又最后从topo序1号开始扩展,数学归纳知都合法②dfs序,从后往前构造,实际动态维护了一条链,原创 2020-10-30 13:58:19 · 353 阅读 · 0 评论 -
2019 ICPC Asia Xuzhou Regional J. Loli, Yen-Jen, and a graph problem(欧拉回路+构造)
题目输入一个n(n<=1e3),代表n个点的完全无向图,你需要输出n-1行,分别代表长度为1,2,...,n-1的链上经过的点,使得每条链在原图中都是连续的,且任意两条链之间没有交边思路来源题解①n是奇数,欧拉回路,注意弧优化②n是偶数,考虑长为n-2和n-1的两条链如何构造,令a=n-1,b=n,使a和b交替穿插在[1,n-2]个点里,并最后回到b,最终构成a-1-b-2-...-b-(n-2)-a-b的一个长为2*n-3的链,然后拆成n-2和n-1的两条链原创 2020-10-05 23:12:15 · 803 阅读 · 0 评论 -
Good Bye 2019 E. Divide Points(构造)
题目给你n(2<=n<=1e3)个二维坐标(xi,yi)(-1e6<=xi,yi<=1e6),把它们分成两个非空点集A和B,对于n个点产生的种欧式距离,若这两个点来自相同的点集,则用黄色标注,否则用蓝色标注,要求输出点集A的大小及选取方案,使得不存在欧氏距离相同的不同颜色标注的数思路来源官方题解https://pastebin.com/r7LUrMa4题解奇偶讨论,令cnt[0/1][0/1]表示xi%2,yi%2的数量,①若存在(x+y)原创 2020-06-16 00:59:16 · 261 阅读 · 0 评论 -
Codeforces Round #632 (Div. 2) E.Road to 1600(思维题/构造 递归)
题目给你一个数n(n<=500),代表你需要构造一个n*n的矩阵,该矩阵中,每个格子放上[1,n²]中的一个数,且每个数只能出现一次把国际象棋中的车和皇后初始放在数字1所在的格子,对于车(可横竖走)和皇后(可横竖斜走)来说,它们会按照以下的方案走:①如果在车/皇后一步可达的范围内,存在没有走过的格子,就去这些格子中数值最小的那个格子②如果不存在,就传送到数值最小的格子,并产生1 vun的费用然后继续①操作,直至走完所有格子你需要构造一个n*n的矩阵,使得..原创 2020-06-12 22:14:28 · 378 阅读 · 0 评论 -
Codeforces Round #525 (Div. 2) C. Ehab and a 2-operation task(数论构造)
思路来源http://www.cnblogs.com/Dup4/p/10068891.html题解注意%可以起到等同于减的作用。Solution1:先给区间[1,n]加上一个较大的数D,比如500W,这样ai就变为D+ai,由于ai-i<1e5,此时再对[1,i]mod (D+ai-i)时,D+ai就变为i了,而所mod数D+ai-i大于上一个数i-1...原创 2018-12-05 08:54:59 · 662 阅读 · 0 评论 -
hdu6440 Dream(数论构造/费马小定理)
题目来源 2018中国大学生程序设计竞赛网络选拔赛 1003题目重写加法和乘法,使得成立思路来源https://blog.csdn.net/jk_chen_acmer/article/details/82078532题解现在看来是如此的简单QAQ然而出在构造还是想不到啊由费马小定理,,,故(mod p),即加上模p意义即可代码#...原创 2019-02-22 22:27:54 · 238 阅读 · 0 评论 -
hdu5710 Digit-Sum(构造+贪心)
题目S(n)定义为一个数的各数位之和给定a,b(0<a,b<101),求满足a*S(n)==b*S(2n)的最小的n如果无解输出0思路来源https://www.cnblogs.com/wenruo/p/5562100.htmlhttps://blog.csdn.net/DorMOUSENone/article/details/71223368题解如...原创 2019-03-09 22:27:36 · 393 阅读 · 0 评论 -
EOJ Monthly 2018.9 (based on Trial Round #3) D.素数子序列(构造+数论)
题目有一个长度为n的序列a1,a2,…,an,某些位置已经固定 (ai>0),其他位置允许乱填 (ai=0)。现求一种填法,使得填完之后,序列的任意连续子串的和都是质数。换句话说,对于一切1≤l≤r≤n,al+al+1+⋯+ar是质数。n<=1e5,0<=ai<=1e9,有解输出解,无解输出Impossible思路来源https://acm.e...原创 2019-04-13 17:05:03 · 311 阅读 · 0 评论 -
CodeForces - 1030D Vasya and Triangle (思维题-构造+数论)
题目给定n,m,k,求平面上0<=xi<=n,0<=yi<=m的三个整点,使得三点构成的三角形面积恰为n*m/k1<=n,m<=1e9,2<=k<=1e9思路来源https://blog.csdn.net/hxxjxw/article/details/82870178题解由向量积,三角形面积为,x1,x2,y1,y2均...原创 2019-04-14 20:44:40 · 390 阅读 · 0 评论 -
Codeforces Round #569 (Div. 2) (D/构造+E/线段树)
思路来源https://codeforces.com/blog/entry/67891(官方题解)其实有时候死磕官方题解没什么不好的D.Tolik and His Uncle题目有一个n*m(1<=n*m<=1e6)的网格图,初始小人位于(1,1),下一跳可以跳到任意还没跳到的位置,例如跳到(x,y),则差向量为(x-1,y-1),需在每一跳的差向量(dx,...原创 2019-06-24 19:18:12 · 539 阅读 · 2 评论 -
2018牛客国庆集训派对Day1 G.Kimi to Kanojo to Kanojo no Koi(递归+构造)
题目n<=1e3,要求输出一个n*n的矩阵,每行每列都是一个1-n的排列,且关于主对角线对称的元素不同,即A[i][j]≠A[j][i](i≠j)思路来源https://www.cnblogs.com/vocaloid01/p/9514018.html题解n=1为1,n=2无解,考虑n>=3的情形n为奇数的时候,可以通过循环移位,直接求得答案n=4的时候...转载 2019-08-15 10:18:45 · 263 阅读 · 0 评论 -
Educational Codeforces Round 55 (Rated for Div. 2) D.Maximum Diameter Graph(构造)
题意给定一个n,n个节点的最大度,问是否能构成一个无向连通图,并求该图的最大直径(直径定义为直径上任意两点间的距离都是该图上的最短距离),输出所有具体的图的构造边(u,v)中的u,v。题解只要能构成树就能满足上面的条件了,而且多余的边显然多余(有环的话拆环会使直径更大)。对于能构成一棵树的情况,对于度大于等于2的节点,连成一条链,取两个度为1的点...原创 2018-11-29 21:36:38 · 356 阅读 · 0 评论