妙用next数组打表求最小循环节len
https://www.cnblogs.com/njczy2010/p/3930688.html
https://blog.csdn.net/dominating413421391/article/details/44203019?locationNum=1&fps=1
https://blog.csdn.net/piekey1994/article/details/38436511 [数学]
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int len;
int n = 1000;
int next[10000];
int f[50000];
char s[50000];
int Pow(int a, int b)
{
int res=1;
while(b)
{
if(b&1)
res=res*a%7;
a=a*a%7;
b>>=1;
}
return res;
}
void getnext()
{
int j=0,k=-1;
next[0]=-1;
while(j<n)
{
if(k==-1||s[j]==s[k])
{
next[++j]=++k;
}
else
{
k=next[k];
}
}
}
int main()
{
for(int i=1;i<=600;i++)
{
f[i] = f[i-1] + Pow(i,i);
f[i]%=7;
}
for(int i=0;i<=600;i++)
{
sprintf(&s[i],"%d",f[i]);
}
s[601]='\0';
cout<<s<<endl;
getnext();
for(int i=1;i<=600;i++) //由题意可知,长度为1的字符串不算
{
len=i-next[i]; //len代表最小循环节
if(i%len==0 && i/len>1) //周期大于1才是循环串
{
cout<<"ans = "<<len<<endl;
}
}
printf("\n");
}
#include<iostream>
#include<algorithm>
#include<string>
#include<map>
#include<cmath>
#include<string.h>
#include<stdlib.h>
#include<cstdio>
#define ll long long
using namespace std;
ll x[1005];
long mod(long a,long n,long b){ //a^b mod c
long t;
if(n==0) return 1%b;
if(n==1) return a%b;
t=mod(a,n/2,b);
t=t*t%b;
if((n&1)==1) t=t*a%b;
return t;}
int main(){
string s[7]={"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};
x[0]=0;
for(int i=1;i<=1000;++i)
x[i]=(x[i-1]%7+mod(i,i,7))%7;
int next[1001];
next[0] = 0;
int len=1000;
for(int i = 1, q = 0; i < len; i++){ //x[]里放的是要找规律的数组
while(q > 0 && x[i] != x[q])
q = next[q-1];
if (x[i] == x[q])
q++;
next[i] = q;
if (q != 0 && (i + 1) % (i + 1 - q) == 0){
printf("%d\n", i+1-q); //输出的就是最大循环长度
break;
}
}
return 0;
}
妙用next数组打表求最小循环节len的更多相关文章
- HDU-3746 Cyclic Nacklace 字符串匹配 KMP算法 求最小循环节
题目链接:https://cn.vjudge.net/problem/HDU-3746 题意 给一串珠子,我们可以在珠子的最右端或最左端加一些珠子 问做一条包含循环珠子的项链,最少还需要多少珠子 思路 ...
- The Minimum Length - HUST 1010(求最小循环节)
题意:有个一字符串A(本身不是循环串),然后经过很多次自增变成AAAAA,然后呢从自增串里面切出来一部分串B,用这个串B求出来A的长度. 分析:其实就是求最小循环节.......串的长度 - 最大 ...
- hdu 3746 Cyclic Nacklace(next数组求最小循环节)
题意:给出一串字符串,可以在字符串的开头的结尾添加字符,求添加最少的字符,使这个字符串是循环的(例如:abcab 在结尾添加1个c变为 abcabc 既可). 思路:求出最小循环节,看总长能不能整除. ...
- poj 2185 Milking Grid(next数组求最小循环节)
题意:求最小的循环矩形 思路:分别求出行.列的最小循环节,乘积即可. #include<iostream> #include<stdio.h> #include<stri ...
- next数组求最小循环节
1.kmp产生的next数组: 最小循环节(长度)=len-next[len]; 证明: ----------------------- ----------------------- k m ...
- hdoj3746(kmp算法的nex数组求最小循环节)
题目链接:https://vjudge.net/problem/HDU-3746 题意:给定一个字符串,问最少在两端添加多少元素使得整个字符串是呈周期性的. 思路: 应用到kmp中nex数组的性质,数 ...
- poj2406--Power Strings(KMP求最小循环节)
Power Strings Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 33178 Accepted: 13792 D ...
- KMP 求最小循环节
转载自:https://www.cnblogs.com/chenxiwenruo/p/3546457.html KMP模板,最小循环节 下面是有关学习KMP的参考网站 http://blog.cs ...
- HDU 3746 - Cyclic Nacklace & HDU 1358 - Period - [KMP求最小循环节]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3746 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
随机推荐
- [LeetCode] Binary Tree Level Order Traversal 与 Binary Tree Zigzag Level Order Traversal,两种按层次遍历树的方式,分别两个队列,两个栈实现
Binary Tree Level Order Traversal Given a binary tree, return the level order traversal of its nodes ...
- Weblogic 9.2 启动时报错 javax.xml.namespace.QName
启动Weblogic 时会报错.javax.xml.namespace.QName; local class incompatible: stream classdesc serialVersionU ...
- centos设置tomcat开机启动
1.编辑开机启动脚本 vi /etc/init.d/tomcat8 #!/bin/bash # tomcat8:start|stop|restart # chkconfig: 345 90 10 # ...
- 解决nginx在记录post数据时 中文字符转成16进制的问题【转载】
1. 问题描述 nginx 在获取post数据时候,如果是中文,则转换成16进制显示在日志文件中,如下图所示. Paste_Image.png 日志格式为: log_format postdata ...
- .NET RabbitMQ
在企业应用系统领域,会面对不同系统之间的通信.集成与整合,尤其当面临异构系统时,这 种分布式的调用与通信变得越发重要.其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方,比如发送短 ...
- 【lydsy1407】拓展欧几里得求解不定方程+同余方程
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1407 题意: 有n个野人,野人各自住在第c[i]个山洞中(山洞成环状),每年向前走p[i] ...
- 【Foreign】Walk [暴力]
Walk Time Limit: 20 Sec Memory Limit: 256 MB Description Input Output Sample Input 3 1 2 3 1 3 9 Sa ...
- 【NOIP】提高组2014 解方程
[题意]已知n次方程(n<=100)及其所有系数(|ai|<=10^10000),求[1,m]中整数解的个数(m<=10^6). [算法]数论 [题解]如果f(x)=0,则有f(x) ...
- 爬虫--BeautifulSoup
什么是BeautifulSoup? BeautifulSoup支持的一些解析库 基本使用 from bs4 import BeautifulSoup html =""" ...
- 手動設定 電池溫度 mtk platform
adb root adb shell echo "3 1 27" > ./proc/mtk_battery_cmd/battery_cmd 27 即是所要設定的溫度, 此設定 ...