并不对劲的CTS2019】的更多相关文章

day0 没有C day1 t1:并不想简述题意 10分暴力走人 t2:有\(n\)个在\([1,D]\)内的均匀随机整数,问有多少的概率出现\(m\)对相同的 设\(f(i,j)\)表示考虑前\(i\)个数,有\(j\)个数没有对象 能过\(k,n,m\leq4000\)的48分 其中\(m=0,1\)的点可以手算,共8分 t3:题答题,有两种数据,分别是 把尽量多的形状固定的小长方形塞到一个形状固定的大长方形里 和 把所有形状固定的小长方形塞到一个你安排的面积尽量小的大正方形里 先手玩了前两…
一些感想 现实并非游戏,并不支持反复刷关 猎人和防御工事一起被老山龙摧毁了: 猎人惨死雨中,结云村永无放晴之日: 猎人被狂龙病毒侵蚀,天空山上黑蚀龙泛滥. 好像这才是怪物猎人系列的真实结局呢 day 0 和吕爷立下了有关进省队的flag day 1 t1:给1个大数字串和\(m\)个小数字串,每个小串有权值,大串中有些位置的数字是确定的,有些位置是空的,需要填.定义一种填数方式生成的大串的价值为"是它的子串的小串的权值积(重复算多个)"开"是它的子串的小串的个数(重复算多个)…
想要很对劲的讲解,请点击这里 题目大意 有一棵\(n\)(\(n\leq 50000\))个节点的树,有边权 求一条路径使该路径的边权平均值最接近给出的一个数\(k\) 输出边权平均值下取整的整数部分 题解 有关路径的边权平均值可以二分来做 假设已二分出边权平均值与\(k\)的差不超过\(m\),则应存在一条简单路径,路径上的\(p\)条边满足: \[-m\leq\frac{\sum_{i=1}^{p}{w_i}}{p}-k\leq m\] 两边同乘\(p\),得: \[-m*p\leq\sum…
FFT是一个很多人选择背诵全文的算法. #include<algorithm> #include<cmath> #include<complex> #include<cstdio> #include<cstdlib> #include<cstring> #include<ctime> #include<iomanip> #include<iostream> #include<map> #…
据说这些并不对劲的内容是<信息学奥赛一本通提高篇>的配套练习. 并不会讲Trie树. 1.poj1056-> 模板题. 2.bzoj1212-> 设dp[i]表示T长度为i的前缀能否被理解.这样,对于所有满足T[(x+1)...i]是一个字典中的单词的x,dp[i]|=dp[x]. 所以,就可以将所有字典中的单词倒着建一棵Trie树,计算i时将T长度为i的前缀倒着在Trie树中匹配. 最后从后往前枚举i,第一个dp[i]=1的i就是答案. #include<algorithm…
据说这些并不对劲的内容是<信息学奥赛一本通提高篇>的配套练习. 先感叹一句<信息学奥赛一本通提高篇>上对kmp的解释和matrix67的博客相似度99%(还抄错了),莫非matrix67藏在编者之中? 但这不重要,因为并不对劲的人不会对kmp作出任何解释. 课后练习: 1.bzoj1355-> 可以将题目中给出的字符串看成形如这样的串: 那么,对于其中的某一位: 它到当前前缀的第二个循环节的开始组成的子串和前缀相等: 所以,对于当前位置x,fail[x]就是它到当前前缀的第二…
传送门-> 这题的正确做法是splay维护这摞书. 但是并不对劲的人选择了暴力(皮这一下很开心). #include<algorithm> #include<cmath> #include<cstdio> #include<cstdlib> #include<cstring> #include<iomanip> #include<iostream> #include<map> #include<qu…
传送门-> 离线操作听上去很简单,遗憾的是它强制在线. 每个时刻可以看成可持久化线段树中的一个版本,而每一个版本的线段树维护的是值某一段区间且在这个版本对应的时刻出现的数之和. 会发现同一时刻可能会有很多个数插入,这时可以对每个点记录版本,版本相同就不用更新了. 注意空间问题,并不对劲的空间让并不对劲的人调了一年. #include<algorithm> #include<cmath> #include<cstdio> #include<cstdlib>…
传送门-> 据说本题的正确读法是[shìng运数字]. 听上去本题很适合暴力,于是并不对劲的人就去写了.其实这题就是一个很普(有)通(趣)暴力+神奇的优化. 首先,会发现幸运数字很少,那么就先搜索出所有幸运数字. 找出每个幸运数字后,会发现每一个数在[a,b]出现了多少次是可以直接算出的,就是floor(b/x)-ceil(a/x)+1. 但是直接加想必是不行的,因为两个数的lcm被算重复了.这时直接容斥会不会T或者出一些奇怪的问题?当然会.所以不能直接容斥,要加些优化再容斥. 1.有些幸运数字…
传送门-> 又称普及大会. 这题没什么好说的……后缀自动机裸题……并不对劲的人太菜了,之前照着标程逐行比对才过了这道题,前几天刚刚把这题一遍写对…… 这题的输出和某两点相同后缀的长度有关,那么把串反过来就和相同前缀的长度有关.建出后缀自动机后,发现点u代表了right[u]个dis[fa[u]+1]~dis[u]相似的子串.此时如何统计答案就很显然了. 想着很简单,写着嘛…其实并不长? #include<algorithm> #include<cmath> #include&…
传送门-> 这题没什么好说的……小清新数据结构题……并不对劲的人太菜了,之前照着标程逐行比对才过了这道题,前几天刚刚把这题一遍写对…… 其实这题应该口胡很容易.操作1,2,3,4,5就是普通的splay支持的那些操作.操作6要转一个小弯,对于每个点记lmax,rmax,xmax,分别表示贴左边界的最大连续子段和(可能为空).贴右边界的最大连续子段和(可能为空).最大子段和(不能为空).现在考虑将lson[u]和rson[u]子树对应的序列的lmax,rmax,xmax经过一些神奇的操作合并,得到…
Long long ago, there was an ancient rabbit kingdom in the forest. Every rabbit in this kingdom was not cute but totally pugnacious, so the kingdom was in chaos in season and out of season.  n rabbits were numbered form 1 to n. All rabbits' weight is…
听说很对劲的太刀流不止会splay一种平衡树,并不对劲的片手流为了反驳他,并与之针锋相对,决定学学高端操作. 很对劲的太刀流-> 据说splay常数极大,但是由于只知道splay一种平衡树能对序列进行操作,或者进行分裂合并,还不能不写它. 那么常数略小的treap能否对序列操作或者分裂合并呢?想必是能的. 这就是fhq大神的可分裂与合并的treap(据说国家队人手一个自创算法?那必须的不然ctsc论文答辩怎么过). 它并没有比treap多出什么,反而省了好多事.核心操作只有split和merge…
LCT,是连猫树(link-cat-tree)的缩写.它是树链剖分和splay的结合版本. 由于有很多关于LCT的文章以及这并不是对劲的文章,并不对劲的人并不打算讲得太详细. 推荐:详细的LCT-> 想必大家都知道splay+树剖=LCT splay虽然常数较大,但是它好写好调(大部分操作都可以把左右边界转上去然后直接操作),而且还能维护序列. 树剖是将一棵树切分成很多条链,再将它们首尾相接拼成一个序列.可以用线段树来维护序列,进行区间操作,不过并不能插入和删除. 那么用splay来维护区间是不…
为了反驳很对劲的太刀流,并不对劲的片手流决定与之针锋相对. 很对劲的太刀流-> 2638: 黑白染色 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 177  Solved: 87[Submit][Status][Discuss] Description 你有一个n*m的矩形,一开始所有格子都是白色,然后给出一个目标状态的矩形,有的地方是白色,有的地方是黑色,你每次可以选择一个连通块(四连通块,且不要求颜色一样)进行染色操作(染成白色或者黑色).问…
为了反驳隔壁很对劲的太刀流,并不对劲的片手流决定与之针锋相对,先一步发表cdq分治解三维偏序. 很对劲的太刀流在这里->  参照一.二维偏序的方法,会发现一位偏序就是直接排序,可以看成通过排序使第一维无效.二维偏序是排序+树状数组,就是先通过排序消除了第一维的影响,再通过树状数组进行统计.那么以此类推,三位偏序应该就是树套树状数组…啊不对,是先通过排序消除第一维的影响,再通过[某种方法]消除第二维的影响,再用树状数组统计. 传说中的[某种方法]就是cdq分治,它是一种通过计算前一半对后一半的影响…
有些时候,后缀自动机并不能解决某些问题,或者解决很麻烦.这时就有各种神奇的字符串算法了. manacher算法用来O(|S|)地求出字符串S的最长的回文子串的长度.这是怎么做到的呢? 并不对劲的暴力选手在刚见到求字符串S的最长的回文串的长度这个问题时,第一反应就是枚举每一个位置为回文串的对称轴,再暴力地判断.由于回文串的对称轴可能在缝隙处,对于奇偶还要特判.这时最好每隔一个字符插入一个奇怪的字符.对暴力做一些优化,就是用二分+哈希来判断.不过这也只能o(|S| log2|S|)地做出来.能不能利…
听上去像是破坏植物的暴力行为(并不). 可以快速查询某个字符串在某个字符串集中出现了几次,而且听上去比字符串哈希靠谱. 把整个字符串集建成树,边权是字符,对于字符串结尾的节点进行特殊标记. 这样一方面合并了前缀,节省空间:另一方面查询很方便,直接按边走就行. #include<iostream> #include<iomanip> #include<cstdio> #include<cstring> #include<cstdlib> #incl…
这像是能解决所有问题的样子(并不).AC自动机之所以叫AC自动机是因为它能解决所有AC自动机的题. 其实只能解决的是很多模式串匹配一个母串的问题. 把kmp中的next数组得到下一次跳转的位置看成特殊的边,把字符串看成链,就会得到一个特殊的图. 一个点u的next连向点v对应的字符串是u最长的后缀,把这个图套用到很多个模式串组成的trie上. 对于点u能走到的节点ch[u][i],相当于在u对应的字符串后补了一个字符i.那么点u的next连向的点v对应的字符串后面再补一个字符i就是点ch[u][…
splay和不加任何旋转一定会被卡的二叉搜索树的唯一区别就是每次操作把当前节点旋转到根. 旋转有各种zig.zag的组合方式,感觉很麻烦,并不对劲的人并不想讲. 其实可以找出一些共性将它们合并.设ls(a)=[点a是其父亲的左儿子],son[a][0]=a的左儿子,son[a][1]=a的右儿子,fa[a]=a的父亲.会发现单旋u时,有变动的点只有son[u][ls(u)^1],u,fa[u],fa[fa[u]].再仔细想想,儿子有变动的有fa[fa[u]](son[fa[fa[u]]][ls(…
题意就是给一张无向有边权的图.起点.终点,求起点到终点经过n条边的最短路.n<=10^6,点的编号<=10^3,边数<=10^2. 这个边数让人不由自主地想到了floyd,然后发现floyd每次相当于加入了一个点(注意,这里的“一次”也是O(点数^3)的,但是在这一次floyd的过程中不会更新结果.)也就是说,第一次floyd求出来了两点之间只走一条边的最短路,第二次求出来了两点之间只走两条边的最短路……,第n次求出来了只走n条边的最短路.这时候就会发现,n遍不在过程中更新答案的floy…
先膜一波宽神Orz%%%%% 拿到这题的第一反应就是:暴力啊!感觉神奇的钟点并没有什么性质,可能卡常能过吧……所以就写了一个O(22^3*59^3)的暴力.本来想打表,但是发现代码长度有限制,写不下.写完后发现,总共只有127034种神奇的钟点,所以当k特别大时,直接输出-1就可以了.如果数据纯随机的话,2*10^9应该能骗过不少吧.然而这种并不对劲的思想显然是会被察觉的,虽然用尽各种方法卡常,但是并没有拿多少分. 下午听讲评时,宽神说:还能怎么做?暴力啊! 我: 事实上并不是神奇的卡常方法.这…
题意是求一个字符串每个长度的子串出现次数最多的那个出现了多少次,也就是求每个到根的最长路的right集合最大值 . 先建后缀自动机,然后将每个前缀所在的集合的初值设为1,因为所有前缀的right集合肯定不相同,而且它们包含了所有位置. 接下来按到根的最长距离从大到小排序,将right集合累加到parent上.这么排序是因为到根的最长距离长的状态肯定不是到根的最长距离短的状态的parent. 最后直接求到根的不同的最长距离的最大的right集合就行. #include<iostream> #in…
Time Limit: 20 Sec Memory Limit: 162 MB Submit: 931 Solved: 509 [Submit][Status][Discuss] Description Z国坐落于遥远而又神奇的东方半岛上,在小Z的统治时代公路成为这里主要的交通手段.Z国共有n座城市,一些城市之间由双向的公路所连接.非常神奇的是Z国的每个城市所处的经度都不相同,并且最多只和一个位于它东边的城市直接通过公路相连.Z国的首都是Z国政治经济文化旅游的中心,每天都有成千上万的人从Z国的其…
题目略长,就从大视野上复制了. 听上去好像费用流,然而…… ***************************表示略长的题目的分界线************************ 1495: [NOI2006]网络收费 Description 网络已经成为当今世界不可或缺的一部分.每天都有数以亿计的人使用网络进行学习.科研.娱乐等活动.然而, 不可忽视的一点就是网络本身有着庞大的运行费用.所以,向使用网络的人进行适当的收费是必须的,也是合理的 .MY市NS中学就有着这样一个教育网络.网络中…
题意是求多个串的lcs. 这也是道后缀自动机的模板题.对于任意一个字符串建后缀自动机,用其他串查询就行.对于后缀自动机的每个状态要额外记匹配到当前状态的最大长度. 和spoj1811的区别在于这道题不方便后缀数组做.当然,如果不嫌很多个串用奇怪的字符连起来麻烦.判断时常数极大的话,也可以试试. 字符串总数不多,好像还真行. #include<iostream> #include<iomanip> #include<cstdio> #include<cstring&…
题意是求两个字符串的lcs,两个串都只包含小写字母. 本题既可以用后缀自动机,又可以用后缀数组. 对于后缀自动机,就是一道模板题,直接对于一个字符串建后缀自动机再用另一个串查询就行. 对于后缀数组,其实也是一道模板题,但不是后缀数组的模板,而是用后缀数组求同一字符串的两个后缀的最长公共前缀的模板. 用h(x)表示排序前在第x位的后缀s1与排序后排在s1前一位的s2(记为prev(x))的最长公共前缀. 这样就会发现这些性质: 1.想要求出排序前位于k1,k2的后缀的最长公共前缀,只需要(用后缀数…
Loj #3124. 「CTS2019 | CTSC2019」氪金手游 题目描述 小刘同学是一个喜欢氪金手游的男孩子. 他最近迷上了一个新游戏,游戏的内容就是不断地抽卡.现在已知: - 卡池里总共有 \(N\) 种卡,第 \(i\) 种卡有一个权值 \(W_i\),小刘同学不知道 \(W_i\) 具体的值是什么.但是他通过和网友交流,他了解到 \(W_i\) 服从一个分布. - 具体地,对每个 \(i\),小刘了解到三个参数 \(p_{i,1},p_{i,2},p_{i,3}\),\(W_i\)…
[CTS2019]氪金手游(动态规划) 题面 LOJ 洛谷 题解 首先不难发现整个图构成的结构是一棵树,如果这个东西是一个外向树的话,那么我们在意的只有这棵子树内的顺序关系,子树外的关系与这棵子树之间的限制无关.所以我们只需要强制根节点在其他儿子之前的就行了(你可以认为如果这次随机抽到了子树外面的东西就重新抽一次,这个概率等于只考虑子树权值和的概率),那么这里的概率就是\(\frac{w_u}{\sum w}\).然后每个根节点显然可以独立考虑,所以只需要把所有根节点的结果直接乘起来就好了. 那…
[CTS2019]珍珠(生成函数) 题面 LOJ 洛谷 题解 lun题可海星. 首先一个大暴力\(sb\)的\(dp\)是设\(f[i][S]\)表示当前考虑完了前\(i\)个珍珠,\(S\)集合中这些颜色的珍珠当前还有一个没有匹配.这个随便转移就行了. 然后发现并没有任何需要记录下确切的哪些颜色是奇数个,只需要记录有多少种就行了. 这样子可以做到\(O(nd)\). 从这里我们看出,最终能够匹配出来的对数恰好等于\((n-|S|)/2\),总个数减去奇数颜色的个数的一半. 首先如果我们能够知道…