当前位置: 首页 > news >正文

[NOIP 2012 提高组] 开车旅行 的AC代码

传送门

#include<bits/stdc++.h>
using namespace std;
#define int long longconst int N=1e5+10;int n,h[N],f[N][18],sa[N][18],sb[N][18],A[N],B[N];
set<int>s;
map<int,int>mp;main(void){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);	cin>>n;for(int i=1;i<=n;i++){cin>>h[i];mp[h[i]]=i;}s.insert(h[n]);for(int i=n-1;i>=1;i--){//一路向东 set<int>::iterator it=s.lower_bound(h[i]);vector<int>t;if(it!=s.end()){t.push_back(*it);if(next(it)!=s.end())t.push_back(*next(it));}if(it!=s.begin()){t.push_back(*prev(it));if(prev(it)!=s.begin())t.push_back(*prev(prev(it)));}sort(t.begin(),t.end());if(t.size()>1){int p=0,q=0;for(int j=1;j<t.size();j++){if(abs(h[i]-t[j])<abs(h[i]-t[p])){p=j;}}if(!p)q=1;for(int j=1;j<t.size();j++){if(abs(h[i]-t[j])<abs(h[i]-t[q]) and p!=j){q=j;}}A[i]=mp[t[q]];B[i]=mp[t[p]];}else{B[i]=mp[t[0]];}s.insert(h[i]);}//	for(int i=1;i<=n;i++){
//		cout<<"i:"<<i<<"  A:"<<A[i]<<"  B:"<<B[i]<<endl;
//	} for(int i=1;i<=n;i++){f[i][0]=A[i];f[i][1]=B[A[i]];}for(int j=2;j<=17;j++){for(int i=1;i<=n;i++){f[i][j]=f[f[i][j-1]][j-1];}}for(int i=1;i<=n;i++){sa[i][0]=sa[i][1]=abs(h[i]-h[A[i]]);sb[i][0]=0;sb[i][1]=abs(h[A[i]]-h[B[A[i]]]);}for(int j=2;j<=17;j++){for(int i=1;i<=n;i++){sa[i][j]=sa[i][j-1]+sa[f[i][j-1]][j-1];sb[i][j]=sb[i][j-1]+sb[f[i][j-1]][j-1];}}int x,id=0;double ans=1e15;cin>>x;for(int i=1;i<=n;i++){int la=0,lb=0,now=i,cnt=0;for(int j=17;j>=0;j--){if(!f[now][j] or la+lb+sa[now][j]+sb[now][j]>x)continue;la+=sa[now][j];lb+=sb[now][j];cnt+=1<<j;now=f[now][j];}if(lb!=0){if(fabs(double(la)/double(lb)-ans)<1e-9 and h[i]>h[id])id=i;if(double(la)/double(lb)<ans)ans=double(la)/double(lb),id=i;}}cout<<id<<endl;int q;cin>>q;while(q--){int now;cin>>now>>x;int la=0,lb=0,cnt=0;for(int j=17;j>=0;j--){if(!f[now][j] or la+lb+sa[now][j]+sb[now][j]>x)continue;la+=sa[now][j];lb+=sb[now][j];cnt+=1<<j;now=f[now][j];}cout<<la<<' '<<lb<<endl;}//Lappland ForEver
}
http://www.hskmm.com/?act=detail&tid=34855

相关文章:

  • Voice Chat: Resolving Lag and Stuttering with a Jitter Buffer
  • 2025 年报警器经销商最新推荐榜单:全面剖析海湾、青鸟等品牌服务商优势,为您筛选优质可靠合作伙伴燃气 / 太阳能 / 交通道路报警器推荐
  • 结构体
  • 专栏导航:《数据中心网络与异构计算:从瓶颈突破到架构革命》 - 实践
  • 扫描线总结
  • 2025年10月抗老面霜推荐:小鸟传领衔五强对比评测榜
  • 基于STM32芯片通过CAN总线控制电机运动
  • 2025 酒店家具厂家最新推荐榜:北木斋领衔五大新锐品牌,品质与创新双优之选全解析
  • 文献阅读笔记格式
  • Stream流
  • JS中的值传递和引用传递
  • 基于Java+Springboot+Vue开发的母婴商城管理系统源码+运行步骤
  • 乐理和蜂鸣器的实现
  • CF1288C Two Arrays 分析
  • 流水线
  • 基于MATLAB的谐波分析实现方案
  • 一文详解 | 纷享销客CRM如何助力快消巨头蒙牛实现全场景数字化转型
  • AI生成代码系列:开源代码片段检测的有效方法
  • 基于进化算法的自动神经架构搜索
  • 【tinyusb】首次使用
  • 2025 年西安标志标识厂家最新推荐排行榜:聚焦西北优质服务商,精选实力企业助您精准选型
  • 打卡
  • 2025年10月豆包关键词排名优化服务推荐排行榜:十大服务商深度对比与评测指南
  • 2025年10月豆包关键词排名优化服务推荐排行榜单:十大服务商深度对比与评测分析
  • 2025年10月豆包关键词排名优化服务排行榜:十家优质服务商综合评测与选择指南
  • 第五届计算机图形学、人工智能与数据处理国际学术会议
  • 利用arm板chroot修改其上位机的文件系统
  • 罗氏线圈开口处靠近电流易受干扰:原因、影响与抗干扰对策​
  • 一文看懂zk-STARK协议
  • 基于uIP协议栈移植FreeModbus TCP的方案