不知道该分哪的题
L_0_Forever_LF
一个热爱OI的OIer
展开
-
UOJ #141. 【UER #4】量子态的棋盘
先考虑假设知道了棋盘长什么样,怎么计算每个篮子会接到多少个球对于一个格子(i,j)(i,j)(i,j),若我们知道会有xxx个球滚到这个格子,那么一定会有⌊x2⌋+xmod2⌊x2⌋+xmod2\lfloor \dfrac x2 \rfloor +x\mod2 个球走到这个格子指的方向,⌊x2⌋⌊x2⌋\lfloor \dfrac x2 \rfloor个球走到另一个方向 换句话说,只有xmo...原创 2018-06-13 15:18:27 · 416 阅读 · 0 评论 -
BZOJ4017: 小Q的无敌异或
对于第一问求所有区间异或和的和,将二进制位拆位考虑,对于每一位,就是求有多少个区间这一位有奇数个1,这个东西可以dp[i][0/1]表示i为右端点的区间,有偶数/奇数个1的左端点个数 对于第二问求区间和的异或和 先拆位,二进制第k位为1相当于和在Mod 2k+1Mod\ 2^{k+1}下>=2k>=2^k 一种做法是用∑ri=la[i]=sum[r]−sum[l−1]\sum_{i=l}^r原创 2018-01-24 13:32:55 · 771 阅读 · 0 评论 -
BZOJ3726: PA2014Final Wykladzina
先不考虑可以包含坏格 如果求不包含坏格的最大子矩形,有一种办法是枚举矩形的下界,用一个单调队列扫过去,队列里维护左端点和对应的高度,显然随左端点递增,高度递增,预处理u[i][j]代表(i,j)上方第一个坏格的位置,枚举右端点j扫过去时维护队列里的高度,如果当前队尾不合法,那他在j-1的时候合法且面积最大,更新一下答案,更新一下队列那么包含一个坏格的最大子矩形就多维护一个队列就行了,每次从不包含坏原创 2017-12-18 16:17:12 · 356 阅读 · 0 评论 -
BZOJ3840: ZCC Loves COT
正解十分鬼畜…对标记的标记打标记….由于我匮乏的空间想象能力,我果断打了O(n3+nm+nq)O(n^3+nm+nq)的二维情况,然后卡过去了233考虑一维的情况,就是对l~r区间+1,差分后在l,r+1分别打标记,所有操作完扫一次 问题拓展到二维时类似,观察对每一维打的标记, +1,-1显然可以分开维护,+1标记是一列下去的,-1标记是沿斜线下去的,所以我们可以这样 用紫色的标记给+原创 2017-12-25 08:15:01 · 429 阅读 · 0 评论 -
BZOJ4539: [Hnoi2016]树
WA到哭qwq 插入的点本身就在模板树上时不用找子树内第k大qwq我们将每次插入的一棵子树看作一个块,那么在模板树上插入块,最后的大树会有n+m块 插入时如果接上去的父亲不在模板树上,二分找到接在哪一个块p上,再用主席树找p对应模板树的子树内第k大,从而找到接在块p对应模板树里的哪个节点fa上,算粗这个块的根到块p的根的距离作为这两个块之间的边权,顺便维护st表 询问时先在大树上跳块,直到跳到同原创 2017-12-04 21:04:49 · 357 阅读 · 0 评论 -
BZOJ1141: [POI2009]Slw
好神呀…手玩一下发现这个H(s)生成的串有个斐波那契的递推式 emmmmm然后我就啥都不会了….我们定义G(s)为H(s)的逆变换,即H(a)=b,G(b)=a 那么对于s中的每个1,如果后面是0,他会变成1,否则变成0 发现我们要验证s是否是S的子串,这个问题等价于验证G(s)是否是G(S)的子串 我们可以不断对s做逆变换,让他越来越短我们先来证几个结论 1:HnH_n的偶数项最后一位是原创 2017-12-12 20:57:57 · 301 阅读 · 0 评论 -
BZOJ3835: [Poi2014]Supercomputer
不会做看题解qwq,感觉这个结论…不知道怎么想啊qwq 用sum[i]表示层数>=i的点数,那么有ans=maxi=1 to maxdep(i+⌈sum[i+1]k⌉)ans=max_{i=1\ to\ maxdep}( i+\lceil \dfrac{sum[i+1]}{k} \rceil) 这个柿子的意思是:用i次操作搞定前i层,接下来每次操作都能取满k个或把剩余不足k个取完为什么答案就是这原创 2017-12-01 20:28:42 · 465 阅读 · 0 评论 -
51nod 1487
注意到只能建2个塔,暴力枚举是k(n*m)^2的 但可以发现我们枚举了第一个塔后,第二个塔没有必要枚举,可以预处理第二个塔放在每个位置的价值,塞进一个堆里(事实上不需要堆…排个序就行了,还省个log…) 考虑到两个塔覆盖了重复的点只算一次,如果堆顶的塔与当前枚举的塔冲突就把他取出来算一下贡献,把所有冲突的拿出来后计算完贡献再把他们放回去,最多k^2个重复,复杂度 O(nmk2log(nm))O(原创 2017-11-19 17:19:57 · 439 阅读 · 0 评论 -
BZOJ4385: [POI2015]Wilcze doły
删的数肯定越多越好,所以可以删的区间有n个,枚举答案的右端点,维护一个单调队列,记录当前左端点到当前右端点里的可删区间的最大值,O(n)扫过去就行了code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitse原创 2017-10-02 10:24:35 · 269 阅读 · 0 评论 -
4424: Cf19E Fairy
如果原图没有奇环显然每条边都可以砍 下面讨论有奇环的情况 显然每个奇环都要砍到,所以砍的边一定在这些奇环的交中 然后有个结论,在交中砍边 1:砍的边一定不能在偶环上 2:只要不在偶环上,就是一个合法的方案证明: 不妨设我们砍的是树边 砍掉之后,设分开的两部分为A,B,如果不考虑这些奇环的非树边,A,B分别是二分图(树是二分图 考虑这些非树边,如果这个图不是二分图,就存在奇环,一原创 2018-01-16 21:55:42 · 405 阅读 · 0 评论 -
BZOJ3857: Multiplication table
给了一个K进制的乘法表,给0~K一个映射,给出映射后的乘法表要求复原这个映射0和1是很容易知道对应哪个的 对于2~K-1(%dalao发现)有一个规律…,即x的那一行/列的乘积,首位数字有x种…. 然后就AC了… 小心PE..code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#inc原创 2018-01-09 17:06:02 · 291 阅读 · 0 评论 -
UOJ#273. 【清华集训2016】你的生命已如风中残烛
问题相当于有和为0的m个数aiaia_i,求iii有多少种排列使得任意一个前缀和都>=0 先给序列末尾加上一个-1,变成m+1个和为-1的数,要求前m个前缀和>=0发现对于这m+1个数的每一种圆排,在他能够旋转得到的m+1种排列中,只有以最小前缀和第一次出现的位置的后一位为开头的是合法的,也就是说每一个圆排对应有且仅有一个合法方案,目前有m!m!m!种合法排列然后考虑去掉我们...原创 2018-05-15 20:53:11 · 631 阅读 · 0 评论 -
BZOJ5308: [Zjoi2018]胖
一个点每被更新一次最短路都会对t贡献1 我们考虑所有和宫殿有边相连的瞭望塔,考虑他能更新到的区间,一定是连续的一段 我们可以二分这一段的左右端点,假设左端点在lll,这个瞭望塔在iii,那么就是要求[2l−i,i−1][2l−i,i−1][2l-i,i-1]这一段里面没有其他瞭望塔到lll的距离比i更优,可以用rmq查注意多个点到同一个点iii距离相同时,可能会重复计算,这时到iii边数最...原创 2018-05-07 17:23:51 · 382 阅读 · 0 评论 -
Codeforces 2015 Google Code Jam Round 3 (GCJ 15 Round 3) E. River Flow
题意不知道怎么描述…. 大概就是你可以对一个长度为2k的区间(k一定要是2的幂,题目给了一个k的上界),挑中间一段长为k的或者两端各一段长度和为k,让他们区间-1,然后以2k为循环节对这个序列操作,这算一次操作,问将整个序列变成相同的所需要的最少次数假设n是2的幂,那么我们从n开始,对于当前区间[1,2i][1,2i][1,2^i],看他左右是否相同,如果相同则2i−12i−12^{i-1}...原创 2018-04-25 09:31:05 · 398 阅读 · 0 评论 -
Codeforces 963C. Cutting Rectangle
感谢lxy教会我这题qaqw和h具体是什么不重要,先将他们离散化,然后把c[i]记成c[w][h]的形式如果有某个c[w][h]=0一定不合法,并且c[w][1]:c[w][2]:....c[w][h]c[w][1]:c[w][2]:....c[w][h]c[w][1]:c[w][2]:....c[w][h]这个比例对所有w相同,这样才存在合法方案单独考虑一种方块c[w][h],可...原创 2018-04-18 22:06:55 · 598 阅读 · 0 评论 -
Codeforces 908E. New Year and Entity Enumeration
先不管集合T对于一个good set S,他的性质就是他里面的元素不断AND后仍然在这个集合里,且每个元素的补集都在这个集合里令f(i)表示集合S中含i的所有元素AND起来的值,f(i)是一组二进制位,且可以发现,若存在j∈f(i)(j≠i)j∈f(i)(j≠i)j\in f(i)(j\neq i),则必定有f(j)=f(i)f(j)=f(i)f(j)=f(i) 简单的证明: 反证法 ...原创 2018-03-12 11:40:46 · 616 阅读 · 0 评论 -
BZOJ4401: 块的计数
枚举块的大小x,令siz[p]表示p的子树中节点数,那么这棵树能被分成n/x块大小为x的块当且仅当存在n/x个p满足x|siz[p]x|siz[p]x|siz[p],感受一下可以发现根随意定都是一样的code:#include<set>#include<map>#include<deque>#include<queue>#includ...原创 2018-02-23 15:53:09 · 271 阅读 · 0 评论 -
IOI2017 古书books
乐滋滋在wc上讲的题对于这类最优化问题,有一个套路是考虑答案的下界,然后判看能不能到达这个下界 首先一个显然的下界是 ∑|i−ai|∑|i−ai|\sum |i-ai| ,但注意到这个下界不够紧,比如序列 1 0 3 2,0和3之间的间隔至少要跨越2次 建一个图,每本书代表一个点,连出一条有向边到他要去的位置,这个的意思就是指这个图中边不相交的环之间的跨越可能要额外的花费这样确定的下界...原创 2018-02-11 12:54:20 · 1501 阅读 · 0 评论 -
BZOJ3858: Number Transformation
这个结论不明显啊… 这种题还是打表找规律吧结论:如果当前的数是x,进行到第i次操作,若i>x√i>\sqrt x,则之后的每次操作x只会加一个不变的定值x/ix/i证明: 当i>x√i>\sqrt x时,设x=kix=ki,则i>x√,k<x√i>\sqrt x,k<\sqrt x,要使x变成(i+1)的倍数,有一个解是(i+1)k=x+k>x(i+1)k=x+k>x,我们要求新的值最小,但(i原创 2018-01-09 17:13:45 · 283 阅读 · 0 评论 -
BZOJ4384: [POI2015]Trzy wieże
可以先把只有一种字符的情况算出来 然后考虑没有任意两个字符数目相同的情况 考虑三种字母的前缀和x,y,z,然后差分 则当 X-x=Y-y Y-y=Z-z Z-z=X-x 这三个条件有一个满足时i+1~j的串不能贡献 移项得 (x-y,y-z,z-x)三元组 当三元互不相同时可以产生贡献 对第一维排序,树状数组以第二维为下标,维护前缀后缀的最大值,最大值的第三维,和最大值第三维不同原创 2017-10-01 11:57:33 · 352 阅读 · 0 评论 -
BZOJ4382: [POI2015]Podział naszyjnika
维护最小差的时候没更新….随便画一个环手玩,发现对于每种颜色,两个分隔点一定是在这种颜色某两个点中间,我们用每种颜色对这些点标号,每个点有k个标号,可以发现如果两个分割点标号相同,他们就能作为一组答案,hash就行了(貌似单hash会被卡code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#原创 2017-09-30 09:04:18 · 493 阅读 · 0 评论 -
ARC081 F - Flip and Rectangles
观察一个2*2的小矩形,发现不管对他的行列怎么翻转,黑白色块的奇偶性不变 所以一个黑色块数量为奇数的2*2小矩形不可能被弄成同色 所以如果一个矩形含这样的小矩形,它不可能被弄成同色 反之,由于奇偶性不变,对于一个不含这样小矩形的矩形,它一定能被弄成同色,我们可以构造,过程如下 将这个矩形的第一行和第一列(除去(1,1))弄成黑色 如果(1,1)当前不是黑色,将第一行翻转,再把第2~n列翻过原创 2017-10-08 11:14:40 · 389 阅读 · 0 评论 -
BZOJ4236: JOIOJI
设ai为J在1~i出现的次数,bi为O在1~i出现的次数,ci为I在1~i出现的次数 对于l+1~r,若它满足题目要求,可得: ar-al=br-bl=cr-cl 所以得 ar-br=al-bl ar-cr=al-cl br-cr=bl-cl 等式每边都只与一个位置的值有关 所以我们用一个三元组(ai-bi,ai-ci,bi-ci)代表i位置,用一个map维护,每个位置找之前有没有特原创 2017-03-18 11:31:47 · 548 阅读 · 0 评论 -
BZOJ3751: [NOIP2014]解方程
数这么大不可能真去写高精度… 那么可以考虑模下的解,当模数多的时候可以看成就是方程的解 论良好的模数和常数的重要性…. 对于每个模数pi,带0~pi进方程判是否合法,然后枚举1~m每个模数下都满足就认为他满足code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmat原创 2017-03-18 08:39:19 · 515 阅读 · 0 评论 -
BZOJ2793: [Poi2012]Vouchers
调和级数:∑ni=1ni\sum_{i=1}^n\frac n i是nlognnlogn级别的 所以对于每个x,记录当前拿到了哪里,每组人来直接拿 因为拿到10^6就可以不拿了,所以不会很慢 时间复杂度O(nlogn)code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include原创 2017-02-18 11:14:03 · 730 阅读 · 0 评论 -
BZOJ2791: [Poi2012]Rendezvous
这是很多个环套树,然后理解了题意lca+乱搜什么的…code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cs原创 2017-02-18 10:56:00 · 865 阅读 · 0 评论 -
BZOJ2790: [Poi2012]Distance
可以对每个Ai的所有约数xi求它到Ai的距离,然后被枚举的所有数维护他到Ai的最小值和次小值,然后对每个Ai求Aj的时候就可以枚举它的约数,如果最小值i和j重复就询问次小值code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#i原创 2017-02-18 10:43:35 · 365 阅读 · 0 评论 -
BZOJ1880: [Sdoi2009]Elaxia的路线
康复训练的第一题智障了一个下午x1,y1,x2,y2 4个点每个点都跑一次SPFA,计算出这4个点到所有点的最短距离 然后对x1到y1的所有最短路径建一个拓扑图,先按照第二个人从x2到y2走,沿x1到y1建的拓扑图做DP,如果当前边既在x1到y1的最短路上又在x2到y2的最短路上,就可以转移,因为是路径的交集不分方向,所以再按照第二个人从y2到x2走,沿x1到y1建的拓扑图做DP,如果如果当前边原创 2017-01-12 16:41:53 · 829 阅读 · 0 评论 -
hdu5753 2016 Multi-University Training Contest 3 Permutation Bo 解题报告
题意是给你一个长度为n的序列c,然后h序列的1~n是1-n的一个排列,h[0] = h[n+1] = 0 , 定义 f( h ) = Σ c[i] ( h[i]>h[i-1] && h[i] > h[i+1] ) , 然后求这个 f( h ) 的期望原创 2016-08-29 21:51:01 · 960 阅读 · 0 评论 -
BZOJ4444: [Scoi2015]国旗计划 解题报告
DescriptionA国正在开展一项伟大的计划——国旗计划。这项计划的内容是边防战士手举国旗环绕边境线奔袭一圈。这项计划需要多名边防战士以接力的形式共同完成,为此,国土安全局已经挑选了N名优秀的边防战上作为这项计划的候选人。 A国幅员辽阔,边境线上设有M个边防站,顺时针编号1至M。每名边防战士常驻两个边防站,并且善于在这两个边防站之间长途奔袭,我们称这两个边防站之间的路程是这个边防战士的奔袭区间原创 2016-10-10 20:51:44 · 1069 阅读 · 0 评论 -
BZOJ4238: 电压
题意其实就是砍一条边,使得砍完后图中没有奇环,且不能砍偶环上的边然后,建一棵dfs树,找有多少条边同时在所有奇环上且不在偶环上code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include原创 2017-03-18 17:37:43 · 508 阅读 · 0 评论 -
BZOJ2797: [Poi2012]Squarks
乱搞..首先X是一个递增的序列,所以最小的两个和一定是x1+x2,x1+x3 但是我们还需要x2+x3才能解出这三个数,而x2+x3有n-1种可能的值,不能确定,因为n不大,可以枚举x2+x3是哪个值,然后解出这三个值后可以解出其他的所有值,判一下是否合法即可code:#include<set>#include<map>#include<deque>#include<queue>#incl原创 2017-03-06 15:22:35 · 835 阅读 · 0 评论 -
BZOJ4723: [POI2017]Flappy Bird
每个时间点,鸟一定会向上或下飞一格,能飞到的上下界都变化1,且奇偶性一定改变,因此能飞到的地方是上下界内符合奇偶性的高度 扫描线扫过去,可以O(1)算得从last到x上下界的变化,和当前飞过的区间取个交(注意奇偶性),对于最小次数,高度确定,点击次数就确定,取下界code:#include<set>#include<map>#include<deque>#include<queue>#in原创 2017-09-26 16:31:57 · 319 阅读 · 0 评论 -
BZOJ1110: [POI2007]砝码Odw
这题有个很特别的性质就是“任何两个砝码都有一个特征,他们的中总有一个的重量是另外一个的整数倍,当然他们也可能相等。” 那么,我们将所有砝码从小到大排之后(假设没有重复的),我们将他们转成一个第一位是a[1]进制,第二位是a[2]进制,第三位是a[3]进制….的数,那么每个砝码的数只有一位是1 然后再把容器也转成这样的数,每一位上加起来(不能进位能退位),二分答案判一下code:#include<原创 2017-09-26 07:54:33 · 251 阅读 · 0 评论 -
BZOJ1105: [POI2007]石头花园SKA
所以你们是怎么突然就猜到把所有点都换成x<=y周长就最小的a 膜了题解表示不能理解这个结论 于是我就自己证了一下,不难证 简要说一下证明:如果把所有点都对称到y=x直线的下方,周长不是最小的,就说明,有可能一些点对称到上方可能使周长更小,考虑如果一个点对称过去了上方,那它右下角的点一定要对称过去,不然这个点就没有必要对称过去 那么对称过去的一部分一定是长这样的 阴影那部分就是我们要对称原创 2017-09-25 08:53:42 · 484 阅读 · 0 评论 -
codeforces 138E. Hellish Constraints
给一个字符串s和若干限制,每个限制形如:某字符x出现的次数在l~r之间,问s的子串中恰好满足L~R个限制的有多少个我们先考虑一个限制 右端点扫过去,维护每个左端点是否满足限制 当新加入一个字符时, 如果它不是当前限制的字符,对每个左端点是否满足没有影响 如果它是,那么他会使x出现次数为l-1的变成满足,出现次数为r的变成不满足 维护一下当前字符第i次出现的位置pos[i],假设当前是第j次原创 2017-09-24 20:09:48 · 347 阅读 · 0 评论 -
BZOJ4331: JSOI2012 越狱老虎桥
给出一个无向图,问在其中任意加入一条边后,删去最小的一条边使得图不连通,这条被删去的边权的最大值先缩环,因为环上的边不能砍 剩下的边按边权从小到大排序 从最小的边开始每条边考虑,如果他和之前边的并集在一条链上,那么一定有一种加边方案使得他们都在环上,这时他们都不能砍,所以ans一定不比他小 直到有一条边,和之前的边的并集不在一条链上,加入一条边一定不能使他们都在环上,这条边的边权即答案缩环后,原创 2017-04-14 16:52:16 · 1088 阅读 · 0 评论 -
BZOJ1787: [Ahoi2008]Meet 紧急集合&1832: [AHOI2008]聚会
LCA+讨论原创 2017-04-11 21:20:39 · 766 阅读 · 0 评论 -
BZOJ2801: [Poi2012]Minimalist Security
RE的同学看一下discuss,这个oj…为什么输入数据太大会RE…乱搞…对于每个联通块: 找一个点去遍历,设这个点最后的权值为x,可以由最后的“对于每条边(u,v)都满足p’(u)+p’(v)=w(u,v)。”得到每个点的权值为ax+b,然后因为每个点最后的权值都在[0,c[i]]内,可以得到有关x的上下界,然后判一下是否合法 若所有都合法,统计所有联通块的和,根据xi的系数,可以得到最大最小原创 2017-03-06 21:25:10 · 384 阅读 · 0 评论 -
BZOJ2799: [Poi2012]Salaries
乱搞一个节点如果有值x那么可以确定他的上界是x,否则他的父节点值为y,上界就是y-1 如果一个节点的上界x,且可以确定x-1个点的上界不超过x-1,那么显然这个节点的值就是可以确定的上文是后来的想法,原来做这题的时候好像用了一个大致思想有点像但复杂很多的方法,不建议参考代码 code:#include<set>#include<map>#include<deque>#include<que原创 2017-03-06 20:59:43 · 386 阅读 · 0 评论