题目:
code:
放在了dp栏里其实暴力一发就可以AC
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,ans[5020];
cin>>n;
while(n--){
cin>>m;
if(m<=3){
cout<<"1";
for(int i=2;i<=m;++i) cout<<" "<<i;
cout<<endl;
continue;
}
memset(ans,0,sizeof(ans));
int count = 0;
for(int i=1;i<=m;++i){//先模拟前两轮
if(i%2!=0) ans[i]=1,count++;
}
int flag = 3;
while(count>3){
int now = 0;
for(int i=1;i<=m;++i){
if(ans[i]){
now++;
if(now%flag==0){
ans[i]=0;
count--;
}
}
}
// cout<<"count = "<<count<<endl;
// cout<<"1";
// for(int i=2;i<=m;++i) if(ans[i]) cout<<" "<<i;
// cout<<endl;
if(flag==2) flag=3;
else flag=2;
}
// cout<<"\n";
cout<<"1";
for(int i=2;i<=m;++i) if(ans[i]) cout<<" "<<i;
cout<<endl;
}
return 0;
}