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 ...
随机推荐
- js获取上传的文件并用ajax提交
<form id="form1" name="form1" encType="multipart/form-data" method= ...
- CMY/CMYK 打印机色彩
CMY 发光物体和反光物体产生颜色的机制不同. 前者指光源光, 它的颜色由发光波长决定. 后者指不能发光但却能表现出颜色的物体, 例如色素. 色素的颜色由它不能吸收的光的波长决定. 比如红色色素, 除 ...
- web前端开发必懂之一:JS继承和继承基础总结
首先,推荐一篇博客豪情的博客JS提高: http://www.cnblogs.com/jikey/p/3604459.html ,里面的链接全是精华, 一般人我不告诉他; 我们会先从JS的基本的设计模 ...
- Java Decompiler 反编译工具下载地址及JD-Eclipse设置菜单翻译
官网地址:http://jd.benow.ca/ JD-GUI:jd-gui-0.3.6.windows.zip JD-Eclipse:jd-eclipse-site-1.0.0-RC2.zip 菜单 ...
- 获取登陆ip
想获取用户的ip, 在vendor\yiisoft\yii2\web\User.php的login中看到 $ip = Yii::$app->getRequest()->getUserIP( ...
- php验证登录
<html><head> <title></title> <meta charset="utf-8"></head ...
- JVM学习笔记:字节码执行引擎
JVM学习笔记:字节码执行引擎 移步大神贴:http://rednaxelafx.iteye.com/blog/492667
- 【BZOJ-1568】Blue Mary开公司 李超线段树 (标记永久化)
1568: [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 557 Solved: 192[Submit ...
- 【poj2478】 Farey Sequence
http://poj.org/problem?id=2478 (题目链接) 题意 求分母小于等于n的真分数的个数. Solution 现在只能做做水题了,唉,思维僵化. 细节 前缀和开LL 代码 // ...
- NOIP2014
DAY1 生活大爆炸版石头剪刀布 直接模拟即可. // codevs3716 #include<algorithm> #include<iostream> #include&l ...