CF 187D BRT Contract
传送门
给了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;
}
我现在怎么开始用_做变量名了 越来越毒瘤了(
CF 187D BRT Contract的更多相关文章
- CF187D BRT Contract
考虑如果哪次经过了红灯则显然已经和出发的时间没关系了. 然后我们需要做的是怎么样找到最近的一个是红灯的点. 然后实际下是我们做一个前缀和:\(L_i = \sum d_i\) 然后求\(\min (L ...
- WCF学习之旅—基于Fault Contract 的异常处理(十八)
WCF学习之旅—WCF中传统的异常处理(十六) WCF学习之旅—基于ServiceDebug的异常处理(十七) 三.基于Fault Contract 的异常处理 第二个示例是通过定制Servic ...
- ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'
凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:pac ...
- 重新想象 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 ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- cf Round 613
A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...
- java-collections.sort异常Comparison method violates its general contract!
转载:http://www.tuicool.com/articles/MZreyuv 异常信息 java.lang.IllegalArgumentException: Comparison metho ...
- ARC下OC对象和CF对象之间的桥接(bridge)
在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...
- [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现
1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...
随机推荐
- CKEDITOR无缝粘贴word
由于工作需要必须将word文档内容粘贴到编辑器中使用 但发现word中的图片粘贴后变成了file:///xxxx.jpg这种内容,如果上传到服务器后其他人也访问不了,网上找了很多编辑器发现没有一个能直 ...
- 【CF1243A】Maximum Square【贪心】
题意:给你n个长度为ai的木板,求最大能拼成的矩形为多大 题解:显然贪心每次选最大的进去拼,那么剧需要枚举矩形长度x,看最长的k个能够拼出长度为x的矩形即可 #include<iostream& ...
- ["1", "2", "3"].map(parseInt) 答案是多少?
让我们先看看最直接最粗暴的方式 没错,答案就是:[1, NaN, NaN],那为什么答案是[1, NaN, NaN]呢? 1.让我们先了解一下map函数的定义 JavaScript Array map ...
- xpath进阶
目标: 抓取页面列表信息,并且获取第四个单元格得指定属性 代码: import requests from lxml import etree resp = requests.get('http:// ...
- .NETFramework:System.Net.WebClient.cs
ylbtech-.NETFramework:System.Net.WebClient.cs 提供用于将数据发送到和接收来自通过 URI 确认的资源数据的常用方法 1.返回顶部 1. #region 程 ...
- day06—JavaScript之闭包
转行学开发,代码100天——2018-03-22 第一次听说“闭包”这个词,还是在2015年某个深夜在听一节腾讯课堂的公开课上,当时老师讲什么已经没有清晰的记忆了,只知道是一次web的开发课程. 过了 ...
- hibernate搭建及其增删改查
一.jar包 最基础的hibernatejar包,以及数据库驱动的jar包 二.数据库 t_user表 id int 主键 自动增长 name varchar() 三.配置文件 <?xml ve ...
- css禁止事件
js有多种禁止事件的方法, css也有: pointer-events:none
- css中word-break、word-wrap和white-space的区别
css中word-break.word-wrap和white-space的区别 :https://baijiahao.baidu.com/s?id=1578623236521030997&wf ...
- BZOJ 1109 (LIS)
题面 传送门 分析 设dp[i]是第i个积木在自己的位置上时,前i个积木中最多能回到自己位置的数目. \(dp[i]=max(dp[j])+1 (i>j,a[i]>a[j],a[i]-a[ ...