T1 铃仙的红色之瞳(eyes)

题目描述

为了方便你的预测,铃仙对该符卡进行了改造。
敌方非常强大,可以看作有无限的体力。通过该符卡,铃仙可以释放出子弹,敌方触碰到子弹就会损失一格体力。注意,每次敌方损失体力之后,其位置不会改变。
当敌方和铃仙 x 坐标相同上时,每秒铃仙损失一点体力(敌方的攻击比较特殊,可以对前后都进行攻击)。注意,这里的秒指的是时间间隔,即第 A 秒时候敌方开始与铃仙处于一条直线上,第 B 秒时候敌方离开这条直线,那么铃仙受到的伤害是(B-A)点。特殊地,如果刚开始铃仙就和敌方在一条直线上,则第 0 秒~第 1 秒也受到一点伤害。若最后铃仙和敌方在 x 坐标相同的位置或者敌方处于有子弹的位置上时,它们只会在第 Q-1 秒到第 Q 秒时受到伤害,并不会在第 Q 秒到第 Q+1 秒受到伤害。
地图是一个 n*m 的矩形,分别对应的 x 坐标为[1,n],y 坐标为[1,m],给定敌方的初始位置和铃仙的位置(铃仙不会移动),当铃仙发出的子弹超过边界时子弹消失,当敌方越过边界时敌方自动回到初始位置。
现在有 Q 秒,每秒一次操作,可能是铃仙的操作也可能是敌方的操作,可能存在的操作如下:
Ins x y 铃仙在(x,y)处召唤了一颗子弹(如果原先就有子弹则该操作无效)
Del x y 铃仙收回法力,让(x,y)处的子弹消失(如果原先没有子弹则该操作无效)
MA U 铃仙将所有子弹上移一格
MA D 铃仙将所有子弹下移一格
MA L 铃仙将所有子弹左移一格
MA R 铃仙将所有子弹右移一格
MB U 敌方上移一格
MB D 敌方下移一格
MB L 敌方左移一格
MB R 敌方右移一格
现在要你计算 Q 秒后敌方损失的体力和铃仙损失的体力。
(注:左移指的是横坐标-1,下移指的是纵坐标-1)
n,m<=100,Q<=1000

题解:模拟!!!

时间复杂度:O(能过)

我居然考场上只有40分,后来发现,我在转移的时候竟然在逐层向下修改,最后把子弹都踢出了地图,555.。

chs表示 跪在评测机前...

代码如下:

