牛客网NOIP赛前集训营-提高组(第七场)A-中国式家长 2
题目描述
有一天,牛牛找到了一个叫《中国式家长》的游戏,游戏中需要靠"挖脑洞"来提升悟性。
挖脑洞在一个\(N\)行\(M\)列的地图上进行,一开始牛牛有\(K\)点行动力和\(0\)点悟性,地图上有两种格子:
1、悟性格: 挖悟性格需要减少10点行动力,如果行动力不到10点则无法挖取,挖取成功后悟性会提升\(10\)点
2、行动格: 挖取行动格没有行动力要求,挖取完之后行动力会增加一定点数,但行动力不能超过\(K\)(比如\(K = 150\), 当前有\(140\)点行动力,挖取了一个可以增加\(20\)点行动力的格子,那挖取完成之后行动力会变成\(150\))
有一些格子是开启的,另一些格子是关闭的,只允许挖取开启的格子。当一个格子挖取成功后,以它为中心的九宫格内的格子都会开启。(既第x行第y列的格子被挖取之后,第\(x - 1\)行和第\(x + 1\)行的第\(y - 1\)列,第\(y\)列,第\(y + 1\)列,第\(x\)行的第\(y - 1\)列,第\(y + 1\)列,这八个格子都会被开启)
每个格子都只允许被挖取一次。
现在给定地图的描述,以及牛牛的挖取顺序,牛牛希望你告诉它这个顺序是否可行,如果可行的话希望你计算出最终剩下多少点行动力,获得了多少点悟性。
输入描述:
第一行输入\(N, M, K\)代表地图有\(N\)行\(M\)列,一开始有\(K\)点行动力(游戏过程中行动力也不能超过\(K\))
接下来\(N\)行每行\(M\)个非负整数,第\(i\)行的第\(j\)个非负整数\(a_{i,j}\)描述第i行第j列格子,如果\(a_{i,j} > 0\)说明这是一个行动格,挖取完之后会获得\(a_{i,j}\)点行动力。否则说明这是一个悟性格。
接下来\(N\)行每行\(M\)个非负整数,第\(i\)行的第\(j\)个非负整数\(b_{i,j}\)描述第\(i\)行第\(j\)列格子在最初是否开启,如果\(b_{i,j} = 0\)说明这一格没有开启,否则则说明这一格开启了。
接下来一个正整数T代表牛牛一共挖取了\(T\)次
接下来\(T\)行每行两个整数,第\(i\)行的两个整数\(x_i\), \(y_i\)代表牛牛的第i个操作:挖取第xi行第yi列的格子
对于\(100\%\)的数据,\(1 \leq N, M, K \leq 200\), \(0 \leq a_{i,j} \leq k\), \(0 \leq b_{i,j} \leq 1\), \(1 \leq T \leq N \times M\), \(1 \leq xi \leq N\), \(1 \leq y_i \leq M\)
输出描述:
输出一行两个整数代表最终剩下的行动力点数、获得的悟性的点数
如果挖取过程不合法则输出一行
-1 -1
挖取不合法有以下几种可能:
- 试图挖取一个没有开启的格子
- 试图重复挖取一个格子
- 行动力小于10的时候尝试挖取一个悟性格
只要挖取过程中的任何一步不合法,挖取过程就不合法
示例1
输入
2 2 20
10 0
0 0
1 0
0 0
3
1 1
1 2
2 1
输出
0 20
说明
一开始有\(20\)点行动力,\(0\)点悟性。第一步挖取第一行第一列的格子,这格是行动格,不需要消耗行动力,可以增长\(10\)点行动力,且一开始就是开启的,但由于行动力最多只能有\(K\)点,挖取完成后还是\(20\)点行动力,\(0\)点悟性。第一格挖取之后,剩下的格子都开启了,因此接下来两次挖取都是合法的,每次减少\(10\)点行动力,增加\(20\)点悟性。因此最后剩余\(0\)点行动力,\(20\)点悟性。
示例2
输入
2 2 20
10 0
0 0
1 0
0 0
1
1 2
输出
-1 -1
说明
第一行第二列的格子没有开启,所以挖取失败了
示例3
输入
2 2 20
10 0
0 0
1 0
0 0
2
1 1
1 1
输出
-1 -1
说明
一个格子只能挖取一次,因此第二次挖取失败了
示例4
输入
2 2 20
10 0
0 0
1 0
0 0
4
1 1
1 2
2 1
2 2
输出
-1 -1
说明
最后一次挖取时,行动力已经不够了,因此最后一次挖取失败了
Solution
纯模拟题,没什么好说的。
写这个题解的主要目的是想给大家讲笑话。
有一个叫hkk的傻逼,今天上午考试的时候,看了一眼T1:哎呀,怎么又是这种神仙题啊,怎么那么不可做啊,获得能量值是不是还要建一个分层图来搞搞啊。
一个半小时以后:这个好像是傻逼题啊,等等,再好好看看在写。
两个小时以后:好像确实是傻逼题啊,开始写吧。
考完以后,这道题只拿了30分,于是又看了一遍题目,不知道脑子又哪儿短路了:这好像确实是不可做题啊,怎么全场都A啦,是不是数据太弱啊。
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
#define lowbit(x) ((x)&(-(x)))
#define REP(i,a,n) for(register int i=(a);i<=(n);++i)
#define PER(i,a,n) for(register int i=(a);i>=(n);--i)
#define FEC(i,x) for(register int i=head[x];i;i=g[i].ne)
#define dbg(...) fprintf(stderr,__VA_ARGS__)
namespace io{
const int SIZE=(1<<21)+1;char ibuf[SIZE],*iS,*iT,obuf[SIZE],*oS=obuf,*oT=oS+SIZE-1,c,qu[55];int f,qr;
#define gc() (iS==iT?(iT=(iS=ibuf)+fread(ibuf,1,SIZE,stdin),(iS==iT?EOF:*iS++)):*iS++)
inline void flush(){fwrite(obuf,1,oS-obuf,stdout);oS=obuf;}
inline void putc(char x){*oS++=x;if(oS==oT)flush();}
template<class I>inline void read(I &x){for(f=1,c=gc();c<'0'||c>'9';c=gc())if(c=='-')f=-1;for(x=0;c<='9'&&c>='0';c=gc())x=x*10+(c&15);x*=f;}
template<class I>inline void write(I x){if(!x)putc('0');if(x<0)putc('-'),x=-x;while(x)qu[++qr]=x%10+'0',x/=10;while(qr)putc(qu[qr--]);}
inline void print(const char *s){while(*s!='\0')putc(*s++);}
inline void scan(char *s){for(c=gc();c<=' ';c=gc());for(;c>' ';c=gc())*(s++)=c;*s='\0';}
struct Flusher_{~Flusher_(){flush();}}io_flusher_;
}//orz laofudasuan
using io::read;using io::putc;using io::write;using io::print;
typedef long long ll;typedef unsigned long long ull;
template<typename A,typename B>inline bool SMAX(A&x,const B&y){return x<y?x=y,1:0;}
template<typename A,typename B>inline bool SMIN(A&x,const B&y){return y<x?x=y,1:0;}
const int N=200+7;
int n,m,k,T,wx,K,x,y,a[N][N],b[N][N],vis[N][N];
int main(){
#ifndef ONLINE_JUDGE
freopen("A.in","r",stdin);freopen("A.out","w",stdout);
#endif
read(n),read(m),read(k);K=k;
for(register int i=1;i<=n;++i)for(register int j=1;j<=m;++j)read(a[i][j]);
for(register int i=1;i<=n;++i)for(register int j=1;j<=m;++j)read(b[i][j]);
read(T);
for(register int i=1;i<=T;++i){
read(x),read(y);
if((!a[x][y]&&k<10)||!b[x][y]||vis[x][y])return print("-1 -1\n"),0;
else{
b[x-1][y-1]=b[x-1][y]=b[x-1][y+1]=
b[x][y-1]=b[x][y+1]=
b[x+1][y-1]=b[x+1][y]=b[x+1][y+1]=1;
vis[x][y]=1;
if(a[x][y])k+=a[x][y],SMIN(k,K);else k-=10,wx+=10;
}
}
write(k),putc(' '),write(wx),putc('\n');
}
牛客网NOIP赛前集训营-提高组(第七场)A-中国式家长 2的更多相关文章
- 牛客网NOIP赛前集训营-普及组(第二场)和 牛客网NOIP赛前集训营-提高组(第二场)解题报告
目录 牛客网NOIP赛前集训营-普及组(第二场) A 你好诶加币 B 最后一次 C 选择颜色 D 合法括号序列 牛客网NOIP赛前集训营-提高组(第二场) A 方差 B 分糖果 C 集合划分 牛客网N ...
- 牛客网NOIP赛前集训营-提高组(第二场)A 方差
链接:https://www.nowcoder.com/acm/contest/173/A来源:牛客网 题目描述 一个长度为 m 的序列 b[1...m] ,我们定义它的方差为 ,其中 表示序列的平 ...
- [牛客网NOIP赛前集训营-提高组(第一场)]C.保护
链接:https://www.nowcoder.com/acm/contest/172/C来源:牛客网 题目描述 C国有n个城市,城市间通过一个树形结构形成一个连通图.城市编号为1到n,其中1号城市为 ...
- 牛客网NOIP赛前集训营-提高组(第一场)
牛客的这场比赛感觉真心不错!! 打得还是很过瘾的.水平也比较适合. T1:中位数: 题目描述 小N得到了一个非常神奇的序列A.这个序列长度为N,下标从1开始.A的一个子区间对应一个序列,可以由数对[l ...
- 比赛总结——牛客网 NOIP赛前集训营提高组模拟第一场
第一场打的很惨淡啊 t1二分+前缀最小值没想出来,20分的暴力也挂了,只有10分 t2数位dp,调了半天,结果因为忘了判0的特殊情况WA了一个点,亏死 t3emmmm.. 不会 imone说是DSU ...
- 牛客网NOIP赛前集训营-提高组(第一场)B 数数字
数数字 思路: 数位dp 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include< ...
- 牛客网NOIP赛前集训营-提高组(第一场)A 中位数
中位数 思路: 二分答案 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include< ...
- 牛客网NOIP赛前集训营 提高组 第5场 T2 旅游
[题解] 我们可以发现不在最小生成树上的边一定不能多次经过,因为一条不在最小生成树上的边(u,v)的边权比最小生成树上(u,v)之间的路径更长,选择不在最小生成树上的边一定不划算. 我们还需要确定最小 ...
- 牛客网NOIP赛前集训营-提高组(第四场)游记
牛客网NOIP赛前集训营-提高组(第四场)游记 动态点分治 题目大意: \(T(t\le10000)\)组询问,求\([l,r]\)中\(k(l,r,k<2^{63})\)的非负整数次幂的数的个 ...
- 牛客网NOIP赛前集训营-提高组(第四场)B区间
牛客网NOIP赛前集训营-提高组(第四场)B区间 题目描述 给出一个序列$ a_1 \dots a_n$. 定义一个区间 \([l,r]\) 是好的,当且仅当这个区间中存在一个 \(i\),使得 ...
随机推荐
- python全栈开发,Day40(进程间通信(队列和管道),进程间的数据共享Manager,进程池Pool)
昨日内容回顾 进程 multiprocess Process —— 进程 在python中创建一个进程的模块 start daemon 守护进程 join 等待子进程执行结束 锁 Lock acqui ...
- 《数据结构与算法(C语言版)》严蔚敏 | 第五章 建立二叉树,并完成三/四种遍历算法
PS:所有的代码示例使用的都是这个图 2019-10-29 利用p126的算法5.3建立二叉树,并完成三种遍历算法 中序 后序 先序 #include<iostream> #include ...
- 学习如何使用Markdown
Markdown 新手指南点击查看 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 ---段落 引用 这是一个无序列表 这是一个无序列表 这是一个父无序列表 这是一个子无序列表 这是一个有 ...
- poj3744 (概率DP+矩阵快速幂)
http://poj.org/problem?id=3744 题意:在一条铺满地雷的路上,你现在的起点在1处.在N个点处布有地雷,1<=N<=10.地雷点的坐标范围:[1,10000000 ...
- UNITY崩溃的日志
有关UNITY的日志,有两个路径. 1,一般日志路径:C:/Users/xxxx/ AppData/Local/Unity/Editor,此文件夹下有三个文件 ,如下图:Editor.log, Edi ...
- 【GIS数据格式】ArcInfo Binary Grid Format
最近在修改项目时发现有些提取的坡度数据在参与了下一步计算后会出错,仔细跟了代码之后发现AE生成的坡度数据和其他一些分析后的栅格都被存储为.adf文件.说起惭愧,并不了解这是什么数据,由于下层算法使用G ...
- 本站页脚HTML回顶部代码
<style type="text/css">.top { width: 50px; height: 50px; background-color: #F0F0F0; ...
- WEB安全----XSS和CSRF
随着Web2.0.社交网络.微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起黑客们的强烈关注,接踵 ...
- HDU 6583 Typewriter 题解
——本题来自杭电多校第一场 题意:给定一个字符串,主角需要用打字机将字符串打出来,每次可以: 1.花费p来打出任意一个字符 2.花费q来将已经打出的某一段(子串)复制到后面去 对于这种最优化的问题,我 ...
- MySQL点滴记录
1.查询所用引擎 show engines;