冲刺Noip2017模拟赛8 解题报告——五十岚芒果酱
1、鼎纹
【问题描述】
据说鼎纹的 种制造 式是 铜模印出来的,这是我国古代劳动 智慧
的结晶。铜模印过的地 ,会留下深深的印记,经过时间的炼化,洗
练成历史的遗存。
聪明的古代劳动人民拥有一个 a 行 b 列的铜模,每个位置要么是 (代表
这个点是平的),要么是 (代表这个点是凸起的)。他们想造 个 n 行 m 列
的鼎 ,其中每个位置也都是 或 ,表示经过若干 次印后,每个位置的结果。
有一些要求。铜模是不能旋转和翻转的;在印的过程当中,铜模的凸起不
能出现在鼎面的外面(平的部分是可以出现在外面的),鼎面上的同一个位置
不能被多个凸起印下(在任意两次印时,鼎面上不存在一个点,使得这两次都
有铜模上为 的点覆盖它)。
请你判断这个鼎面能不能被印出来。
【输入格式】
输入文件件名为 grain.in。
本题多测。
第一行,一个整数 T ,表示测试
点数量。接下来 T 个测试点,每
个测试点中:
第一行包含 个整数 n,m,a,b。
接下来 n 行 ,每行 m 个字符,描述鼎面 。“”表示
平,“”表示凸起。接下来 a 行,每行 b 个字符,
描述铜模。“”表示平,“”表示凸起。
【输出格式】
输出 件名为 grain.out。
共有 T 行 ,对于每个测试点,输出 “YES”(能)或“NO”(不能)。
【样例】
grain.in grain.out
YES
NO
【数据规模与约定】
对于 % 的数据,n,m,a, b <= 。
对于 % 的数据, <= T <=; <=n,m, a, b <= 。
【问题描述】
据说鼎纹的 种制造 式是 铜模印出来的,这是我国古代劳动 智慧
的结晶。铜模印过的地 ,会留下深深的印记,经过时间的炼化,洗
练成历史的遗存。
聪明的古代劳动人民拥有一个 a 行 b 列的铜模,每个位置要么是 (代表
这个点是平的),要么是 (代表这个点是凸起的)。他们想造 个 n 行 m 列
的鼎 ,其中每个位置也都是 或 ,表示经过若干 次印后,每个位置的结果。
有一些要求。铜模是不能旋转和翻转的;在印的过程当中,铜模的凸起不
能出现在鼎面的外面(平的部分是可以出现在外面的),鼎面上的同一个位置
不能被多个凸起印下(在任意两次印时,鼎面上不存在一个点,使得这两次都
有铜模上为 的点覆盖它)。
请你判断这个鼎面能不能被印出来。
【输入格式】
输入文件件名为 grain.in。
本题多测。
第一行,一个整数 T ,表示测试
点数量。接下来 T 个测试点,每
个测试点中:
第一行包含 个整数 n,m,a,b。
接下来 n 行 ,每行 m 个字符,描述鼎面 。“”表示
平,“”表示凸起。接下来 a 行,每行 b 个字符,
描述铜模。“”表示平,“”表示凸起。
【输出格式】
输出 件名为 grain.out。
共有 T 行 ,对于每个测试点,输出 “YES”(能)或“NO”(不能)。
【样例】
grain.in grain.out
YES
NO
【数据规模与约定】
对于 % 的数据,n,m,a, b <= 。
对于 % 的数据, <= T <=; <=n,m, a, b <= 。
题目
tag:模拟
思路:题意一定要看懂哦。用铜模的1去消除鼎的1,铜模的每个1都必须找到对应的,最后要保证鼎的1被消完。暴力模拟能拿60分。通过观察我们发现,这个题目跟0没有什么关系,所以只要记录1的位置。那么消除呢,必须是两个矩阵偏左上角的1为起始点,如果不这样,就会有左上方多余的1没被消除。每次默认这两个1必须对上,然后用之前记录的铜模其他的1与起始1的相对位置去找。记得每行读入整个字符串不然scanf("%c")会T。
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<cmath>
#define maxn 1010
using namespace std;
int T,n,m,a,b,cnt1,cnt2,mp[maxn][maxn],x[maxn*maxn],y[maxn*maxn],X[maxn*maxn],Y[maxn*maxn];
char ch[maxn];
void init()
{
for(int i=;i<=n;++i)
for(int j=;j<=m;++j)
mp[i][j]=;
for(int i=;i<=cnt1;++i) x[i]=y[i]=;
for(int i=;i<=cnt2;++i) X[i]=Y[i]=;
cnt1=cnt2=;
}
bool check(int xx,int yy)
{
mp[xx][yy]=;
for(int i=;i<=cnt2;++i){
int XX=xx+X[i],YY=yy+Y[i];
if(XX<||XX>n||YY<||YY>m||!mp[XX][YY]) return false;
mp[XX][YY]=;
}
return true;
}
void solve()
{
init();
scanf("%d%d%d%d",&n,&m,&a,&b);
for(int i=;i<=n;++i){
scanf("%s",ch+);
for(int j=;j<=m;++j){
if(ch[j]-''){
x[++cnt1]=i;
y[cnt1]=j;
mp[i][j]=;
}
}
}
//记录鼎的1
for(int i=;i<=a;++i){
scanf("%s",ch+);
for(int j=;j<=b;++j){
if(ch[j]-''){
X[++cnt2]=i;
Y[cnt2]=j;
}
}//记录模的1
}
for(int i=;i<=cnt2;++i){
X[i]-=X[];
Y[i]-=Y[];
}//模版的几个1到第一个1的距离
for(int i=;i<=cnt1;++i)
if(mp[x[i]][y[i]])
if(!check(x[i],y[i])){
puts("NO");
return;
}
puts("YES");
}
int main()
{
//freopen("grain.in","r",stdin);
//freopen("grain.out","w",stdout);
scanf("%d",&T);
while(T--) solve();
return ;
}
2、看球赛
年 里奥迪奥带领的十星巴西对战莱昂纳多带领的阿根廷的世界杯决赛马
上开始了!前来在巨型球场观看比赛的观众数不甚数,但是由于突如其来的系统
原因,大家不能网上购票,只能到售票窗口,排成长龙买票. 按售票处规定,每一个限购一张门票,且每一张门票 美元。 在排成长龙的球
迷中有 n 个人手持 美元,另外有 n 个人手持 美元。假设售票处开始的时
候没有零钱,试问这 2n 个球迷有多少种排队方式使得售票处不会出现找不出钱
的尴尬局面,导致拖延球迷看球时间。
【输入与输出说明】
输入两行,第一行一个正整数 T,表示数据个数。
第二行有 T 个正整数,n1,n2,....nT. 输出 T 行,每一行为被 ^+ 模过的结果。
【样例输入1】 【样例输出1】 【样例输入2】 【样例输出2】 【样例说明】
例如当 n= 时,用 A 表示手持面值 美元的球迷,用 B 表示手持面值为 美
元的球迷,则最多可得到以下两组不同的排队方式使得售票处不会出现找不出钱
的情况。
售票处 A A B B
售票处 A B A B
【数据范围】
对于 % n <= , T <=
对于 % n <= , T <=
对于 % n <= , T <=
对于其中 % < n <= ^, T <=
对于其中 % ^ < n <= *^, T =
题目
tag:数学
思路:裸的卡特兰数(可是我不会写啊,只能打表)。公式是C(2n,n)/(n+1)。注意要用逆元哦。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int mod=1e9+;
int T,n;
int ksm(int x,int y)
{
int ret=,b=y;
while(b)
{
if(b&) ret=1ll*ret*x%mod;
x=1ll*x*x%mod;
b>>=;
}
return ret;
}
int solve()
{
int ret1=,ret2=;
for(int i=;i<=n;++i){
ret1=1ll*ret1*(n+i)%mod;
ret2=1ll*ret2*i%mod;
}
return 1ll*ret1*ksm(ret2,mod-)%mod;
}
int main()
{
//freopen("football.in","r",stdin);
//freopen("football.out","w",stdout);
scanf("%d",&T);
while(T--){
scanf("%d",&n);
printf("%d\n",solve());
}
return ;
}
再补充:n个1 m个0 公式为C(n+m,m)-C(n+m,m-1)
3、靶形数独
单独拿出来写题解了,-->链接<--
芒果君:分割线懒得画=_= 最近好颓,真的很想改变现状,我不想做一个只会打表的OIer 要好好学习QAQ
冲刺Noip2017模拟赛8 解题报告——五十岚芒果酱的更多相关文章
- 冲刺Noip2017模拟赛2 解题报告——五十岚芒果酱
题1 牛跑步(running) [题目描述] 新牛到部队,CG 要求它们每天早上搞晨跑,从 A 农场跑到 B 农场.从 A 农场到 B 农场中有 n- 个路口,分别标上号,A 农场为 号,B 农场为 ...
- 冲刺Noip2017模拟赛1 解题报告——五十岚芒果酱
题1 国际象棋(chess) [问题描述] 有N个人要参加国际象棋比赛,该比赛要进行K场对弈.每个人最多参加2场对弈,最少参加0场对弈.每个人都有一个与其他人都不相同的等级(用一个正整数来表示).在对 ...
- 冲刺Noip2017模拟赛5 解题报告——五十岚芒果酱
1. 公约数(gcd) [问题描述] 给定一个正整数,在[,n]的范围内,求出有多少个无序数对(a,b)满足 gcd(a,b)=a xor b. [输入格式] 输入共一行,一个正整数n. [输出格式] ...
- 冲刺Noip2017模拟赛3 解题报告——五十岚芒果酱
题1 素数 [问题描述] 给定一个正整数N,询问1到N中有多少个素数. [输入格式]primenum.in 一个正整数N. [输出格式]primenum.out 一个数Ans,表示1到N中有多少个素 ...
- 冲刺Noip2017模拟赛7 解题报告——五十岚芒果酱
1.二叉树(binary) .二叉树 (binary.cpp/c/pas) [问题描述] 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: ()若左子树不空,则左子树上所有结点的值均小于它的根结 ...
- 冲刺Noip2017模拟赛6 解题报告——五十岚芒果酱
1.ksum(ksum) [问题描述] Peter喜欢玩数组.NOIP这天,他从Jason手里得到了大小为n的一个正整数 数组. Peter求出了这个数组的所有子段和,并将这n(n+)/2个数降序排序 ...
- 冲刺Noip2017模拟赛4 解题报告——五十岚芒果酱
题1 韬韬抢苹果(apple) [问题描述] 又到了收获的季节,树上结了许多韬韬,错了,是许多苹果,有很多个小韬韬都来摘苹 果.每个韬韬都想要最大的苹果,所以发生了争执,为了解决他们的矛盾,出题人定了 ...
- 20161005 NOIP 模拟赛 T2 解题报告
beautiful 2.1 题目描述 一个长度为 n 的序列,对于每个位置 i 的数 ai 都有一个优美值,其定义是:找到序列中最 长的一段 [l, r],满足 l ≤ i ≤ r,且 [l, r] ...
- 【HHHOJ】NOIP模拟赛 玖 解题报告
点此进入比赛 得分: \(100+20+100=220\)(还不错) 排名: \(Rank\ 16\) \(Rating\):\(+20\) \(T1\):[HHHOJ263]「NOIP模拟赛 玖」三 ...
随机推荐
- Greenplum 监控segment是否正常
在greenplum运行过程中,Segement很有可能因为压力大出现不可用的情况, 主备Segement发现了切换,或是主备Segement网络断开,数据不同步了.在 默认情况下,如果GreenPl ...
- maven管理的jsp-web应用如何添加servlet、jsp相关依赖(org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp)
明明tomcat下面就有这些包,然而还需要在maven依赖里面加上这个依赖 <!--引入Servlet开始--> <dependency> <groupId>jav ...
- 配置Jupyter Notebook
配置Jupyter Notebook 1 修改Jupyter Notebook的工作目录 Jupyter默认打开的是用户目录,使用如下步骤自行修改: CMD生成Jupyter配置文件: (python ...
- FOI冬令营 Day2
目录 T1.直径(diameter) 传送门 Code T2.定价(price) 传送门 Code T3.排序(sort) 传送门 Code T1.直径(diameter) 传送门 Code //20 ...
- 关于long_query_time的设置,可不可以说是mysql的一个小小bug呢
我们知道对对于MySQL的日志功能,我们可以完全自己控制到底写还是不写.一般来说,binlog我们一般会开启,而对于慢查询我们一般会在开发的时候调试和观察SQL语句的执行速度.但今天发现一个问题.在使 ...
- 基于Spring框架怎么构建游戏玩法服务
说明:本篇阐述的问题,是基于前面的游戏服务器架构设计的. 问题 众所周知,Spring最擅长的领域是无状态服务的构建,而游戏(尤其是玩法部分)是有状态的.以棋牌游戏为例,玩法服务里面大概涉及以下两类对 ...
- 4.弹性网络( Elastic Net)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_21904665/article/details/52315642 ElasticNet 是一种 ...
- php - ftp 上传文件到远程服务器
ccentos7服务器 ======================== 一.安装vsftpd及ftp命令 yum install vsftpd -y yum install ftp -y 二.vsf ...
- 反向代理Nginx
引用:https://baijiahao.baidu.com/s?id=1600687025749463237&wfr=spider&for=pc 参考下图,正向代理用途:Client ...
- Java设计模式:代理模式(转)
代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一 ...