11 2020 档案

摘要:Description 传送门 Solution 首先每一位上有$0$就不合法,然后很多不同的排列乘起来是相同的,所以盲猜最后的$f$函数有用的值不多。 经过搜索发现最多只有不到$10000$个。 为啥别的题解都是8282我搜出来是9200? 那就把这些合法的$f$函数值都放进哈希表存起来,然后设$ 阅读全文
posted @ 2020-11-17 17:47 Tian-Xing 阅读(90) 评论(0) 推荐(0)
摘要:Description 传送门 Solution 因为只要经过就会修所以最优的修缮策略是从起点开始往左或往右修一段区间,所以考虑反向区间$dp$。 设$dp_{i, j}\(表示修缮完区间\)[i, j]$后的时间内再修其它区间产生的花费。 那么转移时不需要考虑区间$[i, j]\(,只需要考虑除了 阅读全文
posted @ 2020-11-17 09:03 Tian-Xing 阅读(127) 评论(0) 推荐(0)
摘要:Description 传送门 Solution 考虑对于每个点处理它的所有儿子,它的所有儿子连上来的路径要不就是在当前子树内两两匹配,要不就是继续连到该点的父亲。 如果在子树内匹配,儿子两个儿子的石子数量减一,该节点的石子数量减一;对于连上去的,某个儿子的石子数量减一,该节点的石子数量减一。 所以 阅读全文
posted @ 2020-11-11 21:52 Tian-Xing 阅读(108) 评论(0) 推荐(0)
摘要:Description 传送门 Solution 要求字典序最小,那么把原字符串中最小的移到开头一定是最优的。 同时为了使字典序尽量小,我们要使字符串中开头最小的字符串的数量尽可能的多且连续,由于是把字符串的反串放到字符后面,那我们先把最小的字符移动到字符串结尾,然后截取若干段最小字符和前面的一些字 阅读全文
posted @ 2020-11-11 19:06 Tian-Xing 阅读(105) 评论(0) 推荐(0)
摘要:\(A\) 认真阅读题面,仔细调试大模拟,手动构造数据检查,赛后$FST$即可。 #include <iostream> #include <cstdio> #include <cstring> using namespace std; #define fi first #define se sec 阅读全文
posted @ 2020-11-10 07:37 Tian-Xing 阅读(169) 评论(0) 推荐(0)
摘要:Description 传送门 Solution 考虑朴素的$2-SAT$,开点记录某个人是不是犯人,每句话是不是真的,然后每个人所说的所有话之间都要连边为保证只有一句假话。这样边数会很大,复杂度会假。 用前缀和的思想优化该做法,$pre_{i, j}$表示$i$的前$j$句话有没有出现假话。 那么 阅读全文
posted @ 2020-11-02 23:09 Tian-Xing 阅读(191) 评论(0) 推荐(0)
摘要:Description 传送门 Solution 非常妙的一道题。 首先题目中的判定条件“走到拥有关键点的环”是一个不好判定的条件,那么考虑将问题转化变为好判定的。 将原来的操作“保留一条边其它边全部删除”变为“选择一条边走出去”,同时,将获胜条件从“走到拥有关键点的环”变为“可以无限次经过关键点” 阅读全文
posted @ 2020-11-01 22:51 Tian-Xing 阅读(153) 评论(0) 推荐(0)