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

協(xié)議書 > 開車 > 開車旅行 >

noip2012開車旅行

時(shí)間: 試工2 開車旅行

noip2012開車旅行

  下面是學(xué)習(xí)啦小編為大家整理的noip2012開車旅行解題報(bào)告

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

  先預(yù)處理出每個(gè)城市的最近與次近,可以用C++STL的set。

  然后令g[i][j]為從i點(diǎn)走2^j個(gè)輪回(注意是輪回,不是步)后的位置,f[i][j][0]為從i點(diǎn)走2^j個(gè)輪回后A走過的距離,f[i][j][1]為從i點(diǎn)走2^j個(gè)輪回后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];

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

  詢問的具體做法就是將路徑從長到短枚舉一遍看是否會(huì)走(類似于二進(jìn)制的思想),要特判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 主站蜘蛛池模板: 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 跨境物流_美国卡派_中大件运输_尾程派送_海外仓一件代发 - 广州环至美供应链平台 | 厂厂乐-汇聚海量采购信息的B2B微营销平台-厂厂乐官网 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 飞扬动力官网-广告公司管理软件,广告公司管理系统,喷绘写真条幅制作管理软件,广告公司ERP系统 | 航空铝型材,7系铝型材挤压,硬质阳*氧化-余润铝制品 | 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 高铝砖-高铝耐火球-高铝耐火砖生产厂家-价格【荣盛耐材】 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 纸张环压仪-纸张平滑度仪-杭州纸邦自动化技术有限公司 | 截齿|煤截齿|采煤机截齿|掘进机截齿|旋挖截齿-山东卓力截齿厂家报价 | 安徽成考网-安徽成人高考网| 昆明挖掘机修理厂_挖掘机翻新再制造-昆明聚力工程机械维修有限公司 | 电动车头盔厂家_赠品头盔_安全帽批发_山东摩托车头盔—临沂承福头盔 | 自进式锚杆-自钻式中空注浆锚杆-洛阳恒诺锚固锚杆生产厂家 | UV固化机_UVLED光固化机_UV干燥机生产厂家-上海冠顶公司专业生产UV固化机设备 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 湖北省煤炭供应链综合服务平台| 灌装封尾机_胶水灌装机_软管灌装封尾机_无锡和博自动化机械制造有限公司 | 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 运动木地板_体育木地板_篮球馆木地板_舞台木地板-实木运动地板厂家 | 智能监控-安防监控-监控系统安装-弱电工程公司_成都万全电子 | 芜湖厨房设备_芜湖商用厨具_芜湖厨具设备-芜湖鑫环厨具有限公司 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | 水冷式工业冷水机组_风冷式工业冷水机_水冷螺杆冷冻机组-深圳市普威机械设备有限公司 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 一路商机网-品牌招商加盟优选平台-加盟店排行榜平台 | BHK汞灯-百科|上海熙浩实业有限公司 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 哈希PC1R1A,哈希CA9300,哈希SC4500-上海鑫嵩实业有限公司 | 全自动在线分板机_铣刀式在线分板机_曲线分板机_PCB分板机-东莞市亿协自动化设备有限公司 | 小型气象站_便携式自动气象站_校园气象站-竞道气象设备网 | 移动机器人产业联盟官网| 福州时代广告制作装饰有限公司-福州广告公司广告牌制作,福州展厅文化墙广告设计, | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 成都离婚律师|成都结婚律师|成都离婚财产分割律师|成都律师-成都离婚律师网 | 深圳办公室装修,办公楼/写字楼装修设计,一级资质 - ADD写艺 | 安徽成考网-安徽成人高考网|