考虑如果哪次经过了红灯则显然已经和出发的时间没关系了。

然后我们需要做的是怎么样找到最近的一个是红灯的点。

然后实际下是我们做一个前缀和:\(L_i = \sum d_i\)

然后求\(\min (L_y - L_i) \mod (g + r) > g\)

然后在值域上动态开点线段树,区间查询\(min\)即可。

倒过来处理一下。

//code by fhq_treap
#include<iostream>
#include<cstdio>
#define ll long long
#define N 100005 int n,g,r;
int mod;
ll d[N],f[N]; struct P{
int L,R;
ll mn;
P(){mn = 1e18;}
}T[N * 60]; int cnt; #define mid ((l + r) >> 1)
#define ls(x) T[x].L
#define rs(x) T[x].R int Root; inline void up(int u){T[u].mn = std::min(T[ls(u)].mn,T[rs(u)].mn);} inline void change(int &u,int l,int r,int p,int v){
if(!u)u = ++cnt;
// std::cout<<u<<" "<<l<<" "<<r<<" "<<p<<" "<<v<<std::endl;
if(l == r){
T[u].mn = v;
return ;
}
if(p <= mid)
change(ls(u),l,mid,p,v);
else
change(rs(u),mid + 1,r,p,v);
up(u);
} inline ll query(int u,int l,int r,int tl,int tr){
// std::cout<<u<<" "<<l<<" "<<r<<" "<<tl<<" "<<tr<<std::endl;
if(tl > tr)return 1e18;
if(!u)return 1e18;
if(tl <= l && r <= tr)return T[u].mn;
ll ans = 1e18;
if(tl <= mid)ans = std::min(ans,query(ls(u),l,mid,tl,tr));
if(tr > mid)ans = std::min(ans,query(rs(u),mid + 1,r,tl,tr));
return ans;
} #define root Root,0,mod - 1 int q; int main(){
scanf("%d%d%d",&n,&g,&r);
mod = g + r;
for(int i = 1;i <= n + 1;++i)
scanf("%lld",&d[i]),d[i] = d[i - 1] + d[i];
for(int i = n;i;-- i){
int t = mod - d[i] % mod;
ll nex = 1e18;
nex = std::min(nex,query(root,std::max(0,g - t),mod - 1 - t));
if(g - t < 0)
nex = std::min(nex,query(root,g - t + mod,mod - 1));
if(nex != 1e18)
f[i] = d[nex] - d[i] + (mod - (d[nex] - d[i]) % mod) + f[nex];
else
f[i] = d[n + 1] - d[i];
change(root,d[i] % mod,i);
}
scanf("%d",&q);
int las = 0;
while(q -- ){
int t;
scanf("%d",&t);
t = t ^ las;
int tt = t % mod;
ll nex = 1e18;
nex = std::min(nex,query(root,std::max(0,g - tt),mod - 1 - tt));
if(g - tt < 0)
nex = std::min(nex,query(root,g - tt + mod,mod - 1));
// std::cout<<nex<<std::endl;
if(nex == 1e18)
std::cout<<t + d[n + 1]<<std::endl,las = (t + d[n + 1]) % 2147483647;
else
std::cout<<d[nex] + (mod - (d[nex] + t) % mod) + f[nex] + t<<std::endl,las = (d[nex] + (mod - (d[nex] + t) % mod) + f[nex] + t) % 2147483647;
}
}

