摘要: 这题的rotate操作其实就是暗示可以把某一个数提到最前面 因此本题其实就是求取最长公共子序列 但是有个问题当转移遇到s[i]==t[j]的时候,不能直接转移,因为只有当他二十六个字母的后缀数组全部比t串大时才可以转移,否则如果匹配了当前两个 没有办法把后面的提上来变成相等 #include<bit 阅读全文
posted @ 2020-07-03 23:16 朝暮不思 阅读(250) 评论(0) 推荐(1)
摘要: 对于一些不符合的点来说,肯定是被他的父节点上权值最小的点转换最好。 首先我们先排除不可能情况也就是01不等 之后发现,交换完两个数后,0不符合的和1不符合的个数各自-1,因此不会影响其他交换 因此我们维护一个最小值,表示父亲节点的最小值,如果这个值比当前节点小,那么显然在子树内部交换更好 之后只要d 阅读全文
posted @ 2020-07-03 22:30 朝暮不思 阅读(174) 评论(0) 推荐(0)
摘要: 基本建图套路,从单词头向单词尾连一条边,答案就是是否存在一条欧拉路径 #include<bits/stdc++.h> using namespace std; const int N=2e5+10; int p[N]; int din[N],dout[N]; int st[N]; int find( 阅读全文
posted @ 2020-07-03 20:04 朝暮不思 阅读(213) 评论(0) 推荐(0)