CF 711B - Chris and Magic Square
挺简单的一道题,但是做的时候没想好就开始写代码了,导致迷之WA,还是要多练习啊。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <set>
#define LL long long int
using namespace std;
LL Map[][];
int main() {
cin.sync_with_stdio(false);
int n;
while(cin>>n)
{
int x,y;
LL sumy[],sumx[],sum[]={,};
for(int i=;i<n;i++)
{
sumy[i]=sumx[i]=;
for(int j=;j<n;j++)
{
cin>>Map[i][j];
if(Map[i][j]==)
y=i,x=j;
}
}
//特判1
if(n==)
{
cout<<<<endl;
continue;
}
for(int i=;i<n;i++)
for(int j=;j<n;j++)
{
sumx[j]+=Map[i][j],sumy[i]+=Map[i][j];
if(i==j)
sum[]+=Map[i][j];
if(i==(n-j-))
sum[]+=Map[i][j];
}
set<LL> s;
set<LL>::iterator it;
LL flag=,more=,less=;
s.insert(sum[]),s.insert(sum[]);
for(int i=;i<n;i++)
s.insert(sumx[i]),s.insert(sumy[i]);
if(s.size()>)//超过两种就GG
flag=;
if(s.size()==)//保证和0点关联的都是较小的反之较大
{
it=s.begin();
more=*it;
it++;
less=*it;
if(more<less)
swap(more,less);
for(int i=;i<n;i++)
{
if(i==x)
{
if(sumx[i]!=less)
flag=;
}
else
if(sumx[i]!=more)
flag=;
if(i==y)
{
if(sumy[i]!=less)
flag=;
}
else
if(sumy[i]!=more)
flag=;
}
if(x==y)
{
if(sum[]!=less)
flag=;
}
else
if(sum[]!=more)
flag=;
if(x==n-y-)
{
if(sum[]!=less)
flag=;
}
else
if(sum[]!=more)
flag=;
}
else if(s.size()==)//0点必须在中心
{
if(n%!=||x!=n/||y!=n/)
flag=;
}
if(flag)
cout<<more-less<<endl;
else
cout<<-<<endl;
}
return ;
}
CF 711B - Chris and Magic Square的更多相关文章
- codeforces 711B - Chris and Magic Square(矩阵0位置填数)
题目链接:http://codeforces.com/problemset/problem/711/B 题目大意: 输入 n ,输入 n*n 的矩阵,有一个占位 0 , 求得将 0 位置换成其他的整数 ...
- CodeForces 711B Chris and Magic Square (暴力,水题)
题意:给定n*n个矩阵,其中只有一个格子是0,让你填上一个数,使得所有的行列的对角线的和都相等. 析:首先n为1,就随便填,然后就是除了0这一行或者这一列,那么一定有其他的行列是完整的,所以,先把其他 ...
- 【模拟】Codeforces 711B Chris and Magic Square
题目链接: http://codeforces.com/problemset/problem/711/B 题目大意: N*N的矩阵,有且只有一个0,求要把这个矩阵变成幻方要填什么正数.无解输出-1.幻 ...
- 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 ...
- 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 ...
随机推荐
- FastDFS单节点安装 & FastDFS+Nginx整合
安装环境 FastDFS_v5.05.tar.gz(http://sourceforge.net/projects/fastdfs/files/) fastdfs-nginx-module ...
- mysql事务(一)——redo log与undo log
数据事务 即支持ACID四大特性. A:atomicity 原子性——事务中所有操作要么全部执行成功,要么全部执行失败,回滚到初始状态 C:consistency 一致性—— ...
- 生成word附件和word域动态赋值
生成word文档和word域动态赋值,很多时候需要生成这样的word文档供下载和打印,先制作一个包含了域的 word的模板附件,放在服务器端或者字节流存入数据库,以供需要的时候代码可以获取到,如: 其 ...
- 20165207 Exp4 恶意代码分析
目录 1.实验内容 1.1.系统运行监控 1.1.1.使用命令行创建计划任务 1.1.2.使用命令行借助批处理文件创建计划任务 1.1.3.分析netstat计划任务的最终结果 1.1.4.安装配置s ...
- IEEE发布2017年编程语言排行榜:Python高居首位,java第三,php第八
2017年7月18日,IEEE Spectrum 发布了第四届顶级编程语言交互排行榜.因为有各种不同语言的排行,所以 IEEE Spectrum 依据不同的变量对流行度进行了排行.据 IEEE Spe ...
- linux 判断文件最后更新时间 实现监控日志是否有输出功能
linux 判断文件最后更新时间 实现监控日志是否有输出功能. 需求:监控log.txt日志文件,超过一分钟没输出内容就认为是停了,则自动启动程序. 用stat 可以看文件的更新时间stat -c % ...
- 01: tornado基础篇
目录:Tornado其他篇 01: tornado基础篇 02: tornado进阶篇 03: 自定义异步非阻塞tornado框架 04: 打开tornado源码剖析处理过程 目录: 1.1 Torn ...
- 01: Django基础篇
目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...
- 某模拟题(USACO部分题+noip2005部分题)
题目描述 农场上有N(1 <= N <= 50,000)堆草,放在不同的地点上.FJ有一辆拖拉机,也在农场上.拖拉机和草堆都表示为二维平面上的整数坐标,坐标值在1..1000的范围内.拖拉 ...
- ubuntu 把软件源修改为国内源和更新
1. 备份原始文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup 2. 修改文件并添加国内源 vi /etc/apt/sourc ...