摘要: 用sum[i]表示前缀和模7的值,若存在i≤j,满足sum[i]==sum[j],则区间(i,j]的和为7的倍数。 O(N)扫出sum[0]~sum[6]第一次出现的位置first和最后一次出现的次数last,答案即为Max(last[i]-first[i]) 1 #include<cstdio> 阅读全文
posted @ 2017-10-23 18:47 Driver_Lao 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 【题意概述】 给出一个只有小写字母的序列,问最少把序列分成几段可以满足每一段可以通过变换成为回文串。变换指的是交换子序列中的字母的位置。 【题解】 我们把a~z分别设为2^0~2^25,每个子序列满足条件当且仅当子序列异或和为0或2的n次幂。 我们用sum[i]表示前缀异或和,用f[i]表示1~i的 阅读全文
posted @ 2017-10-23 16:35 Driver_Lao 阅读(284) 评论(0) 推荐(0) 编辑