杂题总结(主CF难度较低)
include <bits/stdc++.h>
using namespace std;
const int N=3e5+10;
int n,a[N];
int ask(int t,int i,int j,int x)
{
cout<<"? "<<t<<" "<<i<<" "<<j<<" "<<x<<endl;
int z;cin>>z;
return z;
}
void solve()
{
cin>>n;int rt;
for(int i=1;i<=n;i+=2)
{
int z;
if(i+1<=n)z=ask(2,i,i+1,1);
else{rt=n;break;}//特判
if(z1){rt=i;break;}
if(z2)
{
z=ask(2,i+1,i,1);
if(z1){rt=i+1;break;}
}
}
for(int i=1;i<=n;i++)
{
if(irt){a[i]=1;continue;}
a[i]=ask(1,rt,i,n-1);
}
cout<<"! ";
for(int i=1;i<=n;i++)cout<<a[i]<<" ";
cout<<endl;
return ;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int t;cin>>t;
while(t--)solve();
return 0;
}

浙公网安备 33010602011771号