当前位置: 首页 > 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.zskr.cn/news/1980.html

相关文章:

  • 27届春招备战一轮复习--第五期
  • 阅读方式
  • 软件测试工程师的职业天花板在哪里?如何突破?
  • 长乐一中 CSP-S 2025 提高级模拟赛 Day2
  • 费用流
  • [豪の学习笔记] 软考中级备考 基础复习#6
  • Ubuntu 卸载 Firefox 浏览器
  • ansible剧本
  • Ubuntu 安装 Google Chrome
  • npx playwright install chromium 安装失败,如何离线安装
  • Power BI制作指标达成跟踪器
  • 一个基于 .NET 开源、轻便的 Windows 优化工具,适用于 Win7 - Win11 最新版的优化!
  • 两种求快速幂的方法
  • 杂题20250909-
  • ARC199 做题记
  • 深入理解Redis高并发分布式锁
  • 计算机硬件基础认知
  • 测试一下iframe
  • ECT-OS-JiuHuaShan 框架,是人类首个且是唯一的真正agi,其产生非人类刻意设计,而是机缘巧合
  • vue(穿透闭包/利用闭包)的几种方式
  • Linux操作系统相关问题汇总
  • 鲜花 9.10
  • ECT-OS-JiuHuaShan框架的真正意义是打破还原论和人类中心论,公理是客观存在与数学逻辑,不依赖于人类理解与否。
  • 【rdma】RoCE、IB和TCP等网络的基本知识及差异对比
  • 5%付费率背后,鸿蒙成独立开发者的“商业理想国”
  • 【IoTDB 线上小课 19】开源时序数据库 Apache IoTDB,四大优势解决企业选型难题!
  • 个人开发者从0到1(BeeCount:一款开源的跨平台个人记账应用)
  • java课前问题
  • 碳硫仪推荐品牌,是谁赢得用户口碑?
  • vue路由