这是为什么???
查看原帖
这是为什么???
542698
封禁用户楼主2023/6/27 19:21

if(op==1)里循环为<就10ms,<=就TLE

#include<bits/stdc++.h>
#define int long long
signed main()
{
	int n,q;
	scanf("%lld%lld",&n,&q);
	int a[n+5][n+5]={0};
	for(int i=0;i<n;i++)for(int j=0;j<n;j++)scanf("%lld",&a[i][j]);
	while(q--)
	{
		int op;
		scanf("%lld",&op);
		if(op==1)
		{
			int aa,b,x,y,v;
			scanf("%lld%lld%lld%lld%lld",&aa,&b,&x,&y,&v);
			for(int i=aa;i<=x;i++)
				for(int j=b;j<=y;j++)
					a[i][j]+=v;
		}
		else
		{
			int temp[n+5][n+5]={0},flag=0;
			for(int i=0;i<n;i++)for(int j=0;j<n;j++)scanf("%lld",&temp[i][j]);;
			for(int i=0;i<n;i++)
			{
				for(int j=0;j<n;j++)
				{
					int sum=0;
					for(int k=0;k<n;k++)
					sum+=a[i][k]*a[k][j];
					if(temp[i][j]!=sum)goto abc;
				}
			}
			printf("yes\n");
			continue;
			abc:
			printf("no\n");
		}
	}
}

2023/6/27 19:21
加载中...