欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

凉凉夜色为我思念成河

发布时间:2025/3/14 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 凉凉夜色为我思念成河 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

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

 

这道题就是斐波拉契数列+快速幂取和+循环节点的计算,首先如果出现f[i]=f[1]&&f[i-1]=f[0]则出现循环,
而对n的模数只有n种可能,故n^2内便出现循环。
故,先求出循环节M,
再求a^b%M,快速幂即可

#include <iostream> #include<map> #include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> #include<set> 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 <iostream> #include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> #include<map> #include<vector> using namespace std; map<string,int> kepa; vector<string> 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<len; i++){if(s[i]>='A'&&s[i]<='Z'){s[i]+=32;}}sort(s.begin(),s.end());kepa[s]++;}for(i=0; i<t1.size(); i++){string s1=t1[i];for(j=0; j<s1.length(); j++){if(s1[j]>='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<t2.size(); i++){cout<<t2[i]<<endl;}return 0; }

水逆退散!阿门!

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

总结

以上是生活随笔为你收集整理的凉凉夜色为我思念成河的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。