P2356 弹珠游戏题解
先说都会的TIE两个点的题解…
#include
using namespace std;
int n;
int a[10001][10001];
int ans=-1;
int MYB(int x,int y)
{
int sum=0;
for(int i=1;i<=n;i++)
sum+=a[x][i];
for(int i=1;i<=n;i++)
sum+=a[i][y];
return sum;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(ans0)
cout<
注意了:
在哪里优化呢???
答案是,在循环里
如果a[i][j]!=0
则continue(跳过)
这样,就可以节省时间了
不用再跑 O(2n) 的复杂度的MYB了
最后,献上你们最爱的代码!!!
#include
using namespace std;
int n;
int a[10001][10001];
int ans=-1;
int MYB(int x,int y)
{
int sum=0;
for(int i=1;i<=n;i++)
sum+=a[x][i];
for(int i=1;i<=n;i++)
sum+=a[i][y];
return sum;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(a[i][j]!=0)
continue;
else if(ans0)
cout<
完结