第一题 我的写法比较乱
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int n,ans=0,res=0;
string s;
scanf("%d",&n);
while(n--){
cin>>s;
if(s=="CTRL"){
ans+=5;
}
else if(ans==10&&s=="UNCTRL"){
ans=30;
}
else if(ans==5&&s=="UNCTRL"){
ans-=5;
}
else if(ans==5&&s=="C"){
ans+=5;
}
else if((ans==10&&s=="V")||(ans==35&&s=="V")){
ans=100;
}
if(ans==100){
res=1;
}
}
if(res){
printf("Yes");
}
else
printf("No");
return 0;
}
第二题
#include <iostream>
#include <cmath>
using namespace std;
int t,k,f[125],temp1=0,temp2=0,ans=0;
int main(){
scanf("%d%d",&t,&k);
while(t--){
int x,y;
scanf("%d%d",&x,&y);
for(int i=x;i<=y;i++){
f[i]++;
}
}
f[121]=1e6;
for(int i=0;i<=121;i++){
if(f[i]<k&&temp2==0){
temp1=1;
temp2=1;
}
else if(temp1==1&&f[i]>=k){
ans++;
temp2=0;
temp1=0;
}
}
printf("%d\n",ans);
temp2=0;
temp1=0;
for(int i=0;i<=121;i++){
if(f[i]<k&&temp2==0){
printf("%d-",i);
temp1=1;
temp2=1;
}
else if(temp1==1&&f[i]>=k){
printf("%d\n",i-1);
temp2=0;
temp1=0;
}
}
return 0;
}
第三题
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int s,t,a,b,c,ans=0;
scanf("%d%d",&s,&t);
for(int i=0;i<=s;i++){
for(int j=i;j<=s;j++){
for(int k=j;k<=s;k++){
a=i;
b=j;
c=k;
if(a+b+c<=s&&a*b*c<=t){
ans++;
}
}
}
}
printf("%d",ans);
return 0;
}
第四题
一个一个试
#include <iostream>
#include <cmath>
using namespace std;
int main(){
printf("5 Mazige");
return 0;
}
第五题,快速幂
#include <iostream>
#include <cmath>
using namespace std;
long long fastPower(long long base, long long power,long long mod) {
long long result = 1;
while (power > 0) {
if (power & 1) {
result = (result * base)% mod;
}
power >>= 1;
base = (base * base) % mod;
}
return result;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
string n;
long long k;
cin>>n>>k;
long long q=n[n.size()-1]-48;
long long s=fastPower(9,k,10);
long long ss= fastPower(q,s,10);
printf("%lld\n",ss);
}
return 0;
}
第六题,首先,将这个数一直除以三,如果这些数的余数不同,则结果为LOSE,否则,找到除以次数最小的那次次数,总和减去这个数乘n;
#include<iostream>
#include <set>
using namespace std;
#define int long long
int a[100005],all=0;
set<int> s;
signed main(){
int n;cin>>n;
for(int i=1;i<=n;i++){
int x,num=0;cin>>x;
while(x>=3){
num++;
x/=3;
}
s.insert(x);
all+=num;
a[i]=num;
}
if(s.size()!=1){
cout<<"Lose";
return 0;
}
cout<<all-n*(*min_element(a+1,a+n+1));
}
第七题
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int t;
scanf("%d",&t);
while(t--){
long long n;
scanf("%lld",&n);
if(n%2==0){
n/=2;
if(n%2==0){
printf("Not Mazige\n");
}
else
printf("Mazige\n");
}
else{
printf("Mazige\n");
}
}
return 0;
}