随笔分类 - 1-source-省选
摘要:"luogu" 这里不妨考虑每个点的贡献,即求出每个点在多少个联通块中为第$k$大的(这里权值相同的可以按任意顺序排大小),然后答案为所有点权值$ $上面求的东西之和 把比这个点大的点看成$1$,小于等于他的看成$0$,那么就是要求出包含枚举的那个点并且权值和为$k 1$的联通块个数,可以树型$dp
阅读全文
摘要:"luogu" 我记得我第一次做这道题的时候屁都不会qwq 先考虑第一问,暴力是依次枚举每个人,然后从高到低枚举志愿,枚举导师,能选就选.但是可以发现前面的人选的导师可能会导致后面的人本来可以选到这个志愿,但是不能选.这个问题是不是有点眼熟?你可以理解成二分图匹配问题,就是对于每个人,枚举志愿,然后
阅读全文
摘要:"luogu" 题目中的那个大数一定是若干个1+若干个2+若干个3...+若干个9组成的,显然可以转化成9个$\underbrace {111...1}_{a_i个1}(0\le a_1\le a_2\le a_3...\le a_9,a_9=n)$之和 然后模数只有500,所以可以考虑处理出所有$
阅读全文
摘要:"luogu" "loj" 题意看了我半天(逃 (应该是我语文太差了) 题意是要确定每一行和每一列的看单词的顺序,使得同时正着出现和反着出现在里面的单词数量最少,每行和每列的性质是这一行所有单词反过来的单词要么字典序大于等于原来的,要么小于等于原来的 首先回文单词一定会出现,可以直接加入答案,以后就
阅读全文
摘要:"传送门" ~~不会结论做个鬼系列~~ 题意其实是在头尾(最多)两个栈以及中间一些双端队列依次取数,然后每个人都要最大化自己的价值 有一个结论,如果一段序列中,出现了三个相邻位置$A,B,C$,满足$A\le B\ge C$,那么可以把这三个数替换成$A B+C$.原因是假设先手某一次要取$A$(要
阅读全文
摘要:"传送门" 题目操作有点奇怪,不过可以发现这就是把树先变成$k+1$个连通块,然后每个连通块选一条路径(本题中一个点也是一条路径),然后依次接起来.所以实际上要求的是选出$k+1$条点不相交的路径的最大权值和.可以先考虑暴力,设$f_{i,j,0/1/2}$表示第$i$个点的子树中,选了$j$条路径
阅读全文
摘要:"传送门" ~~打麻将+1(雾~~ 有顺子这种东西...注意到以某个位置为开头的顺子数量最多为2,那么有个想法就是枚举以每个位置为开头的顺子个数,然后每个位置的刻子的取法个数为$\lceil\frac{\text{剩下的牌数}}{3}\rceil$,乘起来,然后每种情况的和就是答案 所以设$f_{i
阅读全文
摘要:"传送门" 每个人都可以看成一条直线$y=ax+b$,所以我们要求的是每条线在整点处,上方线的数量的最小值(注意多条直线如果交于同一整点互不影响) 如果$m=1$,其实只要求出半平面交,然后在半平面交上的线的答案就是$1$.然后是$m=2$,先把排名$=1$的线拿走,那么剩下的线如果排名可以为$2$
阅读全文
摘要:"传送门" 你个好好的省选怎么可以出CF原题啊,你们这个题害人不浅啊,这样子出题像极了cxk,说到cxk,我又想起了他是NBA形象大使,跟我是西游文化大使一样一样的,今年下半年... 别说了,~~jinsaisannian~~ 因为线段树树高是$logn$层的,所以第一问可以直接暴力做,后面记这个权
阅读全文
摘要:"传送门" 考虑子串以及出现个数,可以发现SAM可以快速知道每种子串的出现次数,即所在状态的$endpos$集合大小,然后一个状态对应的子串长度是一段连续区间,所以可以对每个状态差分一下,就能统计答案了 cpp include include include include include incl
阅读全文
摘要:"传送门" 要求经过路径汉堡的点和可乐的点个数之差绝对值$\le k$,所以可以考虑dp,$f_{i,j}$表示到点$i$,汉堡的点个数减可乐的点的个数为$j$的最短距离,注意一下负下标处理,然后跑个dij就完事了 cpp include include include include includ
阅读全文
摘要:bgm "传送门" ~~你写题像CXK~~ 因为要求没有那样的一堆人在~~闻鸡起舞~~,所以可以考虑容斥,枚举一定有$i$堆人在~~闻鸡起舞~~,然后其他位置随便放,容斥系数为$( 1)^i$.然后注意到因为一堆人一定是依次唱,跳,rap,篮球的,这些人出现的位置没有交,如果设$f_i$为随便放$i
阅读全文
摘要:"传送门" 首先,排名系统,一看就知道是~~原题~~,可以上平衡树来维护 然后考虑一种比较朴素的想法,因为我们要知道排名在一个人前面的人数,也就是AC数比他多的人数+AC数一样并且罚时少的人数,所以考虑维护那两个东西.AC数更多的人数显然可以直接上树状数组.后者的话可以对每一种AC数开值域线段树,存
阅读全文
摘要:"传送门" ~~所以这题和字符串有什么关系~~ 首先可以写出dp,$f_{i,j}$表示前$i$位,最后一个字符是$j$的方案,转移枚举下一位,只要不在大串中前后相邻即可.然后矩乘优化即可 cpp // luogu judger enable o2 include include include i
阅读全文
摘要:"传送门" 显然的想法是对每个点求出能通过某种语言到的点个数,然后加起来$/2$就是答案.每次加入一条路径,就可以更新路径上所有点到达其他点的状态.那个我们用线段树维护,每次对路径上所有点的线段树上该路径对应的dfn区间覆盖(用树剖处理),最后统计每个线段树上有值的位置个数 注意每次是对一条路径上的
阅读全文
摘要:"传送门" 有匹配次数限制,求最小代价,这显然是个费用流的模型.每个点暴力和前面的点连匹配边,边数是$n^2$的. 然后发现可以转化成一个set,每次加入一个点,然后入点对set里面的出点连边.这个set可以用主席树实现,然后就主席树优化连边,点数边数都是$nlogn$的,~~然后就能过了~~ 注意
阅读全文
摘要:"传送门" 可以枚举一个$a_i$,然后就是求$\sum_{x=0}^{\lfloor\frac{t 1 a_i}{p}\rfloor}[px+a_i \in B(\mod q)]$ 可以发现所有$px+a_i\mod q$的值是成环的,就可以求出这个环所有前缀中$\in B$的元素个数,然后那个式
阅读全文
摘要:"传送门" 显然要写一个排序,那只要考虑cmp函数怎么写就行了.第$i$个字符串和第 $j$个,首先前$min(i,j) 1$个字符是相同的,然后就是要比较后缀$min(i,j)$和$min(i,j)+1$,先求lcp(要对$max(i,j) min(i,j)$取$min$),如果两个后缀往后跳lc
阅读全文
摘要:"传送门" 不如先考虑暴力,能删的序列首先有$1,2,3...n$,还有就是升序排序后从后往前放数,第$i$位要么放$i$,要么放$i+1$位置的数,例如$1,2,4,4,5,6,9,9,9$ 如果一个数$i$出现了若干次,假如是$num_i$次,我们发现是可以在$i,i 1,i 2...i num
阅读全文
摘要:"传送门" 先考虑$n=1$的情况~~不是输入数据都告诉你了吗~~ 然后考虑$n=2$,可是光线是在弹来弹去的~~废话~~,然后射出去的光线是个等比数列求和的形式,也就是$x_1\sum_{i=1}^{\infty} d^i=x_1\frac{1}{1 d}$,然后弹回去的光线第一个光线就是$b_i
阅读全文