题目大意:在num[i][j]==0处填一个数使每行,每列,对角线的和相同,若果有多种答案输出一种。

题目思路:模拟

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<stdio.h>
#include<stdlib.h>
#include<queue>
#include<math.h>
#include<map>
#define INF 0xffffffff
#define MAX 505
#define Temp 1000000000
#define MOD 1000000007
#define LL long long
#define PI acos(-1) using namespace std; long long num[MAX][MAX]; long long change(int n,int x,int y)
{
long long k=,sum1=,sum2=,sum3=,sum4=,sum=;
int op1=,op2=;
for(int i=; i<=n; i++)
{
if(i!=x)
{
for(int j=; j<=n; j++)
k+=num[i][j];
break;
}
}
for(int i=; i<=n; i++)
{
sum=;
if(i==x)
{
for(int j=; j<=n; j++)
sum1+=num[i][j];
continue;
}
for(int j=; j<=n; j++)
{
sum+=num[i][j];
}
if(sum!=k)
return -;
} for(int i=; i<=n; i++)
{
sum=;
if(i==y)
{
for(int j=; j<=n; j++)
sum2+=num[j][i];
continue;
}
for(int j=; j<=n; j++)
{
sum+=num[j][i];
}
if(sum!=k)
return -;
}
if(x==y && x==(n+)/ && n%!=)
{
for(int i=; i<=n; i++)
{
sum3+=num[i][i];
sum4+=num[i][n-i+];
}
long long a=k-sum1;
long long b=k-sum2;
long long c=k-sum3;
long long d=k-sum4;
if(a!=b || a!=c || a!=d || b!=c || b!=d || c!=d)
return -;
else if(a<)
return -;
return a;
}
for(int i=; i<=n; i++)
{
if(num[i][i]==)
{
op1=;
}
sum3+=num[i][i];
if(num[i][n+-i]==)
{
op2=;
}
sum4+=num[i][n+-i];
}
if(op1== && sum3!=k)
return -;
if(op2== && sum4!=k)
return -;
if(op1)
{
long long c=k-sum3;
long long a=k-sum1;
long long b=k-sum2;
if(a!=b || a!=c || b!=c)
return -;
else if(a < )
return -;
return a;
}
if(op2)
{
long long c=k-sum4;
long long a=k-sum1;
long long b=k-sum2;
if(a!=b || a!=c || b!=c)
return -;
else if(a < )
return -;
return a;
}
long long a=k-sum1;
long long b=k-sum2;
if(a!=b || (a==b && a<))
return -;
return a;
} int main()
{
int n,x,y;
while(scanf("%d",&n)!=EOF)
{
memset(num,,sizeof(num));
for(int i=; i<=n; i++)
{
for(int j=; j<=n; j++)
{
scanf("%lld",&num[i][j]);
if(num[i][j]==)
{
x=i;
y=j;
}
}
}
if(n==)
{
printf("2\n");
continue;
}
long long ok=change(n,x,y);
printf("%lld\n",ok);
}
return ;
}

711B - Chris and Magic Square 模拟的更多相关文章

  1. 【模拟】Codeforces 711B Chris and Magic Square

    题目链接: http://codeforces.com/problemset/problem/711/B 题目大意: N*N的矩阵,有且只有一个0,求要把这个矩阵变成幻方要填什么正数.无解输出-1.幻 ...

  2. codeforces 711B - Chris and Magic Square(矩阵0位置填数)

    题目链接:http://codeforces.com/problemset/problem/711/B 题目大意: 输入 n ,输入 n*n 的矩阵,有一个占位 0 , 求得将 0 位置换成其他的整数 ...

  3. CodeForces 711B Chris and Magic Square (暴力,水题)

    题意:给定n*n个矩阵,其中只有一个格子是0,让你填上一个数,使得所有的行列的对角线的和都相等. 析:首先n为1,就随便填,然后就是除了0这一行或者这一列,那么一定有其他的行列是完整的,所以,先把其他 ...

  4. CodeForces 711B Chris and Magic Square

    简单题. 找一个不存在$0$的行,计算这行的和(记为$sum$),然后就可以知道$0$那个位置应该填的数字(记为$x$). 如果$x<=0$,那么无解,否则再去判断每一行,每一列以及两个斜对角的 ...

  5. CF 711B - Chris and Magic Square

    挺简单的一道题,但是做的时候没想好就开始写代码了,导致迷之WA,还是要多练习啊. #include <iostream> #include <cstdio> #include ...

  6. codeforces 711B B. Chris and Magic Square(水题)

    题目链接: B. Chris and Magic Square 题意: 问在那个空位子填哪个数可以使行列对角线的和相等,就先找一行或者一列算出那个数,再验证是否可行就好; AC代码: #include ...

  7. Codeforces Round #369 (Div. 2) B. Chris and Magic Square 水题

    B. Chris and Magic Square 题目连接: http://www.codeforces.com/contest/711/problem/B Description ZS the C ...

  8. Codeforces Round #369 (Div. 2) B. Chris and Magic Square (暴力)

    Chris and Magic Square 题目链接: http://codeforces.com/contest/711/problem/B Description ZS the Coder an ...

  9. Chris and Magic Square CodeForces - 711B

    ZS the Coder and Chris the Baboon arrived at the entrance of Udayland. There is a n × n magic grid o ...

随机推荐

  1. angular js一探

    下一代angular js. 概念:mvc:作为dataModel的$scope. 还必须导入angular的库. ng-app:告诉angular引擎从这里开始是他因该管理的内容.(引入之后,可以在 ...

  2. mysql5.5修改字符编码

    因为mysql版本问题,网上各种修改编码的方法都不行,最后找到下面这条,终于解决! [mysqld]下添加: character-set-server=utf8 collation-server=ut ...

  3. 【实验室笔记】zedgraph控件属性总结

    //图表的X轴刻度线是否显示 this.zedGraphControl1.GraphPane.XAxis.MajorGrid.IsVisible = true; //图表的X轴刻度线的颜色 this. ...

  4. 【Python之路】第三篇--Python基本数据类型

    运算符 1.算数运算: # 在py2的 取整除运算中 9//2 = 4.0 # 引入 from __future__ import division 9//2 = 4.5 # py3中不需要! 2.比 ...

  5. vue router 只需要这么几步

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. fidder https以及Fiddler抓取HTTPS协议

    一.浅谈HTTPS 我们都知道HTTP并非是安全传输,在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的.目前越来越多的企业选择使用HTTPS协议与用户进行通信,如百度.谷歌等. ...

  7. 搭建属于你自己的RAMOS系统 – WIN7+VHD+GURB map方式

    前段时间加了一个内存条,将笔记本内存升级到了6G,由于之前用的是32位的win7不可以直接使用6G内存,便装了64位的系统.网上找资源的时候发现,大内存可以使用RamOS,从内存中虚拟出来一个硬盘,然 ...

  8. 一个例子让你了解Java反射机制

    本文来自:blog.csdn.net/ljphhj JAVA反射机制: 通俗地说,反射机制就是可以把一个类,类的成员(函数,属性),当成一个对象来操作,希望读者能理解,也就是说,类,类的成员,我们在运 ...

  9. dropdown-toggle 的点击禁用

    <div class="dropdown select-dropdown" id="choiceTagdiv"> <a class=" ...

  10. 对adapter的封装优化

    一般不优化的adapter通常继承自BaseAdapter会出现一下几个问题: getCount(), getItem(), getItemId()代码都要去重写,一个adapter还行,如果adap ...