当前位置: 首页 > news >正文

题解:CF2118D1 Red Light, Green Light (Easy version)

题目传送门

注意到数据很小只有 \(500\),所以想到可以模拟加记忆化,每一次暴力的去找到下一个要到的红绿灯的编号,再判断是红灯还是绿灯,如果是绿灯那方向不变,编号根据方向判定是加一还是减一,若果是红灯那方向改变,编号同理,同时用数组记录一下这一次遇到红灯的状态,三个状态分别为:编号,方向和时间,如果在模拟过程中编号小于 \(1\) 或编号大于 \(n\) 那么说明可以走出去,若果两次走到同一个状态,那么就不可能走出去。


code

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1010101;
ll n,k,T,x,q,p[N],d[N],vis[510][3][510];
int main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>T;while(T--){cin>>n>>k;for(int i=1;i<=n;i++)cin>>p[i];for(int i=1;i<=n;i++)cin>>d[i];cin>>q;while(q--){cin>>x;memset(vis,0,sizeof(vis));ll cnt=0,flag=1,now=0;for(int i=1;i<=n;i++){if(p[i]>=x){now=i;break;}}if(now==0){cout<<"YES\n";continue;}while(1){if((cnt+abs(p[now]-x)-d[now])%k!=0){cnt+=abs(p[now]-x);x=p[now];if(flag)now++;else now--;if(now>n||now<1){cout<<"YES\n";break;}}else{if(vis[now][flag][(cnt+abs(p[now]-x)-d[now])%k]){cout<<"NO\n";break;}vis[now][flag][(cnt+abs(p[now]-x)-d[now])%k]=1;cnt+=abs(p[now]-x);x=p[now];if(flag)now--;else now++;if(now>n||now<1){cout<<"YES\n";break;}flag^=1;}}}}return 0;
}
http://www.sczhlp.com/news/88328/

相关文章:

  • 中国建设网站中天建设平分数推蛙网络
  • 农业门户网站开发网站无备案无法登入
  • 化工企业网站jsp建设淘宝客网站.lc和ev
  • 手机网站做多宽株洲人才网
  • 天津最好网站建设公司营销型网站建设公司哪家好
  • js和vue的数据类型
  • 202508 组合计数专题 笔记
  • python解释器位数与电脑的关系
  • 高级模糊测试技术:挖掘隐藏端点的漏洞挖掘实战
  • 网站个人备案修改成企业备案坪山附近公司做网站建设哪家技术好
  • 网站是怎么做的吗广东网站开发搭建
  • 备案期间怎么做网站东莞路桥投资建设公司官网
  • 网站注册域名多少钱开源系统网站
  • 东莞高端品牌网站建设在郑州网站推广
  • 网站建设搞笑广告词未来网站开发需求多
  • 合肥网站优化 新浪博客网站想做个链接怎么做的
  • 用织梦做的网站怎么管理wordpress主题加速
  • 建设网站哪个公司好珠海市官网网站建设品牌
  • 怎样在门户网站做网络推广新乡建设网站
  • 微网站建设申请php和asp做网站哪个好
  • 阅读方式
  • Audition 2025(AU2025)超详细直装版下载安装教程保姆级
  • 新沂微网站开发建设银行网站怎么登陆
  • iis 网站关闭南阳高质量建设大城市网站
  • 做网站宽度成都网站设计报价
  • 手机html5网站开发山东省工程建设管理信息网站
  • 济南做网站企业聚名网名
  • 怎么推广自己的网站上海市网站建设公司58
  • 大庆金思维科技网站开发学院网站建设投标
  • 网站建设推广方案模版网络推广商城