这题好像是神题...V1 V2 V3分别涵盖了51nod 5级算法题 6级算法题 难题 讨论区的曹鹏神牛好强啊...一种做法切了V1 V2 V3,而且做法是一步一步优化的 还没去看优化的部分,未优化已经能过V1了 设g(i)为结尾编号>n/2的长度为i的合法链的方案数,v(i)为长度为i的合法字符串的方案数 v(x)=g(1)*v(x-1)+g(2)*v(x-2)+g(3)*v(x-3)+...+g(p)*v(x-p) 这个p显然是logn级别的,递推算一下就行了,时间复杂度O(MlogN),就…
用N个不同的字符(编号1 - N),组成一个字符串,有如下要求: (1) 对于编号为i的字符,如果2 * i > n,则该字符可以作为结尾字符.如果不作为结尾字符而是中间的字符,则该字符后面可以接任意字符. (2) 对于编号为i的字符,如果2 * i <= n,则该字符不可以作为结尾字符.作为中间字符,那么后面接的字符编号一定要 >= 2 * i. 问有多少长度为M且符合条件的字符串,由于数据很大,只需要输出该数Mod 10^9 + 7的结果. 例如:N = 2,M = 3.则abb,…
接上一篇,那个递推式显然可以用矩阵快速幂优化...自己随便YY了下就出来了,学了一下怎么用LaTeX画公式,LaTeX真是个好东西!嘿嘿嘿 如上图.(刚画错了一发...已更新 然后就可以过V2了 orz CZL卡常大师,我怎么越卡越慢啊QAQ #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<cmath> #define ll long…
目录 @description@ @solution@ @part - 1@ @part - 2@ @part - 3@ @accepted code@ @details@ @description@ 用 N 个不同的字符(编号1 - N),组成一个字符串,有如下要求: (1) 对于编号为 i 的字符,如果2 * i > n,则该字符可以作为结尾字符.如果不作为结尾字符而是中间的字符,则该字符后面可以接任意字符. (2) 对于编号为 i 的字符,如果2 * i <= n,则该字符不可以作为结尾…
用N个不同的字符(编号1 - N),组成一个字符串,有如下要求:(1) 对于编号为i的字符,如果2 * i > n,则该字符可以作为结尾字符.如果不作为结尾字符而是中间的字符,则该字符后面可以接任意字符.(2) 对于编号为i的字符,如果2 * i <= n,则该字符不可以作为结尾字符.作为中间字符,那么后面接的字符编号一定要 >= 2 * i.问有多少长度为M且符合条件的字符串,由于数据很大,只需要输出该数Mod 10^9 + 7的结果.例如:N = 2,M = 3.则abb, bab,…
用N个不同的字符(编号1 - N),组成一个字符串,有如下要求: (1) 对于编号为i的字符,如果2 * i > n,则该字符可以作为结尾字符.如果不作为结尾字符而是中间的字符,则该字符后面可以接任意字符. (2) 对于编号为i的字符,如果2 * i <= n,则该字符不可以作为结尾字符.作为中间字符,那么后面接的字符编号一定要 >= 2 * i. 问有多少长度为M且符合条件的字符串,由于数据很大,只需要输出该数Mod 10^9 + 7的结果. 例如:N = 2,M = 3.则abb,…
题目链接 51nod 1277 字符串中的最大值 题解 对于单串,考虑多串的fail树,发现next数组的关系形成树形结构 建出next树,对于每一个前缀,他出现的次数就是他子树的大小 代码 #include<cstdio> #include<cstring> #include<algorithm> inline int read() { int x = 0,f = 1; char c = getchar(); while(c < '0' || c > '9…
正解:dp+数论 解题报告: 传送门! 考虑对每种颜色的棋子单独考虑鸭,那显然有,当某一行或某一列已经被占据的时候,那一行/一列就不能再放别的颜色的棋子了,相当于直接把那一行/一列直接消了 显然就能考虑到dp?设f[i][j]:剩余i行j列的方案数 转移就枚举这个颜色的棋子放了p行q列,设g[d][p][q]:d个棋子恰好放了p行q列的方案数 直接枚举pq,f[i][j]=∑f[i+p][j+1]*g[c[k]][p][q] 现在就只要知道怎么求g就好 看到这种恰好balabala的应该就第一反…
洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速\(dp\&Floyd\)) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1310683 扯闲谈 觉得这是道比较好的引导模型转换的题,就决定写一篇题解 即使我就是看的ZSY的,并且几乎写的一模一样(还是稍有不同的) 安利一发租酥雨的题解 原题地址:洛谷P3502 [POI2010]CHO-Hamsters 先理解题意 给出\(n\)个字符串,让你用这\(n\)个…
1.背景 想要统计这一个字符串数组中每一个非重复字符串的数量,使用map来保存其key和value.这个需求在实际开发中经常使用到,我以前总是新建一个空数组来记录不重复字符串,并使用计数器计数,效率低下且麻烦,特此记录. 2.代码实现 public class test { public void makeEqual(String[] words) { Map<String,Integer> maps = new HashMap<>(); for (String str : wor…