找循环节
来源:互联网 发布:防伪标签制作软件 编辑:程序博客网 时间:2024/06/06 09:22
http://dmnotdm.cn/problem.php?id=1020
#include<cstdio>#include<algorithm>#include<cmath>#include<cstring> using namespace std; long long t,n,m,k,pos[100005],a[100005],tmp; int main(){ int i; scanf("%lld",&t); while(t--) { scanf("%lld%lld%lld",&n,&m,&k); memset(pos,0,sizeof(pos)); tmp=1; n%=k; for(i=1;i<=m;i++) { tmp=(tmp*n)%k; if(!pos[tmp]) pos[tmp]=i; else break; a[i]=tmp; } if(i>m) printf("%lld\n",tmp); else { m-=(pos[tmp]-1); m%=(i-pos[tmp]); if(!m) m=i-pos[tmp]; m--; printf("%lld\n",a[pos[tmp]+m]); } } return 0;}
http://acm.hdu.edu.cn/showproblem.php?pid=1005
#include <cstring>#include <cstdio>#include <cstdlib>using namespace std;int rec[60];int main(){ int a, b, n; rec[0] = rec[1] = rec[2] = 1; while( scanf( "%d %d %d", &a, &b, &n ), a | b | n ) { int beg, end, flag = 0; for( int i = 3; i <= n && !flag; ++i ) { rec[i] = ( a * rec[i-1] + b * rec[i-2] ) % 7; for( int j = 2; j <= i - 1; ++j ) { if( rec[i] == rec[j] && rec[i-1] == rec[j-1] ) { beg = j, end = i; flag = 1; break; } } } if( flag ) { printf( "%d\n", rec[beg+(n-end)%(end-beg)] ); } else printf( "%d\n", rec[n] ); } return 0;}
0 0
- HDU4611(找循环节)
- 找循环节
- KMP找循环节
- poj2406 找最小循环节
- hdu_5690_All X(找循环节)
- hdu1358Period(nxt找循环节)
- hdu1021(找规律,循环节)
- hdu3746 利用KMP找循环节
- HDU 1005 Number Sequence 找循环节
- ZOJ2674(指数循环节找不动点)
- hdu 2802 找循环节 的方法
- HDU 3746 KMP_Next 找循环节
- HDU 3746利用KMP找循环节
- hdu 1005(找规律--循环节)
- HDU 2802 F(N) (找循环节)
- 广义Fibonacci数列找循环节
- hdu1005 Number Sequence(找循环节)
- 广义Fibonacci数列找循环节
- 视频文件损坏怎么修复,赤兔视频修复软件助您
- RFM模型+SOM聚类︱离群值筛选问题
- Java Arrays类进行数组排序
- android singapk
- Mahout构建图书推荐系统
- 找循环节
- 编程思维(一) -- 避免冗余与重复调用
- 使用IDA调试android下的linux程序
- Spring MVC上传图片的方法
- 心理学上,期望的东西一般不会出现,而担心的东西却往往成为现实。
- iOS中数据持久化,数据转化问题。
- ueditor1.4.3二次开发添加自定义Dialog
- 安装zsh
- ubuntu下SDL安装