社区讨论
50分求大佬调,必关很急
P1885Moo参与者 2已保存回复 11
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 11 条
- 当前快照
- 1 份
- 快照标识符
- @mkdzof6o
- 此快照首次捕获于
- 2026/01/14 20:20 上个月
- 此快照最后确认于
- 2026/01/17 21:35 上个月
CPP
#include<bits/stdc++.h>
using namespace std;
long long n;
int a[10000];
char s1(int x,int t){
if(t==0){
if(x==1)return 'm';
else if(x==2)return 'o';
else if(x==3)return 'o';
}
if(x<=a[t-1])s1(x,t-1);
else if(x>a[t]-a[t-1])s1(x-(a[t]-a[t-1]),t-1);
else if(x==a[t-1]+1)return 'm';
return 'o';
}
int s(int x){
int su=3;
int k=1;
while(su<x){
su=a[k-1]*2+1+(k+2);
a[k]=su;
k++;
}
return k-1;
}
int main(){
cin>>n;
a[0]=3;
long long t=s(n);
cout<<s1(n,t);
return 0;
}
为什么把第20行改成su=su*2+1+(k+2);就对了,这两个不应该是等量的吗
回复
共 11 条回复,欢迎继续交流。
正在加载回复...