#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <queue>
#define ll long long
#define N 105
using namespace std;
int sho[N][N];
ll ansa,ansb;
char str[10];
int zyy[N][N]; //这个数组一定要开,不然就把子弹转移没了!!!
int main()
{freopen("eyes.in","r",stdin);freopen("eyes.out","w",stdout);int Case;scanf("%d",&Case);int n,m;scanf("%d%d",&n,&m);int ax,ay,bx,by,bxx,byy;scanf("%d%d%d%d",&ax,&ay,&bx,&by);bxx=bx,byy=by;int Q;scanf("%d",&Q);while(Q--){memset(zyy,0,sizeof(zyy));scanf("%s",str+1);if(ax==bx) ansa++;if(sho[bx][by]) ansb++;if(str[1]=='I'){int x,y;scanf("%d%d",&x,&y);if(x<1||y<1||x>n||y>m) {}else sho[x][y]=1;}else if(str[1]=='D'){int x,y;scanf("%d%d",&x,&y);if(x<1||y<1||x>n||y>m) {}else sho[x][y]=0;}else if(str[1]=='M'){if(str[2]=='A'){scanf("%s",str+1);if(str[1]=='U'){for(int i = 1;i <= n;i++){for(int j = 1;j <= m;j++){if(sho[i][j]){//sho[i][j]=0;if(j+1<=m) zyy[i][j+1]=1;}}}}else if(str[1]=='D'){for(int i = 1;i <= n;i++){for(int j = 1;j <= m;j++){if(sho[i][j]){//sho[i][j]=0;if(j-1>0) zyy[i][j-1]=1;}}}}else if(str[1]=='L'){for(int i = 1;i <= n;i++){for(int j = 1;j <= m;j++){if(sho[i][j]){//sho[i][j]=0;if(i-1>0) zyy[i-1][j]=1;}}}}else if(str[1]=='R'){for(int i = 1;i <= n;i++){for(int j = 1;j <= m;j++){if(sho[i][j]){///  sho[i][j]=0;if(i+1<=n) zyy[i+1][j]=1;}}}}//memset(zyy,0,sizeof(zyy));for(int i = 1;i <= n;i++){for(int j = 1;j <= m;j++){sho[i][j]=zyy[i][j];}}}else if(str[2]=='B'){scanf("%s",str+1);   if(str[1]=='U'){by++;}else if(str[1]=='D'){by--;}else if(str[1]=='L'){bx--;}else if(str[1]=='R'){bx++;}if(bx<1||by<1||bx>n||by>m) bx=bxx,by=byy;}}}printf("%I64d\n%I64d\n",ansb,ansa);return 0 ;
}
/*
1
5 5
2 2
2 5
3
Ins 2 5
MA D
Del 2 4
*/

NOIP 2018模拟赛(模拟) 2018 11 3 A组 Day1 T1相关推荐

  1. 第十四届蓝桥杯模拟赛(第三期)Java组个人题解

    第十四届蓝桥杯模拟赛(第三期)Java组个人题解

  2. ssl提高组周六模拟赛【2018.9.8】

    前言 开学后,新学年新气象,学校题库也迎来了新的改动,界面大改变,也可以比赛了. 所以这周就有比赛了,而在纪中被虐习惯后回来渴望继续被虐就来参加提高组模拟赛(反正今年也参加提高组) 成绩 只放Rank ...

  3. ssl初一组周六模拟赛【2018.5.12】(期中)

    前言 这周竟然没有奶死自己,成为模拟赛第一个AK的(然而第一题数据错了所以这次放加上第一题的分) 先说一下成绩: 姓名 成绩 wyc 400 xjq 290 xxy 255 lrz 225 hzb 2 ...

  4. 辣鸡(ljh) NOIP模拟赛 模拟 平面几何 数论 化学相关(雾)

    [题目描述] 辣鸡ljhNOI之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的ljh却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的:在一个二维平面上有一层水分 ...

  5. ssl初一组周六模拟赛【2018.3.10】

    前言 先说一下成绩(因某人要求去掉了某人): 姓名 成绩 xjq 280 wyc 200(本人) lrz 200 zyc 100 hjq 40 lw 30 hzb 0 正题 题目1:Clocest ( ...

  6. ssl初一组周六模拟赛【2018.3.31】

    前言 先说一下成绩: 姓名 成绩 hjq 300 wyc(本人千年老二) 270 zyc 260 xjq 240 lw 223 xxy 220 lrz 200 hzb 200 正题 题目1:ssl24 ...

  7. ssl初一组周六模拟赛【2018.4.21】

    前言 hzb大佬好强啊,hzb好强啊,大佬好强啊,好强啊,超级强的. 后面有惊喜 先说一下成绩: 姓名 成绩 zyc 390 hzb 360 lrz 340 xjq 310 xxy 300(话说原本是 ...

  8. ssl初一组周六模拟赛【2018.3.24】

    前言 先说一下成绩: 姓名 成绩 xxy 480 xjq 470 wyc(本人) 430 lw 350 hjq 350 zyc 325 lrz 280 hzb 250 正题 题目1:ssl2545 奇 ...

  9. ssl初一组周六模拟赛【2018.3.17】

    前言 先说一下成绩: 姓名 成绩 xjq(没错又是他) 310 hjq 200 hzb 150 wyc(本人) 130 lrz 130 xxy 100 lw 30 zyc 缺考 正题 题目1:ssl2 ...

最新文章

  1. android炫酷的自定义view,Android自定义View实现炫酷进度条
  2. Dockerfile文件命令详解
  3. 为了把mysql的索引底层原理讲清楚,我把计算机翻了个底朝天
  4. Android中Uri的使用
  5. java中用byte[]数组实现的队列和用Byte[]实现的队列实际占用空间对比
  6. hyperterminal使用教程_如何在Win7中安装使用超级终端Hyper Terminal(转)
  7. 宏定义和内联函数的学习
  8. windows平台编译vlc
  9. python 解析pb文件_利用Python解析json文件
  10. Java 中foreach 的用法
  11. perl脚本的参数输入
  12. python pyinstaller使用方法_【python快手菜】pyinstaller使用指南
  13. Tomcat部署及优化
  14. 计算机组成原理框架结构图
  15. 高新技术企业认定专项审计报告包含报告?专审收费标准
  16. Java操作Excel基础--POI之HSSF
  17. DxO PhotoLab 4 for Mac(RAW图片处理工具)
  18. 关于PR安装在D盘初始化时闪退,加载到optical的时候PR直接闪退
  19. 湖仓一体:基于Iceberg的湖仓一体架构在B站的实践
  20. 文献 | 你的狗狗是否也很擅长“察言观色”?

热门文章

  1. 用Java 实现文章内容上一篇下一篇功能
  2. 表白网站怎么上传到服务器,能上传到云服务器的表白模板
  3. SpyBot - Search Destroy 1.6.0.30 Final
  4. ArcGIS Pro脚本工具(4)——连续擦除
  5. (附源码)计算机毕业设计SSM基于html的网上购物系统
  6. 从迅雷下载比一比想到的
  7. 云安全-云数据安全防御措施
  8. Intel无线网卡版本区别
  9. 工程造价中间的小问题和大影响
  10. 第二届中国抗衰老化妆品产业发展论坛暨国粹国妆品牌与文化交流会在京召开