CF821 A. Okabe and Future Gadget Laboratory 水

Link

题意:询问n X n中非1数是否能够由同行同列中分别取两个数做和得到。

思路:水题。

/** @Date    : 2017-07-03 16:23:18
  * @FileName: A.cpp
  * @Platform: Windows
  * @Author  : Lweleth ([email protected])
  * @Link    : https://github.com/
  * @Version : $Id$
  */
#include <bits/stdc++.h>
#define LL long long
#define PII pair
#define MP(x, y) make_pair((x),(y))
#define fi first
#define se second
#define PB(x) push_back((x))
#define MMG(x) memset((x), -1,sizeof(x))
#define MMF(x) memset((x),0,sizeof(x))
#define MMI(x) memset((x), INF, sizeof(x))
using namespace std;

const int INF = 0x3f3f3f3f;
const int N = 1e5+20;
const double eps = 1e-8;

int n;
int a[60][60];
int main()
{
	while(cin >> n)
	{
		for(int i = 1; i <= n; i++)
		{
			for(int j = 1; j <= n; j++)
				scanf("%d", &a[i][j]);
		}
		int ans = 1;
		for(int i = 1; i <= n && ans; i++)
		{
			for(int j = 1; j <= n && ans; j++)
			{
				if(a[i][j] == 1)
					continue;
				int flag = 1;
				for(int k = 1; k <= n; k++)
				{
					if(j == k || a[i][k] >= a[i][j])
						continue;
					if(!flag)
						break;
					for(int l = 1; l <= n; l++)
					{
						if(!flag)
							break;
						if(l == i || a[i][k] + a[l][j] != a[i][j])
							continue;
						else
						{
							flag = 0;
							break;
						}
					}
				}
				if(flag)
				{
					//cout << i << j << endl;
					ans = 0;
					break;
				}

			}
		}
		printf("%s\n", ans?"Yes":"No");
	}
    return 0;
}
时间: 2024-12-18 06:28:05

CF821 A. Okabe and Future Gadget Laboratory 水的相关文章

Codeforces 821A Okabe and Future Gadget Laboratory 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:http://codeforces.com/problemset/problem/821/A 时间限制:2秒 空间限制:256M Okabe要改进他的实验室.实验室用一个n*n的正方形网格表示(n为正整数).他认为,一个“好实验室”的网格内每一个不等于1的数字都可以用同一行和同一列的某个数字之和表示.换句话说,对于任意x,y(1 ≤ x, y ≤ n 且 ax, y ≠ 1,),存在两个数s和t,使得ax, y = 

CF821 B. Okabe and Banana Trees 简单数学

Link 题意:给出一条直线,在直线上取一点,其垂直x,y轴作成一个,求矩阵中所有包含的点的x,y坐标之和的最大值. 思路:对于一个任意一点我们计算公式,对于任意一点$(x, y)$,有$(x+y)^2 + (x+y)(xy+1)$,枚举一个未知量,得另一个未知量向下取整即可. /** @Date : 2017-07-04 14:52:58 * @FileName: B 数学.cpp * @Platform: Windows * @Author : Lweleth ([email protect

CF821 D. Okabe and City 图 最短路

Link 题意:给出$n*m$大小的地图,已有$k$盏灯亮,人从左上角出发,右下角结束,期间必须走路灯点亮的地方,他可以在任意时刻消耗一枚硬币点亮一行或一列灯,他最多同时点亮一行或一列灯,要想点亮别的行列时,原先灯的状态将还原. 思路:看似很繁琐的题目,其实重点在于每次只能进行一次操作,那么只需要边走边考虑下一步到达的点即可.由于可任选行列,那么意味着下一个点只要和当前位置x和y坐标之差都不超过2,那么都能到达,在此情况上,坐标差之和为1说明相邻不需要消耗硬币,其余情况均消耗一枚硬币.跑个最短路

CF821 C. Okabe and Boxes 栈模拟

Link 题意:给出操作,如果当前出栈操作使得出栈序列非顺序,可以在此之前自由排序栈中所有数,问最少排几次. 思路:已经出栈到第x个元素时,每次需要排序的操作后,能够保证前x元素出栈有序,否则说明该操作序列根本无法做到有序出栈.所以碰到不合顺序的数,将栈中所有元素出栈一遍即可. /** @Date : 2017-07-04 15:21:52 * @FileName: C.cpp * @Platform: Windows * @Author : Lweleth ([email protected]

CF821 E. Okabe and El Psy Kongroo 矩阵快速幂

LINK 题意:给出$n$条平行于x轴的线段,终点$k$坐标$(k <= 10^{18})$,现在可以在线段之间进行移动,但不能超出两条线段的y坐标所夹范围,问到达终点有几种方案. 思路:刚开始以为限制只是到达线段上就必须沿线段走,后来才发现是要求走y坐标所夹范围,那么就简单多了,很容易看出是个递推形DP,然而数据量有点大,k为10的18次,一般转移显然不可行.由于是个递推,而且y坐标最大也只有15,故使用矩阵优化递推复杂度即可. /** @Date : 2017-07-04 16:06:18

Codeforces Round #420 (Div. 2) A-E

本来打算划划水洗洗睡了,突然听到这次的主人公是冈部伦太郎 石头门(<steins;gate>)主题的比赛,岂有不打之理! 石头门真的很棒啊!人设也好剧情也赞曲子也特别好听. 推荐http://music.163.com/#/m/song?id=26259014&userid=115264555 (强行跑题) Okabe and Future Gadget Laboratory O(n^4)暴力妥妥的 1 #include<iostream> 2 #include<al

Codeforces Round #420 (Div. 2)

/****************************************************************************************************************** 因为发现不敲题会变蠢...所以没事还是做两道题吧.... 很久没做过题然后发现C和E全都是因为没用LL给卡住了......  我真的是太蠢了 ***************************************************************

Codeforces Round #420 A题翻译(17.6.25)

A.Okabe and Future Gadget Laboratory Okabe和未来科技实验室 时间限制:两秒 空间限制:256M 输入:标准输入 输出:标准输出 Okabe要改进他的实验室.实验室用一个n*n的正方形网格表示(n为正整数).他认为,一个“好实验室”的网格内每一个不等于1的数字都可以用同一行和同一列的某个数字之和表示.换句话说,对于任意x,y(1 ≤ x, y ≤ n 且 ax, y ≠ 1,),存在两个数s和t,使得ax, y = ax, s + at, y,其中ai, 

Codeforces Round #420 A

Okabe and Future Gadget Laboratory 题意:给一个矩阵,如果矩阵中任意一个不为1的数都满足 存在一对 s t 使得 ais+atj=aij 思路:xjb暴力写 AC代码: #include "iostream" #include "string.h" #include "stack" #include "queue" #include "string" #include &q