首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
@51nod - 1196/1197/1198@ 字符串的数量
】的更多相关文章
@51nod - 1196/1197/1198@ 字符串的数量
目录 @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,则该字符不可以作为结尾…
51nod1196 字符串的数量
用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,…
[51nod1197]字符串的数量 V2
用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,…
用map来统计数组中各个字符串的数量
1.背景 想要统计这一个字符串数组中每一个非重复字符串的数量,使用map来保存其key和value.这个需求在实际开发中经常使用到,我以前总是新建一个空数组来记录不重复字符串,并使用计数器计数,效率低下且麻烦,特此记录. 2.代码实现 public class test { public void makeEqual(String[] words) { Map<String,Integer> maps = new HashMap<>(); for (String str : wor…
51nod 1196 字符串的数量(DP+数论?)
这题好像是神题...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),就…
51Nod 1196 字符串的数量
用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【1196】字符串的数量
超级神题! 有n种字符,若此种字符的编号( \(1\) ~ \(n\)),\(i*2>n\),则他后面可接任意字符.若不是,则他后面接的字符编号至少要是他的两倍. 问长度为m的字符串的个数. 这道题我只想出了 \(O(n^2)\) 的做法,于是叕只能求助题解. 题解的做法和周六第二题有点像,但我并没有分析出最长链的长度小于 \(log_{2}n\) 这个性质.知道这个性质之后,就可以做了. 设 \(f[i]\) 表示长度为 \(i\) 的合法字符串的个数.\(g[i]\) 表示长度为 \(i\)…
51nod 1197 字符串的数量 V2(矩阵快速幂+数论?)
接上一篇,那个递推式显然可以用矩阵快速幂优化...自己随便YY了下就出来了,学了一下怎么用LaTeX画公式,LaTeX真是个好东西!嘿嘿嘿 如上图.(刚画错了一发...已更新 然后就可以过V2了 orz CZL卡常大师,我怎么越卡越慢啊QAQ #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<cmath> #define ll long…
51nod 1092 回文字符串 (dp)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1092 这个题是poj-3280的简化版,这里只可以增加字符,设 dp[i][j] 为把以i开头j结尾的子串变为回文串的最少次数, if(s[i]==s[j]) dp[i][j]=dp[i+1][j-1]; else dp[i][j]=min(dp[i+1][j],dp[i][j-1])+1; #include <iostream> #include <cstd…
51Nod 1003 阶乘后面0的数量(数学,思维题)
1003 阶乘后面0的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0. Input 一个数N(1 <= N <= 10^9) Output 输出0的数量 Input示例 5 Output示例 1题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1003编程之…