博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF 187D BRT Contract
阅读量:5911 次
发布时间:2019-06-19

本文共 1721 字,大约阅读时间需要 5 分钟。

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

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

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

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

#include
#include
#include
#include
#define inf 2002122500#define ll long long#define mxn 100100using 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&&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;}

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

转载于:https://www.cnblogs.com/hanyuweining/p/10321927.html

你可能感兴趣的文章
js数组实现不重复插入数据
查看>>
HDU 4089 Activation
查看>>
Linux 上安装 Subversion
查看>>
PHP5.4第二天——数组、多维数组和数组函数
查看>>
MySQL数据库中delimiter的作用概述
查看>>
unigui验证微信服务器的有效性
查看>>
python PIL except: IOError: decoder jpeg not available
查看>>
Pyp 替代sed,awk的文本处理工具
查看>>
看电影读小说,你就能懂经济学
查看>>
android 开发环境安装和测试中常出现的问题
查看>>
转---9 个开始使用 C++11 的理由
查看>>
Android与服务“.NET研究”器端数据交互
查看>>
继续谈谈Twisted
查看>>
IPC 有命管道
查看>>
groovy string类型转换成int(来自csdn)不要问为什么系列6
查看>>
Objective-C equivalent of Java Vector/ ArrayList
查看>>
事件的好处~实现对修改的封闭,对扩展的开放!~续
查看>>
详解 ML2 Core Plugin(I) - 每天5分钟玩转 OpenStack(71)
查看>>
OC多态
查看>>
python爬虫中文网页cmd打印出错问题解决
查看>>