博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
凉凉夜色为我思念成河
阅读量:5277 次
发布时间:2019-06-14

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

想起了前天和我娇妻深情对唱凉凉,结果这两天真的透心凉,再也没有水题给我们做了。

今早上大家集体爆0,然后在我wa+TLE了8发之后,上帝终于被我奋取的精神感动了,给了我一个accepted.

 

这道题就是斐波拉契数列+快速幂取和+循环节点的计算,首先如果出现f[i]=f[1]&&f[i-1]=f[0]则出现循环,

而对n的模数只有n种可能,故n^2内便出现循环。
故,先求出循环节M,
再求a^b%M,快速幂即可

#include 
#include
#include
#include
#include
#include
#include
using namespace std;int f[1020100];int quickpow(unsigned long long a,unsigned long long b,int n){ unsigned long long ans=1,base=a; while(b) { if(b%2==1) { ans=(ans*base)%n; } base=(base*base)%n; b=b>>1; } return ans;}int main(){ int t,m; int n; f[0]=0; f[1]=1; unsigned long long a,b; scanf("%d",&m); while(m--) { scanf("%llu%llu%d",&a,&b,&n); if(n==1||a==0) { printf("0\n"); continue; } for(int i=2; i<=n*n; i++) { f[i]=(f[i-1]%n+f[i-2]%n)%n; if(f[i-1]==0&&f[i]==1) { t=i-1; break; } } printf("%d\n",f[quickpow(a%t,b,t)]); } return 0;}

 

下一道题:

这个题就是对容器的使用,然后注意比较的时候要全部转换成小写字母比较,然后它输出的时候,又要按照字母顺序先输出大写再输出小写,所以还要用一个容器存取它本来的大小写。

#include 
#include
#include
#include
#include
#include
#include
using namespace std;map
kepa;vector
t1,t2;int main(){ string s; int i,j; while(cin>>s) { if(s[0]=='#') break; t1.push_back(s); int len=s.length(); for(i=0; i
='A'&&s[i]<='Z') { s[i]+=32; } } sort(s.begin(),s.end()); kepa[s]++; } for(i=0; i
='A'&&s1[j]<='Z') { s1[j]+=32; } } sort(s1.begin(),s1.end()); if(kepa[s1]==1) { t2.push_back(t1[i]); } } sort(t2.begin(),t2.end()); for(i=0; i

水逆退散!阿门!

转载于:https://www.cnblogs.com/kepa/p/9397160.html

你可能感兴趣的文章
Python 简介和入门
查看>>
ABP 拦截器不工作
查看>>
撩课-Java每天5道面试题第12天
查看>>
UVa 10943 - How do you add?
查看>>
类设计技巧
查看>>
表格导出导入
查看>>
【bzoj2324】[ZJOI2011]营救皮卡丘 最短路-Floyd+有上下界费用流
查看>>
【bzoj3280】小R的烦恼 费用流
查看>>
【bzoj2245】[SDOI2011]工作安排 费用流
查看>>
【bzoj1026】[SCOI2009]windy数 数位dp
查看>>
【自动化测试】搭建一个简单从Excel读取用例内容并输出结果的脚本
查看>>
httpclient爬取性感美图
查看>>
找出1000以内的所有完数。
查看>>
2017"百度之星"程序设计大赛 - 初赛(A)数据分割
查看>>
ckeditor源码编辑模式,添加style、javascript内容丢失的解决
查看>>
关于微信支付的退款那些事
查看>>
linux系统优化
查看>>
apache工作模式
查看>>
方差 标准差
查看>>
18.约瑟夫环
查看>>