A. Electric Bill
题意:输入n,输入n个燃气的使用量,计算燃气费,不超过1000的部分按价格a计算,超过1000的部分按价格b计算
https://nanti.jisuanke.com/t/44817
#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; int main(){ int a,b; int n,use; cin>>a>>b; cin>>n; while(n--){ int sum=0; cin>>use; cout<<use<<' '; if(use<=1000){ sum=use*a; }else{ sum=a*1000+(use-1000)*b; } cout<<sum<<endl; } return 0; }
B.Simplified Keyboard
题意:给你两个字符串,判断这两个字符串的情况,一共有三种情况
1.完全相同,输出1
2.相似,相似指长度相同,字母相邻,输出2
3.既不相同也不相似的情况输出3
字母外围的八个字母都和他们是相似关系 可以根据ASCII码计算
#include<iostream> #include<cstring> using namespace std; int main(){ int n,i,a,b; char s1[25],s2[25]; cin>>n; for(i=0;i<n;i++){ cin>>s1>>s2; a=strlen(s1); b=strlen(s2); if(strcmp(s1,s2)==0){ cout<<"1"<<endl; } else if(a==b){ int p=0; for(int j=0;j<a;j++){ if(s1[j]!=s2[j]&&s1[j]!=s2[j]-1&&s1[j]!=s2[j]+1&&s1[j]!=s2[j]-8 &&s1[j]!=s2[j]-9&&s1[j]!=s2[j]-10&&s1[j]!=s2[j]+9&&s1[j]!=s2[j]+10&&s1[j]!=s2[j]+8){ p=1; break; } } if(p==0) cout<<"2"<<endl; if(p==1) cout<<"3"<<endl; } else{ cout<<"3"<<endl; } } return 0; }
C. Singin' in the Rain
题意:给出一个歌单里面歌的总数和要听的歌,初始位置在第一首歌
每次听完上一首歌后需要通过按上一曲或下一曲直至达到下一首要听的歌,
问要听完整个给出的歌单顺序,求需要按的最少次数
(每次开始跳跃时是听完上一首歌,即是从上一首歌+1的位置开始跳跃)
#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; typedef long long ll; int main(){ int n,flag; int s,i,j,first,next; long long t; cin>>n; for(i=1;i<=n;i++){ cin>>t>>s; long long sum=0; cin>>first; for(j=1;j<=s-1;j++){ cin>>next; flag=next-first-1; if(flag<0){ flag=flag+t; } if(flag<t-flag){ sum+=flag; }else{ sum+=t-flag; } first=next; } cout<<sum<<endl; } return 0; }