可做题1(Code+第二次网络赛)

来源:互联网 发布:网络犯罪举报中心 编辑:程序博客网 时间:2024/05/21 08:37

题目背景

“codeplus比赛的时候在做什么?有没有空?能来解决停机问题吗?”qmqmqm这样问sublinekelzrip。

当然,sublinekelzrip并不会停机问题,所以qmqmqm改为提出了另一个题目,现在请你帮助sublinekelzrip解决这个题目。

题目描述

这个问题是这样的:

对于任何一个n阶方阵,若任意从其中选择n个不同行不同列的位置,其上的权值之和均相等,则我们称这个矩阵是巧妙的。注意对于n=1的任何矩阵都是巧妙的。例如矩阵1amp;2amp;3\4amp;5amp;6\7amp;8amp;9是巧妙的,因为1+5+9=1+6+8=2+4+9=2+6+7=3+5+7=3+4+8=15,而矩阵1amp;2\2amp;1不巧妙,因为1+12+2

现在有一个n×m大小的矩阵M以及T个询问,每次询问其一个子方阵是否是巧妙的。

输入格式

从标准输入读入数据。

输入第一行包含三个正整数n,m,T

之后n行每行m个空格分割的非负整数,表示矩阵M

之后T行每行3个正整数x,y,k,表示询问第x行第y列为左上角的k阶方阵是否是巧妙的。保证这个矩阵完全位于M之中。

输出格式

输出到标准输出。

输出包含T行每行一个字符Y或者NY表示被询问的方阵是巧妙的,N表示不是。

样例1输入

3 3 41 1 11 1 11 1 21 1 21 1 32 2 22 1 2

样例1输出

YNNY

子任务

测试点max(n,m)T其他1=5=5无2=100=20345=50067=100000矩阵M的元素在值域内等概率随机8无910

对于所有的数据,0Mij1091xn,1ym


分析:

这道题和之前hu测的T2有点像

通过手玩,我们可以发现:
一个合法的大矩阵中任意一个子矩阵都满足条件

实际上我们也可以把一个大矩阵拆成若干个2*2的小矩阵
判断每个小矩阵是否符合条件

暴力判断即可

//这里写代码片#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int N=505;int a[N][N],n,m,Q,x,y,nn;int solve(int x,int y,int n){    for (int i=x;i<x+n-1;i++)        for (int j=y;j<y+n-1;j++)            if (a[i][j]+a[i+1][j+1]!=a[i][j+1]+a[i+1][j]) return 0;    return 1;}int main(){    memset(sum,0,sizeof(sum));    scanf("%d%d%d",&n,&m,&Q);    for (int i=1;i<=n;i++)        for (int j=1;j<=m;j++)        {            int x;            scanf("%d",&a[i][j]);            sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+x;        }    for (int i=1;i<=Q;i++)    {        scanf("%d%d%d",&x,&y,&nn);        if (solve(x,y,nn)) printf("Y\n");        else printf("N\n");    }    return 0;}
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 扁桃体反复发炎化脓 孩子扁桃体发炎化脓怎么办 儿童扁桃体发炎化脓 蛇王化蛇身钻入花瓣 蜕蛇化龙 化蛇 云南3起化骨蛇事件 西游之蛇化龙成圣 蛇蟒化龙 珺子如钰 蛇骨手链包浆玉化图片 国色生枭之佞蛇化蛟 化蝶 梁祝化蝶 化蝶简谱 化蝶原唱 化蝶歌词 梁祝化蝶简谱 化蝶歌曲原唱 梁祝化蝶原唱 化蝶歌曲 化蝶飞 钢琴曲化蝶 梁祝化蝶小提琴 谁把化蝶写成碑是哪首歌的词 化蝶歌谱 梁祝化蝶原唱及歌词 歌曲梁祝化蝶原唱 化蝶铃声下载 化装步骤 化装的意思 影视化装 京剧化装 万圣节化装舞会 化妆学习班 化妆学校学费 学盘头化妆 化妆速成班 彩妆学习班 化妆学徒 学习盘头化妆 新娘化妆跟妆