博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 1005 Number Sequence (循环节)
阅读量:5015 次
发布时间:2019-06-12

本文共 1002 字,大约阅读时间需要 3 分钟。

题目链接:
题目大意:给定f[1] = 1, f[2] = 1, f[n] = ((A*f[n-1]) + (B*f[n-2])) % 7, 求f[n]   (n最大100,000,000)
思路:f[n]显然都是小于7的,而f[n]又只与f[n-1]和f[n-2]有关,于是想到只有7*7种组合,一定可以找到循环节。
代码:  
#include #include #include using namespace std;int main(){    int vis[7][7];    int f[100];    int A,B,n;    while(cin>>A>>B>>n){        if (A + B + n == 0){            break;        }        int t1 = 0, t2 = 0;        memset(vis, 0, sizeof(vis));        memset(f, 0, sizeof(f));        int t = 2;        int p1 = 1, p2 = 1;        vis[1][1] = 1;        f[1] = f[2] = 1;        while(1){            int p3 = (A * p2 + B * p1) % 7;            p1 = p2;            p2 = p3;            if (!vis[p1][p2]){                vis[p1][p2] = t;                f[t] = p1;                t ++;            }            else{                t1 = vis[p1][p2];                t2 = t;                t ++;                break;            }        }        if (n < t1){            cout<

转载于:https://www.cnblogs.com/AbandonZHANG/archive/2012/12/24/4114187.html

你可能感兴趣的文章
条形码扫描枪数据读取的问题
查看>>
$this->autoRender = false
查看>>
健壮的 Java 基准测试
查看>>
phpstorm查看类的继承关系
查看>>
git create clone(仓库)
查看>>
chmod修改文件权限的命令
查看>>
新博客牵至简书
查看>>
矩阵求逆
查看>>
在 Windows 8、Windows 10 桌面模式下的 .NET Framework 程序中,引用 Windows.Runtime 的 API。...
查看>>
2015 8月24号 工作计划与实行
查看>>
MVC AJAX
查看>>
Google Map API V3开发(6) 代码
查看>>
Kafka初入门简单配置与使用
查看>>
第三章Git使用入门
查看>>
Amd,Cmd, Commonjs, ES6 import/export的异同点
查看>>
cocos2dx-Lua与Java通讯机制
查看>>
上下文管理器之__enter__和__exit__
查看>>
android3.2以上切屏禁止onCreate()
查看>>
winform文件迁移工具
查看>>
delphi DCC32命令行方式编译delphi工程源码
查看>>