codeforces #369div2 B. Chris and Magic Square
2024-08-24 08:09:20
题目:在网格某一处填入一个正整数,使得网格每行,每列以及两条主对角线的和都相等
题目链接:http://codeforces.com/contest/711/problem/B
分析:题目不难,找到要填的那个数填进去,然后循环比较每行每列以及对角线的和是否相等,题目提交上去卡了几次要注意几点
注意:1.答案数据范围$1\leq x \leq 1e18$,要用 long long
2.特殊情况,$n \equiv 1$时,由于一定有要填的数,所以一定有解
3.反正就是要注意看清楚题目和数据边界情况处理啦
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long mp[][];
long long row[],col[];
int main()
{
int n;
scanf("%d",&n);
memset(row,,sizeof(row));
memset(col,,sizeof(col));
int x,y;
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
{
scanf("%d",&mp[i][j]);
if(mp[i][j]==)
{
x=i;y=j;
}
row[i]+=mp[i][j];
col[j]+=mp[i][j];
}
}
bool is=;
if(x==)
{
mp[x][y]=row[]-row[];
row[x]+=mp[x][y];
col[y]+=mp[x][y];
if(col[]!=row[])
is=;
else
{
for(int i=;i<n;i++)
{
if(row[i]!=row[])
{
is=;break;
}
if(col[i]!=col[])
{
is=;break;
}
}
}
}
else
{
mp[x][y]=row[]-row[x];
row[x]+=mp[x][y];
col[y]+=mp[x][y];
if(col[]!=row[])
is=;
else
{
for(int i=;i<n;i++)
{
if(row[i]!=row[])
{
is=;break;
}
if(col[i]!=col[])
{
is=;break;
}
}
}
}
long long dia1=,dia2=;
for(int i=,j=n-;(i<n&&j>=);i++,j--)
{
dia1+=mp[i][i];
dia2+=mp[i][j];
}
if(dia1!=row[])
is=;
else if(dia2!=dia1)
is=;
if(n==) //注意特判
cout<<""<<endl;
else if(is&&mp[x][y]>=) //注意答案要>=1
cout<<mp[x][y]<<endl;
else
cout<<"-1"<<endl;
return ;
}
最新文章
- LInux MySQL 数据库 的一些操作
- jstl标签用法
- 用java实现冒泡排序法
- 杀死future处理的阻塞线程
- 什么是IntelAMT
- CSU OJ PID=1514: Packs 超大背包问题,折半枚举+二分查找。
- mysql中php生成唯一ID
- Redis常见问题及处理方法
- Telecasting station - SGU 114(带劝中位数)
- Synopsys逻辑工艺库
- pthread_mutex_init &; 互斥锁pthread_mutex_t的使用
- 【关于微软的上一代模板引擎 T4引擎】
- VC++实现生成右键菜单及添加图标
- Unity 压缩texture
- 针对单个 js 文件禁用 ESLint 语法校验
- elk安装配置
- 如何把网址配置为http和https可以同时访问
- olivettifaces数据集实现人脸识别代码
- windows nginx出现 was not signaled for 5s的看过来
- Webkit内核探究【2】——Webkit CSS实现
热门文章
- Thinkphp批量添加数据
- scoi 2008 &;&; bzoj 1076 奖励关
- 20161013001 DataGridView 数据转 DataTable
- Topcoder SRM 683 Div2 - C
- 华为5700s配置链路聚合
- 后台调取前台js中的函数
- ListView 刷新加载控件
- 解迷宫的C++的未完善编程代码........请大神们帮忙改善下.........
- css伪类的展现
- Hibernate学习笔记(一)