1572. 【基础赛】涂色(paint)
(Input: paint.in, Output: paint.out)
时间限制: 2 s 空间限制: 256 MB 具体限制
题目描述
Introl获得了一个N行的杨辉三角,他将每行中值为奇数的位置涂为了黑色。
Chihiro将提出M次询问,在第L行第R个位置是否被涂成黑色,请你回答 Yes 或 No。
输入
从文件 paint.in
中读入数据。
第一行两个整数N和M。
接下来M行,每行给出L,R表示一组询问。
输出
输出到文件 paint.out
中。
共M行,每行输出 Yes 或 No。
样例数据
输入 #1
3 2 2 2 3 2
输出 #1
Yes No
数据范围限制
对于30% 的数据,1≤N,M≤50。
对于100% 的数据,1≤N≤4000,1≤M≤106。
提示
构成的杨辉三角为:
1
1 1
1 2 1
除第三行第二个位置外,其余位置均被涂为黑色。
#include<bits/stdc++.h>
using namespace std;
void print(bool a)//输出函数
{
if(a)printf("Yes\n");//真输出Yes
else printf("No\n");//假输出No
}
bool a[10000][10000];//杨辉三角
int n,m;//n行,m次询问
int main()
{
freopen("paint.in","r",stdin);//文件输入
freopen("paint.out","w",stdout);//文件输出
scanf("%d%d",&n,&m);//输入
a[1][1]=1;//第一个位置为1
for(int i=2;i<=n;i++)for(int j=1;j<=i;j++)a[i][j]=(a[i-1][j]+a[i-1][j-1])%2;//计算杨辉三角的值(0||1)
for(int i=1;i<=m;i++)//询问
{
int x,y;//位置
scanf("%d%d",&x,&y);//输入
print(a[x][y]);//输出
}
}