codeforces 711B - Chris and Magic Square(矩阵0位置填数)
题目链接:http://codeforces.com/problemset/problem/711/B
题目大意:
输入 n ,输入 n*n 的矩阵,有一个占位 0 , 求得将 0 位置换成其他的整数 使得矩阵 行列斜 和全部相等。
代码状态:
一把辛酸泪

2016.09.24 8:14 再次更新 DOWN 【昨天晚上的‘杯具’要谨记,做题要看懂题,看清题的要求再做,切记、切记、切记】
补解题思路:
1.
1.1 先特殊判断 n 是否==1,如果等于 1 则直接输出 1 即可
1.2 如果 n > 1 判断 0 的位置在哪个位置,找一个要填入到0位置的数。
如果 0 在第一行,那么用第二行的和 减去 第一行的和,便是要填入的值.
如果 0 在最后一行,那么用倒数第二行的和 减去 最后一行的和,便是要填入的值.
其他的 则 0 在中间位置 ,那么可以用 前一行或者后一行的和 减去 0 所在的和,便是要填入的值.
(用列减也可以)
【看清题意,如果填入的值 <1 则输出 -1】
2.
将要填入的值填到 0 的位置 进行全部的扫描判断即可。全盘的扫描不在解释。
AC Code:
#include<bits/stdc++.h>
using namespace std;
const int N=+;
typedef long long ll;
ll na[N][N];
int check(int n)
{
ll ans=,ans1=;
int i,j;
for(i=; i<=n; i++)
ans+=na[][i],ans1+=na[i][];
if(ans!=ans1)
return ;
ans1=;
ll ans2=;
for(i=; i<=n; i++)
{
for(j=; j<=n; j++)
ans1+=na[i][j], ans2+=na[j][i];
if(ans!=ans2||ans1!=ans2||ans!=ans1)
return ;
ans1=ans2=; }
ans1=ans2=;
for(i=; i<=n; i++)
{
for(j=; j<=n; j++)
if(i==j)
ans1+=na[i][j],ans2+=na[i][n-i+];
}
if(ans!=ans2||ans1!=ans2||ans!=ans1)
return ;
return ;
}
int main()
{
int n;
while(~scanf("%d",&n))
{
int i,j;
if(n==)
{
scanf("%d",&n);
printf("1\n");
continue;
}
int x,y;
for(i=; i<=n; i++)
for(j=; j<=n; j++)
{
scanf("%d",&na[i][j]);
if(na[i][j]==)x=i,y=j;
}
ll ans=,ans1=;
if(x==)
{
for(i=; i<=n; i++)
ans+=na[][i],ans1+=na[][i];
na[x][y]=ans1-ans;
}
else if(x==n)
{
for(i=; i<=n; i++)
ans+=na[n][i],ans1+=na[n-][i];
na[x][y]=ans1-ans;
}
else
{
for(i=; i<=n; i++)
ans+=na[x][i],ans1+=na[x-][i];
na[x][y]=abs(ans1-ans);
} if(check(n))
printf("%I64d\n",na[x][y]<?-:na[x][y]);
else printf("-1\n");
}
return ;
}
codeforces 711B - Chris and Magic Square(矩阵0位置填数)的更多相关文章
- 【模拟】Codeforces 711B Chris and Magic Square
题目链接: http://codeforces.com/problemset/problem/711/B 题目大意: N*N的矩阵,有且只有一个0,求要把这个矩阵变成幻方要填什么正数.无解输出-1.幻 ...
- CodeForces 711B Chris and Magic Square (暴力,水题)
题意:给定n*n个矩阵,其中只有一个格子是0,让你填上一个数,使得所有的行列的对角线的和都相等. 析:首先n为1,就随便填,然后就是除了0这一行或者这一列,那么一定有其他的行列是完整的,所以,先把其他 ...
- CodeForces 711B Chris and Magic Square
简单题. 找一个不存在$0$的行,计算这行的和(记为$sum$),然后就可以知道$0$那个位置应该填的数字(记为$x$). 如果$x<=0$,那么无解,否则再去判断每一行,每一列以及两个斜对角的 ...
- 711B - Chris and Magic Square 模拟
题目大意:在num[i][j]==0处填一个数使每行,每列,对角线的和相同,若果有多种答案输出一种. 题目思路:模拟 #include<iostream> #include<algo ...
- CF 711B - Chris and Magic Square
挺简单的一道题,但是做的时候没想好就开始写代码了,导致迷之WA,还是要多练习啊. #include <iostream> #include <cstdio> #include ...
- codeforces 711B B. Chris and Magic Square(水题)
题目链接: B. Chris and Magic Square 题意: 问在那个空位子填哪个数可以使行列对角线的和相等,就先找一行或者一列算出那个数,再验证是否可行就好; AC代码: #include ...
- 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 ...
- 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 ...
- 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 ...
随机推荐
- myeclipse 连接svn服务器验证位置时发生错误 404 forbidden
来源于:https://my.oschina.net/softwarechina/blog/220300 网上有文章说是C:\Users\thinkpad\AppData\Roaming\Subver ...
- android 监听短信并发送到服务器
1. 接受系统的短信广播,操作短信内容. 优点:操作方便,适合简单的短信应用. 缺点:来信会在状态栏显示通知信息. 2. 应用观察者模式,监听短信数据库,操作短信内容. 实例如下: SystemE ...
- 【UOJ #29】【IOI 2014】holiday
http://uoj.ac/problem/29 cdq四次处理出一直向左, 一直向右, 向左后回到起点, 向右后回到起点的dp数组,最后统计答案. 举例:\(fi\)表示一直向右走i天能参观的最多景 ...
- 对TCP/IP网络协议的深入浅出归纳
前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑.主要是因为对网络协议不太熟悉,对一些概念也没弄清楚.后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网 ...
- python3 异常处理
什么是异常 Python用异常对象(exception object)来表示异常情况.遇到错误会引发异常,如果异常对象未被处理或者捕捉,程序就会用回溯(traceback)终止执行. Raise语句: ...
- Java中Unicode的编码和实现
Unicode的编码和实现 大概来说,Unicode编码系统可分为编码方式和实现方式两个层次. 编码方式 字符是抽象的最小文本单位.它没有固定的形状(可能是一个字形),而且没有值.“A”是一个字符,“ ...
- 【caffe】create_cifar10.sh在windows下解决方案
@tags caffe python windows下配置caffe后,create_cifar10.sh无法执行,因为是shell脚本.那就看懂脚本意思,用python重写一个: # create_ ...
- LINQ语法记录
static void Main(string[] args) { List<Person> persons = new List<Person>(); persons.Add ...
- POI2007_zap 莫比乌斯反演
题意:http://hzwer.com/4205.html 同hdu1695 #include <iostream> #include <cstring> #include & ...
- php des 加密解密实例
des加密是对称加密中在互联网应用的比较多的一种加密方式,php 通过mcrypt扩展库来支持des加密,要在Php中使用des加密,需要先安装mcrypt扩展库 $iv_size = mcrypt_ ...