【题目链接】:http://codeforces.com/contest/711/problem/B

【题意】

让你在矩阵中一个空白的地方填上一个正数;
使得这个矩阵两个对角线上的和;
每一行的和,每一列的和都相同;

【题解】

对于n=1的情况,任意输出一个数字就好;
对于n>1的情况;
先算出不包括空白格子的行的所有元素的和->he;
然后对于其他的可行的行和列,算出它们的和;
一旦与he不一样,直接输出-1无解;
然后包括空白格子的行和列,它们除了那个空白格子的和也要相同->设为sphe;
然后是对角线;
如果包括了空白格子,就先算出和;看看和sphe是不是一样;
如果不包括空白格子,算出的和直接与he比较;
两个对角线同理;
最后
sphe必须要小于he
即严格<不能相同
因为要为正数

【Number Of WA】

0

【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define ps push_back
#define fi first
#define se second
#define rei(x) cin >> x
#define pri(x) cout << x
#define ms(x,y) memset(x,y,sizeof x)typedef pair<int,int> pii;
typedef pair<LL,LL> pll;const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 510;LL a[N][N],hang[N],lie[N],he=-1;
int n,sx,sy;int main()
{//freopen("F:\\rush.txt","r",stdin);ios::sync_with_stdio(false);rei(n);if (n==1)return pri(1<<endl),0;rep1(i,1,n)rep1(j,1,n){rei(a[i][j]);if (!a[i][j])sx = i,sy = j;}rep1(i,1,n){LL temp = 0;rep1(j,1,n)temp+=a[i][j];hang[i] = temp;if (sx==i) continue;if (he==-1)he = temp;elseif (he!=temp)return pri(-1<<endl),0;}rep1(j,1,n){LL temp = 0;rep1(i,1,n)temp+=a[i][j];lie[j] = temp;if (sy==j) continue;if (he!=temp)return pri(-1<<endl),0;}bool in1 = false;LL he1 = 0;rep1(i,1,n){if (i==sx && i==sy) in1 = true;he1+=a[i][i];}if (!in1 && he1!=he) return pri(-1<<endl),0;if (in1 && he1!=hang[sx]) return pri(-1<<endl),0;bool in2 = false;LL he2 = 0;rep1(i,1,n){if (i==sx && n-i+1==sy) in2 = true;he2+=a[i][n-i+1];}if (!in2 && he2!=he) return pri(-1<<endl),0;if (in2 && he2!=hang[sx]) return pri(-1<<endl),0;if (hang[sx]<he){pri(he-hang[sx]);}elsepri(-1<<endl);//printf("\n%.2lf sec \n", (double)clock() / CLOCKS_PER_SEC);return 0;
}

转载于:https://www.cnblogs.com/AWCXV/p/7626444.html

【codeforces 711B】Chris and Magic Square相关推荐

  1. Codeforces Round #369 (Div. 2) B. Chris and Magic Square【数学,模拟】

    B. Chris and Magic Square time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  2. CodeForces - 711B Chris and Magic Square

    CodeForces - 711B  Chris and Magic Square   题意:给你一个N*N矩阵,其中0代表未知的那个数,让你在这个位置填上一个数使整个矩阵的 每一行.每一列.主对角线 ...

  3. 【CodeForces - 144C】Anagram Search(尺取,滑窗问题,处理字符串计数)

    题干: A string t is called an anagram of the string s, if it is possible to rearrange letters in t so ...

  4. 【CodeForces - 574B】Bear and Three Musketeers (枚举边,思维,优秀暴力)

    题干: Do you know a story about the three musketeers? Anyway, you will learn about its origins now. Ri ...

  5. 【CodeForces - 608C】Chain Reaction (二分 或 dp ,思维)

    题干: 题目大意: 题意是在一条直线上坐落着不同位置的灯塔,每一个灯塔有自己的power level,当作是射程范围.现在从最右边的灯塔开始激发,如果左边的灯塔在这个灯塔的范围之内,那么将会被毁灭.否 ...

  6. cf369 B Chris and Magic Square

    B. Chris and Magic Square time limit per test2 seconds memory limit per test256 megabytes inputstand ...

  7. 「一题多解」【CodeForces 85D】Sum of Medians(线段树 / 分块)

    题目链接 [CodeForces 85D]Sum of Medians 题目大意 实现一个setsetset,支持插入,删除,求∑a5k+3∑a5k+3\sum a_{5k+3}.注意,setsets ...

  8. B. Chris and Magic Square

    B. Chris and Magic Square time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  9. Chris and Magic Square

    Chris and Magic Square ZS the Coder and Chris the Baboon arrived at the entrance of Udayland. There ...

最新文章

  1. 强化学习(四)—— DQN系列(DQN, Nature DQN, DDQN, Dueling DQN等)
  2. elasticSearch6源码分析(5)gateway模块
  3. 深入理解分布式技术 - Paxos 算法解读
  4. tomcat(9)Session管理
  5. 4021-基于链地址法的散列表的删除(C++,附思路)
  6. GraphicsMagick+im4java图片处理
  7. 计算机网络数据链路层之点对点协议PPP
  8. poi 拆分带图片的word_POI导出简单的带有图片的Word文档
  9. ★★★★★手把手教你如何利用凤凰实现破 解后台权限以及升级固件(刷机)★★★★★
  10. 淘宝客APP源码社交电商uniapp开发源码前端源码自营商城
  11. 教孩子学编程_教孩子编程的10种工具
  12. dagre-d3 基于d3.js v4版本以上
  13. 自信满满,一路前行!
  14. 【计算机网络】(5)ping的过程分析+icmp协议
  15. 关于VMware: vmw_ioctl_command error Invalid argument.解决办法
  16. 【字符集】解决docker 容器中中文乱码问题
  17. 让curl支持IE代理
  18. 小程序上传文件报错uploadFile:fail url scheme is invalid,uploadFile:fail createUploadTask:fail Error: Invalid
  19. JavaSEDemo33
  20. 不装wine,你的.NET程序照样可以在Linux上运行!

热门文章

  1. IGMP Internet组管理协议 未完
  2. 《python3网络爬虫开发实战》第一章、开发环境配置-问题汇总
  3. Taurus.MVC 支持Asp.Net Core 的过程
  4. PHP ‘ext/soap/soap.c’权限许可和访问控制
  5. 简单module_深入理解JavaScript之全面解析Module模式
  6. Docker网络模型(八)
  7. 您试图打开以前版本的Microsoft Office创建的文件。注册表策略设置已阻止此文件在该版本中打开的解决办法
  8. Proxmox系列:简单实现虚拟机迁移
  9. Java反射之如何判断类或变量、方法的修饰符(Modifier解析)
  10. [验证码识别技术]-初级的滑动式验证图片识别