CF187D BRT Contract的更多相关文章

  1. CF 187D BRT Contract

    传送门 给了60分的nq暴力还是很资磁的!!! 基本上想的跟正解差不多了但是刚T2去了就没想细节QAQ 大概就是我们逆序求一下每一个点从0时刻开始走到终点需要用的时间f 我们需要找到它遇到的第一个红灯 ...

  2. WCF学习之旅—基于Fault Contract 的异常处理(十八)

       WCF学习之旅—WCF中传统的异常处理(十六) WCF学习之旅—基于ServiceDebug的异常处理(十七) 三.基于Fault Contract 的异常处理 第二个示例是通过定制Servic ...

  3. 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图

    [源码下载] 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Co ...

  4. java-collections.sort异常Comparison method violates its general contract!

    转载:http://www.tuicool.com/articles/MZreyuv 异常信息 java.lang.IllegalArgumentException: Comparison metho ...

  5. JDK7的Comparison method violates its general contract异常

    1.摘要 前一阵遇到了一个使用Collections.sort()时报异常的问题,跟小伙伴@zhuidawugui 一起排查了一下,发现问题的原因是JDK7的排序实现改为了TimSort,之后我们又进 ...

  6. 厦门BRT 硬币型非接触式IC卡分析

    前几天去厦门玩顺便多买了一张BRT的票 也就是如图所示的这种硬币型非接触式IC卡 回来之后用Proxmark3分析了卡内数据得到如下16进制dump内容 UID.发卡日期时间. 最近好懒 懒得写了 有 ...

  7. P6 Enterprise Project Portfolio Contract Management

    Find documentation for Primavera products here: Primavera Cloud Services Primavera Prime Primavera P ...

  8. 重新想象 Windows 8 Store Apps (37) - 契约: Settings Contract

    [源码下载] 重新想象 Windows 8 Store Apps (37) - 契约: Settings Contract 作者:webabcd 介绍重新想象 Windows 8 Store Apps ...

  9. 重新想象 Windows 8 Store Apps (38) - 契约: Search Contract

    [源码下载] 重新想象 Windows 8 Store Apps (38) - 契约: Search Contract 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 ...

随机推荐

  1. Scrum Meeting 0602

    零.说明 日期:2021-6-2 任务:简要汇报两日内已完成任务,计划后两日完成任务 一.进度情况 组员 负责 两日内已完成的任务 后两日计划完成的任务 困难 qsy PM&前端 完成后端管理 ...

  2. activemq实现队列的独有消费

    在我们实际的开发中可能存在这么一种情况,应用程序要向一个队列名为queue的队列中发送3条消息,需要保证这3条消息按顺序消费.必须是第一条消费完,在消费第二条然后是第三条.而我们的程序中可能有时候存在 ...

  3. 2021.8.6考试总结[NOIP模拟32]

    T1 smooth 考场上水个了优先队列多带个$log$,前$80$分的点跑的飞快,后面直接萎了. 其实只需开$B$个队列,每次向对应队列中插入新的光滑数,就能保证队列中的数是单调的. 为了保证不重, ...

  4. iPhone SE切换颜色特效

    Apple 网站的特效, iPhone SE 共有黑.白.红三种颜色,在卷动页面的时候会逐步替换,看起来效果非常时尚,在此供上代码学习. <!DOCTYPE html> <html& ...

  5. 攻防世界 杂项13.can_has_stdio?

    打开发现是由trainfuck编码组成的小星星阵容,果断交给解密网站进行解密, 解密网站:http://ctf.ssleye.com/brain.html flag:flag{esolangs_for ...

  6. Python gpu 显卡小工具 gpu

    安装 pip install gpustat 或者 换源 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade gpust ...

  7. DeWeb部署

    DeWeb部署 部署时需要runtime中的大部分文件 需要的目录有: apps,仅包括需要部署的dll即可 dist,必须.请勿改动 media,非必须,一般媒体文件存在于此目录 upload,必须 ...

  8. Spring Cloud 生产环境性能优化

    先思考几个问题: 什么是百万并发连接? 什么是吞吐量? 操作系统能否支持百万连接? 操作系统维持百万连接需要多少内存? 应用程序维持百万连接需要多少内存? 百万连接的吞吐量是否超过了网络限制? 百万的 ...

  9. SQL告警,执行时间长?教你写一手好 SQL !

    博主(编码砖家)负责的项目主要采用阿里云数据库MySQL,最近频繁出现慢SQL告警,执行时间最长的竟然高达5分钟.导出日志后分析,主要原因竟然是没有命中索引和没有分页处理 . 其实这是非常低级的错误, ...

  10. 2021 羊城杯WriteUP

    比赛感受 题目质量挺不错的,不知道题目会不会上buu有机会复现一下,躺了个三等奖,发下队伍的wp Team BinX from GZHU web Checkin_Go 源码下载下来发现是go语言写的 ...