
思维,规律
二分抄代码
去了18ec没资格去19ec的反向训练选手
展开
-
codeforces1503A. Balance the Bits
https://codeforces.com/contest/1503/problem/A经典不会做1600的构造这种题要由已知信息推测。已知n是偶数,()括号数量一定要严格等于n/2,si=1的ai=bi,此时是不影响a,b中左右括号的数量差的si=0时,ai!=bi,此时在这一位上会影响括号的数量差,所以我们必须要让si=0的数量为偶数,才能让a,b中左右括号数量都等于n/2可以预见最后的结果就是左边的si=1 ai=bi=( ,右边的si=1, ai=bi=) ,此时我们可以推想出我.原创 2021-04-05 03:30:56 · 413 阅读 · 0 评论 -
C2. Errich-Tac-Toe (Hard Version)
https://codeforces.com/contest/1450/problem/C2这辈子都做不出阴间构造题.jpg这题关键想到用i+j...连续的横竖3个,他们的(i+j)也是连续的所以我们只要(i+j)%3中的0,1,2的某一个全部取反就行了,总有一个的数量是<=sum/3对于XO两个,我们就找出x,y,为了防止反转以后出现新的3连,所以x要保证不等于y我们知道最差情况就是Xsum/3,Xsum0/3+1,Xsum0/3+1或者Xsum/3,Xsum/3,Xsum/原创 2020-12-07 02:33:31 · 474 阅读 · 0 评论 -
AtCoder Grand Contest 006 D - Median Pyramid Hard
https://atcoder.jp/contests/agc006/tasks/agc006_d19hk和20牛客多校已经出现两次连续3个中位数了,知道要>=当前数字=1,<当前数字=0果然是经典模型,然而还是不会做二分答案,然后变成01串,那么离中间最近的两个相邻连续的01就会决定最顶上那个是0是1如果没有则两边的一定是一样的,则b[1]和b[2*n-1]决定#include<bits/stdc++.h>using namespace std;typed原创 2020-11-28 00:22:57 · 244 阅读 · 0 评论 -
codeforces1446 C. Xor Tree
https://codeforces.com/contest/1446/problem/C去年暑假多校补了两道稳定婚姻关系,今天把这题做成图论题自闭了两小时看了牛逼网友十多分钟写完的代码,我真是草了感觉又要回绿重造经典再现了直接考虑吧所有数字按位插入字典树,然后考虑dfs,如果字典树中某一棵子树中有两个点,那么由于这棵子树向上位都是相同的,那么这棵子树内部的点一定是两两匹配最小的接下来我们考虑如何贪心得到最多的点我们考虑如何计算字典树上没有个点的值,如果他左右两棵子树都有点,而且已经计算原创 2020-11-16 02:09:05 · 418 阅读 · 0 评论 -
AtCoder Grand Contest 049 A - Erasing Vertices
https://atcoder.jp/contests/agc049/tasks/agc049_a概率期望构造一生之敌对于每个点的贡献,就是所有能到达他的点都不能在他之前选,他就能贡献1那么每个点能+1的贡献就是(1/所有能到他的点数)其实我现在还不是很能理解这个东西的正确性,hwh总是告诉我期望有很良好自然的性质我总想不明白,我对期望的理解还停留在所有方案的总和除以方案总数,所以只能做威海C那种题,再期望一点的题过得了也想不明白#include<bits/stdc++.h>原创 2020-11-14 23:40:31 · 207 阅读 · 0 评论 -
codeforces1438D Powerful Ksenia
https://codeforces.com/contest/1438/problem/D奇数一定可以构造出来1 2 3 ,3 4 5 ,5 6 7这样,最后就是a[1]=a[2],a[3]=a[4],....a[n-4]=a[n-3],a[n-2]=a[n-1]=a[n],这样的形式,然后再选择1 2 n,3 4 n,那么相等的就会抵消掉,a[1]-a[n]都等于a[n]偶数情况也是除了最后一位像奇数一样构造然后看a[1]....a[n-1]是否也等于a[n], 如果也相等,也就是说原来的原创 2020-11-14 23:32:38 · 198 阅读 · 0 评论 -
codeforces1438C Engineer Artem
https://codeforces.com/contest/1438/problem/C构造题一生之敌一条斜线奇数,一条斜线偶数,相邻的一定就不一样了#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxl=210;int n,m,cnt,tot,cas,ans;int a[maxl][maxl],b[maxl][maxl];inline void prework原创 2020-11-14 23:20:47 · 136 阅读 · 0 评论 -
agc004_c AND Grid
https://atcoder.jp/contests/agc004/tasks/agc004_c经典会做D题做不出C题的构造留下了智商低下不会构造的泪水.jpg有一种特别傻逼的方式,就是先不管边上一圈,然后把第一张图奇数行上色,第二张图偶数行上色,然后第一张图第1列上色,第二张图第m列上色这样每一行都可以通过左边或右边的相连,然后第一张图偶数行上的紫色就是单个的色块也跟下面相连#include<bits/stdc++.h>using namespace std;typ原创 2020-11-12 00:22:22 · 134 阅读 · 0 评论 -
G Tree Projection 2020ICPC·小米 网络选拔赛第一场
https://ac.nowcoder.com/acm/contest/7501/G把b中的数字变成对应a中数字的哪一个位置,dy[a[i]]=i,b[i]=dy[b[i]]然后从前往后枚举b[i],每次b[i]与之前出现最小的b[j]相连因为b[i]是dfs序,且从左到右枚举b[i],那么这棵树从b[1]开始是满足dfs序的又因为每次与之前出现最小的b[j]相连,且b[j]是原b[j]数字出现在a数组中的位置,越小越靠前,那么一定是b[i]=1也就是原b[i]=a[1]的地方为根节点,从上原创 2020-10-28 11:15:14 · 201 阅读 · 0 评论 -
codeforces1392E Omkar and Duck
https://codeforces.com/contest/1392/problem/E每走一步,曼哈顿距离都是在减小的,所以我们对于到达终点相同曼哈顿距离的点(反对角线),相邻两个一个放2^i,一个放0,那么你到了每个点只能向右走或者向下走,其中有一个是0,一个是2^i,就可以判断下一个点走到哪了。#include<bits/stdc++.h>#define pb push_backusing namespace std;typedef long long ll;cons原创 2020-08-17 03:24:39 · 224 阅读 · 0 评论 -
1003 Range k-th Maximum Query 2020 年百度之星·程序设计大赛 - 复赛
http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=892&pid=1003考虑求最大值的构造方法,先把a数组从小到大排序我们思考对于第一段长度为l的,要让更大的答案覆盖更多的区间,就肯定后k个从大到小倒序放,也就是在l-k+1的位置开始放a[n],a[n-1]....a[n-k+1]放到a[l],那么第一个区间的答案就为a[n-k+1],然后这个a[n-k+1]可以一直拓展到右坐标为l+l-k的位置,然后从右坐标原创 2020-08-09 22:07:25 · 292 阅读 · 0 评论 -
G-Grid Coloring 2020牛客暑期多校训练营(第六场)
https://ac.nowcoder.com/acm/contest/5671/G过完这题的时候只过了20个,H过了30个,这是我没想到的。我出了名的不会cf div2 C难度的构造题,然而这道水题竟然最后也没比H多过多少。。。首先我们先横着放横边,下一个放的等于上一个放的+1,然后把他们放完,这样保证了每一横条有不同的,因为相邻两个都不同接着再横着放竖边,下一个放的等于上一个放的+1,由于相邻两个竖边构成一个矩形,所以他们不同就保证了每个矩形颜色都不一样。这样放最后只可能会导致一竖列的颜原创 2020-07-27 17:01:47 · 261 阅读 · 0 评论 -
H-Harder Gcd Problem 2020牛客多校第4场
https://ac.nowcoder.com/acm/contest/5669/H从大到小枚举所有质因子,然后找出n以内的他的倍数的个数如果是偶数个,直接匹配掉,如果是奇数个,我们只把2*p[i]留下来不匹配然后把3-n所有质因子枚举完了以后,我们把2的倍数中剩下的没被匹配的匹配由于每个质因子多出来的数都是2的倍数,把这些剩下的消化掉, 总数肯定是最大的#include<bits/stdc++.h>using namespace std;int vis[2000.原创 2020-07-20 17:01:08 · 807 阅读 · 0 评论 -
codeforces1385E Directing Edges
https://codeforces.com/contest/1385/problem/E我这个经典构造竟然写错了,当年小号上黄的比赛的D题就是这个构造给出一些边,要求指定边的方向让图没有有向环那么直接按编号小的连向编号大的就行了如果给出一些边有些有方向,有些无方向那么直接拓扑排序,入度为0的入队,按队列出的顺序给点编号,还是从小编号连向大编号就行了#include<bits/stdc++.h>using namespace std;typedef long lon原创 2020-07-20 00:30:09 · 208 阅读 · 0 评论 -
E 因数串 EOJ Monthly 2020.7
https://acm.ecnu.edu.cn/contest/292/problem/E/B<E<C<A<D这题就直接递归,res[i]表示当前数中p[i]剩余多少个,dir[i]=0表示目前的枚举res[i]是递减一开始就res[i]=k[i],dir[i]=0,就是直接从a开始,每个都需要递减然后dfs(now),从后往前(也可以从前往后)找第一个可以增加或减少的,那些不能动的就换方向,这个能的计算后就输出,dfs下一个数,然后break,这样构造就能保证每个输原创 2020-07-17 22:00:12 · 249 阅读 · 0 评论 -
codeforces1375G Tree Modification
https://codeforces.com/problemset/problem/1375/G感觉这题是D题难度啊。。。。观察给出的图发现,对于(很多d)-a-b-c,一次操作相当于把这些d和a,b同时连向了c点,那么我们发现a,c是距离为2的点,很多d和b也是距离为2的点,那么其实就是二分图上同一层的点a把它所有连接的点连接给同一层的点c那么最后就是奇数层或者偶数层的某个点是根节点,那么二分图染色看哪个少就行了#include<bits/stdc++.h>using na原创 2020-07-05 17:19:16 · 283 阅读 · 0 评论 -
codeforces1373E Sum of Digits
https://codeforces.com/problemset/problem/1373/E其实这题挺水的,然而看见F好像更可做一些,就去WA F一直到结束了。。。看了jly的代码。。清晰易懂思路简单。。。这题关键的问题在于那种末尾好多个9,然后进位,就一片0,于是并不知道这样如何构造其实就可以直接枚举末尾有多少个9就行了,枚举完以后,我们算出这d个9和末尾上的数字c,在k+1个数字中会产生多少贡献,然后再看剩下还要凑多少值,如果<=8,那么就是这个数+d个9+末尾c就行了,如果&原创 2020-06-26 12:25:23 · 453 阅读 · 0 评论 -
codeforces1349B Orac and Medians
https://codeforces.com/problemset/problem/1349/B把黑红oi大爷都给难住了加了一堆判断,wa了一年。。。先写c就win了。。。193551111311从这组样例可以看出,可以先把5扩展到3左边,然后3再拓展回去。。。于是我们只要在有k的前提下,找到有没有>=k的可以连在一起,就行了。#include<bits/stdc++.h>using namespace std;typedef long l...原创 2020-05-13 01:16:18 · 415 阅读 · 1 评论 -
codeforces1299B Aerodynamic
https://codeforces.com/problemset/problem/1299/B这道水题想了一年。。。。其实看样例都能猜出来,让(0,0)在凸包的边界上移动,最后得到的图形要与原图形相似,就是每条边的长度比例不能边,而且不能多出新的边,也不能与原边不平行。可以想到,让(0,0)在一条边a上移动时,那么距离这条边最远的点就会移动成新的图形的一条边,如果最远的点是一个点而不...原创 2020-02-10 11:17:28 · 565 阅读 · 0 评论 -
codeforces1290B Irreducible Anagrams
https://codeforces.com/contest/1290/problem/B傻逼题想了好久,训练不饱和摸鱼太多变菜了,虽然本来构造题就很菜。首先想到一点,对于可分割的相同字母异序词,是前面一段字母数量和种类相同,后面一段字母数量和种类相同。那么目标就是判断一个串是否可以构造出一个不可分割的相同字母异序词,也就是从开头一直到最后,所有字母的数量种类才能相同,也就是所有前缀,...原创 2020-02-03 18:33:35 · 369 阅读 · 0 评论 -
atcoder NIKKEI Programming Contest 2019-2 C Swaps
https://atcoder.jp/contests/nikkei2019-2-qual/tasks/nikkei2019_2_qual_c比赛的时候D做出来了,然而C不知道怎么做 = =,用线段树去暴力找也WA了。赛后看了几个人的代码,完全看不懂,像是for循环就写完了,应该是思维题,每天想一想,过了3天还是不会做然后看了roundgod在评论区写的题解,看了半天看不懂,过了1天再...原创 2019-11-12 22:26:36 · 246 阅读 · 0 评论 -
codeforces 1217D Coloring Edges
https://codeforces.com/problemset/problem/1217/D如果无环,那么就是1如果有环,答案就是2,对于u<v的边,颜色是1,u>v的颜色是2,这样就不会有同色环了#include<bits/stdc++.h>#define maxl 300010using namespace std;int n,m,ans,c...原创 2019-09-06 00:51:18 · 431 阅读 · 0 评论 -
hdu6741 MUV LUV UNLIMITED
http://acm.hdu.edu.cn/showproblem.php?pid=6741队友过的,说结论,如果某个叶子节点的父亲有多于1个的儿子节点,先手赢如果全都是直接连向1的链,那么有一条是奇数长度的链,先手英为什么我还得想想。。。。#include<bits/stdc++.h>using namespace std;typedef long long l...原创 2019-09-28 19:32:00 · 392 阅读 · 0 评论 -
codeforces1221E Game With String
https://codeforces.com/problemset/problem/1221/E如果轮到b拿的时候有b<=len<a的情况,那么此时b必胜,因为他总是可以拿下次A要拿的那个,当下次A拿不到了,它就拿这个。如果轮到b拿的时候有2*b<=len的情况,它可以做一个出来,那么还是b必胜。所以A先手需要防止有以上两种情况的出现,也就是如果只存在1个2*b<...原创 2019-09-28 21:26:40 · 173 阅读 · 0 评论 -
CodeForces 1141G 构造
当时因为__int128不能用,然后E题爆long long 花了好长时间,其实不用二分。。。直接算出来。其次这场的C题因为无解数据可能导致数组越界,而且爆int,所以被hack了= =还是得多打div3练习思维严密性,快速想到坑点。然后这个G题半个小时硬是冇得想法,二分答案以后不知道怎么办,因为想到一个点把他的边全部染色以后,枚举到其他点的时候有一些边已经被染过色了,于是就不知道怎么...原创 2019-03-21 15:43:36 · 361 阅读 · 0 评论 -
UVA12325
若s1>sqrt(n),直接枚举1,2亦然。当s1,s2v2/s2,及1的性价比更高,对于s1*s2的空间,肯定选1放,所以最后剩下的只有n%(s1*s2),这些空间就用来放2。很有道理然而我并不知道为什么错了。标解的做法是假设1性价比高的情况下,买了t1个1,t2个2,假如t2>s1 => t2*s2>s1*s2 ,而s1*s2肯定是买s2个1比较划算,所以t2一定#include原创 2017-11-15 21:51:45 · 294 阅读 · 0 评论 -
codeforces1214E Petya and Construction Set
http://codeforces.com/problemset/problem/1214/E本来看到是构造题都想直接点外卖吃饭了的,一直觉得这辈子都做不出构造题,没想到脑补了一种做法过了,不知道是不是正解。按照d从大到小排序,然后从前向后安排,先构造出一条尽可能长的链,我们将奇数点记为a[i],偶数点记为b[i]。如果当前cnt这个位置可以放之前已经放的某一个a[id]的b[id],...原创 2019-09-04 21:02:21 · 502 阅读 · 0 评论 -
codeforces 1208C Magic Grid
传送门:http://codeforces.com/problemset/problem/1208/C构造题是构不出来的,这辈子都构不出来的,只能当手速狗做做模拟题混分这样几。还好这场忘记报名发现A交不上去不打了,不然碰见构造题又是掉分。考虑 每个4*4的方阵0 1 2 34 5 6 78 9 10 1112 13 14 15 这样的每行每列异或都是0而对于之后的方...原创 2019-08-27 19:19:29 · 356 阅读 · 0 评论 -
codeforces1202D Print a 1337-string...
构造题是不可能构造得出来的,这辈子都构造不出来的,600个人会构造也没用,只能靠偶像用我的账号过E然后维持一下分数这样几。当场已经想到构造1333733337这种形式,先找到最多的3然后把剩下的补上就行了,但我突然想到剩下的3补到后面,前面的3和后面的3会一起选择,然后变成更多的33,于是就不知道怎么确定后面3的数量了。。。结果是先找出最多的3,然后在最前面的2个3后面插入7....变成1...原创 2019-08-09 09:48:04 · 302 阅读 · 0 评论 -
牛客第7场多校E Counting 4-Cliques
考场上脑补了好多种姿势,都不太对,不过确实当时状态太差了,没睡好脑袋很沉,一直都有划水的想法,根本不想去想题,然而还是要想,就并想不出来。估计艹过去的姿势很多,不过题解的那种我并不太会证明,题解是先选一个满矩阵,点数为n,c(n,4)<=k,n从4到70中选,然后再开5个互不相连的点,去连满矩阵里的点,一个点连r个,就多c(r,3)个,70^4枚举前4个,然后二分一蛤找第5个。本来我是71上...原创 2018-08-10 10:42:57 · 180 阅读 · 0 评论 -
HDU 6313 2018多校第二场hack it
10000 10000 10000 10000 1000010000 01000 00100 00010 0000110000 00100 00001 01000 0001010000 00010 01000 00001 0010010000 00001 00010 00100 01000 01000 0100001000 00100dls:类似的构造遇到过几次了,orz,听了dls...原创 2018-07-26 11:07:46 · 201 阅读 · 0 评论 -
HDU 6304 2018多校第一场1007
考场上全写B题去了,没看这题的规律,不行啊我要多练找规律的题啊。晚上看dls直播,除去第1项的1,从第2项开始,规律:1 3 5 7.....出现一次,2,6,10,14出现2次,4,12,20出现3次,其实这个数列在OEIS上是搜的出的,然而至今我还不太会看OEIS上的东西。。。。那么由上面的规律,我们首先要知道比n小的那个完全出现完的数字是多少,dls说可以从n/2-100到n/2+1...原创 2018-07-24 23:28:49 · 128 阅读 · 0 评论 -
HDU 6114
既然不是状压DP,就是正着DP考虑到n,m的大小问题,最后的填的车的数量一定是min(n,m),那我们不妨使n<=m那么每一行就必须要放一个,设f[i][j]为前i行最后一个放在j列的方案总数,那么前缀和转移就行了看似是水题,然后当时WA了好久。。。。然而看到题解之后发现,卧槽就是C(m,n),因为下一行必须在上一行的右边,那么相当于就是从这m列中选n列放的方案数。诶~还是那个老毛病,智商不...原创 2018-03-11 15:56:17 · 240 阅读 · 0 评论 -
codeforces 917A
考场上写挂了一个小地方,然后WA了。。。还好躺一手hls,复制D的代码改变量名交了,还上了点分,我还是菜啊据说正着贪一遍反着贪一遍有一个行就ans++,然后这样就可以A了,甚至还有直接贪A掉的。还不知道什么操作top[j]表示从i开始到j还有多少个没有被 ) 匹配掉的 (cnt[j]表示从i开始到j还有多少个没有 ) 和 ? 匹配掉的 (top2[j]表示从i开始到j还有多少个不需原创 2018-01-31 20:23:07 · 441 阅读 · 0 评论 -
CodeForces 616E
打表发现一些规律,然后就可以推导一下就出来了,注意一下计算都是整数的整除。n%i 和n%(n/i)是相等的,这个很好理解,而对于%的数从 n/i 到n/(i+1)+1 【逆序】, n%这些数是一个等差数列,而且差值显然是i。于是就只要枚举到sqrt(n)就行了。注意m>n的时候的特判,以及细节处理,下标的特殊处理,每个地方都要%mod,mod下除法用费马小定理。#include#i原创 2017-10-13 17:53:19 · 298 阅读 · 0 评论 -
NEERC2014 Problem I. Improvements
题目链接:http://codeforces.com/gym/100553考场上想不到。。。我们知道(此时是按照xi排好顺序的序号i序列,也就是飞船排列实际情况)这种情况的时候是最好的,线段都是包含关系,不会是交叉关系。想到这道题是求最多不动的飞船的个数,于是只要有断断续续的形成这样的图就行了,其他中间不符合规则的点反正是任意飞,一定能找到一个地方合理安置,不破坏那些不动的点的相对原创 2017-10-08 19:52:21 · 449 阅读 · 0 评论 -
CSUOJ1985: 驱R符
这题一开始以为是卡特兰数,然后就忘记带模板不会写,结果画图找规律发现不是。。然后各种发现每一次加一个点,与之前的连线是 加入第4个点时 1 5 2 2 6 3 4 3 7 4 6 6 4,发现规律 1*1 1*2 2*1 1*3 2*2 3*3 1*4 2*3原创 2017-09-08 10:55:39 · 407 阅读 · 0 评论 -
HDU6215
考场上没有想到正确的姿势,我菜不成声。(然而据说读入优化可暴力艹过?)看了看别人的题解,用双向链表维护删除数字后的序列,每次删掉一个数x,影响的只有nxt[x]和pre[x],于是删掉一个数后,把pre[x]再放到set中下一次判断pre[x]和nxt[x]是否出问题就行了。因为最多只删n个数,每个数只会添加进1个pre[x],所以每个数出现的复杂度为n,因为删除连续段的数后pre[x] 相同原创 2017-09-24 08:04:47 · 432 阅读 · 0 评论 -
51Nod 1385
找规律,发现1-9,就是1到9,到10的时候,0放在哪呢?就发现如果放在最后的话,可以保证以后的20,30,..90都用这个0,这样能把这个0的作用最大化,然后11的时候,同样一个新的1放在0后面,可以满足21,31...91.101,利益最大化,于是我们想到按照123456789012345678901234567890....的顺序放,是最优的贪心策略、#include#include#d原创 2017-08-27 08:29:03 · 289 阅读 · 0 评论 -
2018牛客多校 J Heritage of skywalkert
我先猜了个结论,结尾两个数字lcm就是答案,然后WA了,之后就开始研究这个序列,发现n=100的时候答案在64 和 96大的数字的lcm取到,于是就否定了我之前的猜想,于是我开始研究这个数列,打1e6的表,看有没有顺序,有没有一样的数字,然后我发现没顺序,有一样的数字,接着想到我只要找到一个比较大的质数和最后一个数字撑起来就行了,于是我打表找了一下最大的质数一般在第几大,于是突然发现最大的质数离边...原创 2018-08-06 20:01:21 · 237 阅读 · 0 评论