摘要: 题目大意 题解 把一个点拆成两个点,L->R和R->L连成二分图,n-匹配数就是链数,链数-1就是答案 所以贪心匹配就行了,最后根据首尾LR情况有4种,LR和RL在存在LL或RR时都可以消掉 如果同时存在LR和RL且没有LL和RR就会挂掉,所以在找的时候优先构出LL和RR即可 这样的话就不会同时有L 阅读全文
posted @ 2020-09-08 22:40 gmh77 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 题目大意 https://www.luogu.com.cn/problem/AT4502 题解 二分+map/栈判断 code #include <bits/stdc++.h> #define fo(a,b,c) for (a=b; a<=c; a++) #define fd(a,b,c) for 阅读全文
posted @ 2020-09-08 21:31 gmh77 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题目大意 题解 不难但是因为字符串太菜所以想了很久 排行榜上跑得快的一些做法假了,不知道有没有更简单的做法 结论:存在一种最优序列,使得Si是Si-1的后缀,证明把任意一种最优的不断删掉末尾将其顶住 也可以同时满足开头但是不需要,这样可以写个O(n^2)KMP暴力来拍 把SAM建出来,同一个点上的串 阅读全文
posted @ 2020-09-08 20:40 gmh77 阅读(103) 评论(0) 推荐(0) 编辑