关于第六个操作
查看原帖
关于第六个操作
203623
critnos楼主2020/5/14 16:50

RT

本地和题解拍了一下,输出的字节数相同,也是对着题解写的,但是第六个操作死活调不动,求助

这个还没写完

/*
zzq 之毒瘤题,祭之 
虽然是看着题解敲的,但是也快挂了 
*/
#include<bits/stdc++.h>
using namespace std;
int cnt;
int a[1005],b[1005];
void I()
{
	puts("I");
	cnt++;
}
void F(int x)
{
	printf("F %d\n",x);
}
void E(int x)
{
	printf("E %d\n",x);
}
void C(int x)
{
	printf("C %d\n",x);
	cnt++;
}
void M(int x)
{
	printf("M %d\n",x);
	cnt++;
}
void T(int x,int y)
{
	printf("T %d %d\n",x,y);
}
void O(int x)
{
	printf("O %d\n",x);
}
void mft(int x)
{
	M(x);
	F(cnt);
	T(cnt,x);
}
void change_2(int x,int a[],int p,int i)
{
	int p2,j;
	M(x);
	F(cnt);
	C(p);
	for(;;i--,p/=2)
	{
		M(cnt-1);
		x=cnt;
		C(p-1);
		T(cnt-3,cnt-2);
		T(cnt-2,cnt);
		M(cnt-2);
		F(cnt);
		a[20-i]=cnt;
		if(p==1) return;
		T(cnt-1,cnt-3);
		C(1);
		F(cnt);
		T(cnt,cnt-4);
		C(1e9);
		T(cnt-1,cnt);
		p2=cnt;
		for(j=0;j<i;j++)
			mft(p2);
		M(p2);
		F(x);
		T(x,cnt);
		M(x);
		F(cnt);
		C(p/2);	
	}
}
void min(int x,int y,int &ans)
{
	M(y);
	T(x,cnt);
	ans=cnt;
}
void mnmx(int x,int y,int &ans1,int &ans2)
{
	M(y);
	T(x,cnt);
	ans1=cnt;
	C(1e9);
	T(x,cnt);
	T(y,cnt);
	ans2=cnt;
}
void mut(int x,int y,int qwq,int qaq,bool fl1,bool fl2,int &ans)
{
	int i,j,k;
	C(1e9);
	ans=cnt;
	change_2(x,a,qwq,qaq);
	if(fl2==0)
		change_2(y,b,qwq,qaq);
	for(i=20-qaq;i<=20;i++)
		for(j=20-qaq;j<=20;j++)
			if(i+j>=21&&(fl1==0||40-i-j<18))
			{
				M(a[i]);
				F(cnt);
				min(cnt,b[i],x);
				C(1e9);
				T(x,cnt);
				x=cnt;
				for(k=1;k<=40-i-j;k++)
					mft(x);
				T(x,ans);
			}
}
int main()
{
	freopen("7.txt","w",stdout);
    int t,i,j,ans1,ans2,p;
    cin>>t;
    if(t==1)
    {
    	I();
    	I();
    	C(1e9);
    	T(1,3);
    	T(2,3);
    	O(3);
	}
	if(t==2)
	{
		I();
    	I();
    	M(2);
    	T(1,3);
    	C(1e9);
    	T(1,4);
    	T(2,4);
    	M(3);
    	T(4,5);
    	O(4);
	}
	if(t==3)
	{
		I();
    	I();
    	M(2);
    	T(1,3);
    	C(1e9);
    	T(1,4);
    	T(2,4);
    	O(4);
	}
	if(t==4)
	{
		I();
    	I();
    	for(i=0;i<1001;i++)
    	{
    		M(cnt);
    		T(cnt-2,cnt);
    		C(1e9);
    		T(cnt-3,cnt);
    		T(cnt-2,cnt);
    		M(cnt-1);
    		T(cnt-1,cnt);
    		M(cnt-1);
    		F(cnt);
		}
		O(cnt);
	}
	if(t==5)
	{
		I();
		C(1e9);
		for(i=0;i<15;i++)
			O(2);
		change_2(1,a,1<<16,16);
		for(i=4;i<=20;i++)
			O(a[i]);
	}
	if(t==6)
	{
		I();
		I();
		mut(1,2,512,9,0,0,ans1);
		O(ans1);
	}
	if(t==7)
	{
		I();
		I();
		C(1e9);
		change_2(1,a,1<<16,16);
		change_2(2,b,1<<16,16);
		for(i=4;i<=20;i++)
		{
			mnmx(a[i],b[i],ans1,ans2);
			M(ans1);
			M(ans2);
			F(cnt);
			T(cnt,cnt-1);
			C(1e9);
			T(cnt-1,cnt);
			p=cnt;
			for(j=0;j<20-i;j++)
				mft(p);
			M(p);
			F(cnt);
			T(cnt,3);
		}
		O(3);
	}
	//if()
} 
2020/5/14 16:50
加载中...