协议书_协议合同格式模板范本大全

協議書 > 開車 > 開車旅行 >

noip2012開車旅行

時間: 試工2 開車旅行

noip2012開車旅行

  下面是學習啦小編為大家整理的noip2012開車旅行解題報告

  狠經典的倍增題了(雖然以前沒有接觸過,NOIP2013的倍增也沒搞出來,不過倍增算法很好理解,我看了大概算法后代碼都是自己寫的)

  先預處理出每個城市的最近與次近,可以用C++STL的set。

  然后令g[i][j]為從i點走2^j個輪回(注意是輪回,不是步)后的位置,f[i][j][0]為從i點走2^j個輪回后A走過的距離,f[i][j][1]為從i點走2^j個輪回后B走過的距離。

  那么很容易推出:

  g[i][j]=g[g[i][j-1]][j-1];

  f[i][j][0]=f[i][j-1][0]+f[g[i][j-1]][j-1][0];

  f[i][j][1]=f[i][j-1][0]+f[g[i][j-1]][j-1][1];

  第一個詢問就可以O(n)搞出來了(注意無窮大的情況),第二個詢問也是O(m)的。

  詢問的具體做法就是將路徑從長到短枚舉一遍看是否會走(類似于二進制的思想),要特判A走后B無法再走的情況。

  #include

  using namespace std;

  const int maxn=100000+10;

  typedef long long LL;

  struct City

  {

  int h,num;

  bool operator < (const City rhs) const

  {

  return h

  }

  }h[maxn];

  set S;

  set::iterator it;

  int n,x0,m,next[maxn][2],dist[maxn][2],g[maxn][21];

  LL f[maxn][21][2];

  inline void update(City x,City y)

  {

  if(!next[x.num][0])

  {

  next[x.num][0]=y.num;

  dist[x.num][0]=abs(x.h-y.h);

  }

  else if(abs(x.h-y.h)

  {

  next[x.num][1]=next[x.num][0];

  dist[x.num][1]=dist[x.num][0];

  next[x.num][0]=y.num;

  dist[x.num][0]=abs(x.h-y.h);

  }

  else if(abs(x.h-y.h)

  {

  next[x.num][1]=y.num;

  dist[x.num][1]=abs(x.h-y.h);

  }

  else if(!next[x.num][1])

  {

  next[x.num][1]=y.num;

  dist[x.num][1]=abs(x.h-y.h);

  }

  return;

  }

  inline void query(int s,int x,LL& dista,LL& distb)

  {

  for(int i=20;i>=0;i--)

  if(f[s][i][0]+f[s][i][1]<=x&&g[s][i])

  {

  dista+=f[s][i][0];

  distb+=f[s][i][1];

  x-=f[s][i][0]+f[s][i][1];

  s=g[s][i];

  }

  if(next[s][1]&&dist[s][1]<=x)

  dista+=dist[s][1];

  }

  int main()

  {

  scanf("%d",&n);

  for(int i=1;i<=n;i++)

  {

  scanf("%d",&h[i].h);

  h[i].num=i;

  }

  for(int i=n;i;i--)

  {

  S.insert(h[i]);

  it=S.find(h[i]);

  if(it!=S.begin())

  {

  it--;

  update(h[i],*it);

  if(it!=S.begin())

  {

  it--;

  update(h[i],*it);

  it++;

  }

  it++;

  }

  if((++it)!=S.end())

  {

  update(h[i],*it);

  if((++it)!=S.end())

  update(h[i],*it);

  it--;

  }

  it--;

  }

  for(int i=1;i<=n;i++)

  {

  g[i][0]=next[next[i][1]][0];

  f[i][0][0]=dist[i][1];

  f[i][0][1]=dist[next[i][1]][0];

  }

  for(int j=1;j<=20;j++)

  for(int i=1;i<=n;i++)

  {

  g[i][j]=g[g[i][j-1]][j-1];

  f[i][j][0]=f[i][j-1][0]+f[g[i][j-1]][j-1][0];

  f[i][j][1]=f[i][j-1][1]+f[g[i][j-1]][j-1][1];

  }

  scanf("%d",&x0);

  int s0=0;

  LL a=1e15,b=0;

  for(int i=1;i<=n;i++)

  {

  LL dista=0,distb=0;

  query(i,x0,dista,distb);

  if(distb&&(!s0||a*distb>b*dista))

  {

  s0=i;

  a=dista;

  b=distb;

  }

  }

  printf("%d\n",s0);

  scanf("%d",&m);

  while(m--)

  {

  int s,x;

  scanf("%d%d",&s,&x);

  LL dista=0,distb=0;

  query(s,x,dista,distb);

  printf("%lld %lld\n",dista,distb);

  }

  return 0;

  }

5521 主站蜘蛛池模板: 江苏全风,高压风机,全风环保风机,全风环形高压风机,防爆高压风机厂家-江苏全风环保科技有限公司(官网) | 丽陂特官网_手机信号屏蔽器_Wifi信号干扰器厂家_学校考场工厂会议室屏蔽仪 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 海峰资讯 - 专注装饰公司营销型网站建设和网络营销培训 | 高精度电阻回路测试仪-回路直流电阻测试仪-武汉特高压电力科技有限公司 | 精密五金冲压件_深圳五金冲压厂_钣金加工厂_五金模具加工-诚瑞丰科技股份有限公司 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 机构创新组合设计实验台_液压实验台_气动实训台-戴育教仪厂 | 工业用品一站式采购平台|南创工品汇-官网|广州南创 | 锤式粉碎机,医药粉碎机,锥式粉碎机-无锡市迪麦森机械制造有限公司 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 517瓜水果特产网|一个专注特产好物的网站 | 上海租车公司_上海包车_奔驰租赁_上海商务租车_上海谐焕租车 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | 江西高职单独招生-江西单招考试-江西高职单招网| 网站建设_网站制作_SEO优化推广_百度推广开户_朋友圈网络科技 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 莱州网络公司|莱州网站建设|莱州网站优化|莱州阿里巴巴-莱州唯佳网络科技有限公司 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 | 锻造液压机,粉末冶金,拉伸,坩埚成型液压机定制生产厂家-山东威力重工官方网站 | 智能家居全屋智能系统多少钱一套-小米全套价格、装修方案 | 水厂自动化-水厂控制系统-泵站自动化|控制系统-闸门自动化控制-济南华通中控科技有限公司 | 防弹玻璃厂家_防爆炸玻璃_电磁屏蔽玻璃-四川大硅特玻科技有限公司 | 中开泵,中开泵厂家,双吸中开泵-山东博二泵业有限公司 | 深圳品牌设计公司-LOGO设计公司-VI设计公司-未壳创意 | 披萨石_披萨盘_电器家电隔热绵加工定制_佛山市南海区西樵南方综合保温材料厂 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 回转炉,外热式回转窑,回转窑炉-淄博圣元窑炉工程有限公司 | 废气处理设备-工业除尘器-RTO-RCO-蓄热式焚烧炉厂家-江苏天达环保设备有限公司 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 螺杆式冷水机-低温冷水机厂家-冷冻机-风冷式-水冷式冷水机-上海祝松机械有限公司 | 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 首页-瓜尔胶系列-化工单体系列-油田压裂助剂-瓜尔胶厂家-山东广浦生物科技有限公司 | 锂离子电池厂家-山东中信迪生电源|