TLEall
查看原帖
TLEall
700986
IkunFriendsChat楼主2024/9/21 10:14

rt,实现是O(1.6×107)O(1.6×10^7)的复杂度,输出为O(T)O(T),但是全部超时

于是我将实现下调至了O(1×106)O(1×10^6),但是仍然全部TLE,求条

#include<bits/stdc++.h>
using namespace std;
int w,h;
int ans[222][222];
int main()
{
	for(int i=1;i<=200;i++)
		ans[i][1]=ans[1][i]=1;
	for(int i=2;i<=200;i++)
	{
		for(int j=2;j<=200;j++)
		{
			for(int k=1;k<i;k++)
			{
				ans[i][j]|=!ans[k][j]&!ans[i-k][j];
				if(ans[i][j])break;
			}
			for(int k=1;k<j;k++)
			{
				ans[i][j]|=!ans[i][k]&!ans[i][j-k];
				if(ans[i][j])break;
			}
		}
	}
	/*printf("{");
	for(int i=1;i<200;i++)
	{
		printf("{");
		for(int j=1;j<200;j++)
		{
			printf("%d,",ans[i][j]);
		}
		printf("%d},",ans[i][200]);
	}
	printf("{");
	for(int j=1;j<200;j++)
	{
		printf("%d,",ans[200][j]);
	}
	printf("%d}}",ans[200][200]);*/
	while(scanf("%d%d",&w,&h))
		else if(ans[w][h]==1)printf("WIN\n");
		else printf("LOSE\n");
}
2024/9/21 10:14
加载中...