传送门

给了60分的nq暴力还是很资磁的!!!

基本上想的跟正解差不多了但是刚T2去了就没想细节QAQ

大概就是我们逆序求一下每一个点从0时刻开始走到终点需要用的时间f 我们需要找到它遇到的第一个红灯 这个就是模意义下的一段区间最小值 (把l[i]看做下标 i作为权值)这个可以通过动态开点线段树实现 or 离散化+权值线段树

对于每次询问一样的操作 找到它遇到的第一个红灯然后 + f就可以了qwq

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define inf 2002122500
#define ll long long
#define mxn 100100
using namespace std;
ll L[mxn],r,g,pre[mxn],lsh[mxn];
int mn[mxn*20],ls[mxn*20],rs[mxn*20];
int n,flag,poi;
ll f[mxn],t[mxn];
void pushup(int x){mn[x]=min(mn[ls[x]],mn[rs[x]]);}
void modify(int &x,ll l,ll r,ll d,int val)
{
if(!x) x=++poi;
if(l==r){mn[x]=min(mn[x],val);return;}
int mid=l+r>>1;
if(d<=mid) modify(ls[x],l,mid,d,val);
else modify(rs[x],mid+1,r,d,val);
pushup(x);
}
ll query(int x,ll l,ll r,ll LL,ll RR)
{
if(!x||RR<LL) return inf;
if(l>=LL&&r<=RR) return mn[x];
int mid=l+r>>1;ll ans=inf;
if(LL<=mid) ans=min(ans,query(ls[x],l,mid,LL,RR));
if(RR>mid) ans=min(ans,query(rs[x],mid+1,r,LL,RR));
return ans;
}
int rt,q;ll p;
int main()
{
scanf("%d%I64d%I64d",&n,&g,&r);
memset(mn,48,sizeof(mn));p=g+r;
for(int i=1;i<=n+1;i++) scanf("%I64d",&L[i]),L[i]+=L[i-1];
for(int i=n;i;i--)
{
ll _t=(p-L[i]%p)%p;
ll mn=query(rt,0,p-1,max(0ll,g-_t),p-_t-1);
if(g-_t<0) mn=min(mn,query(rt,0,p-1,(p+g-_t),p-1));
if(mn>n) f[i]=L[n+1]-L[i];
else f[i]=L[mn]-L[i]+(p-(L[mn]-L[i])%p)+f[mn];
modify(rt,0,p-1,L[i]%p,i);
}
scanf("%d",&q);
while(q--)
{
ll _t,ans;scanf("%I64d",&_t);
ll _=_t%p;
ll mn=query(rt,0,p-1,max(0ll,g-_),p-_-1);
if(g-_<0) mn=min(mn,query(rt,0,p-1,(g-_+p),p-1));
if(mn>n) ans=L[n+1]+_t;
else ans=L[mn]+_t+(p-(L[mn]+_t)%p)+f[mn];
printf("%I64d\n",ans);
}
return 0;
}

我现在怎么开始用_做变量名了 越来越毒瘤了(

最新文章

  1. C#使用Jquery zTree实现树状结构显示_异步数据加载
  2. 迭代器模式/iterator模式/对象行为型模式
  3. svn服务器无法访问时检查几个文件:
  4. Xcode集成开发环境的安装
  5. VirtualBox安装debian的详细方法步骤
  6. MySQL 里面的Where 和Having和Count 和distinct和Group By对比
  7. TortoiseGit文件夹和文件图标不显示解决方法
  8. Group by的使用方法
  9. JVM——类的加载过程
  10. Spring MVC常用的注解
  11. PHP安全编程:防止源代码的暴露(转)
  12. C#_串口程序_二次打包_事件响应
  13. 自己写的sql server触发器练练--高手请您跳过吧
  14. iOS基础 - 通知中心(NSNotificationCenter)
  15. jquery学习总结(超级详细)
  16. 持续集成之 Spring Boot 实战篇
  17. IP地址及网络常识
  18. 【原创】大数据基础之Ambari(5)通过Ambari部署Hue
  19. 【Linux】-NO.160.Linux.1 -【升级Centos7】
  20. [转]mysql优化——show processlist命令详解

热门文章

  1. Airtest断言方法
  2. centos 问题解决记录
  3. Js定义一个表单并提交
  4. Delphi 二维码生成
  5. idhttpserver 下载文件
  6. android:imeOptions=&quot;actionDone&quot;
  7. Drone - 安装,搭配 GitLab 下的配置和使用
  8. 【FICO系列】SAP FICO模块-固定资产月结的注意点
  9. 应用安全-XXE(XML外部实体注入)攻防整理
  10. 利用Lua实现二叉查找树并进行各种遍历