4009: [Hnoi2015]接水果

Time Limit: 60 Sec  Memory Limit: 512 MB

根源:小商帮科技(公众号:xiaoshangbang)作者:左刀

Description

风见幽香非常喜爱嬉水一个称呼
osu!的嬉戏,其中其极喜爱玩的模式就是是对接水果。由于它们都DT FC 了The big
black,
她认为是游乐太简单了,于是发明了一个进一步难以之版。首先来一个地形图,是平等蔸由
n 个顶峰、n-1 条边组成的塑造(例如图 1被出之扶植包含 8 独顶峰、7
条边)。这颗树上有 P 个盘子,每个盘子实际上是平等长路线(例如图 1 中极 6
到终端 8 的门道),并且每个盘子还有一个权值。第 i
单盘子就是顶点aiai到顶点bibi的门径(由于是栽培,所以从aiai到bibi 的门道是绝无仅有的), 权值为cici。接下来依次会发出Q个水果掉下,每个水果本质上为是同一久途径,第i
单水果是于巅峰 uiui 到巅峰vivi 的途径。 
清香每次需要选择一个盘子去搭当前的水果:一个盘子能接住一个水果,当且仅当盘的门道是水果之路子的子路径(例如
图1惨遭打 3到7 底门径是从1至8之门道的子路径)。 
此规定:从a 到b的路子和由b到
a的途径是同样漫长路。当然为提高难度,对于第 i
单水果,你要选择能接住她的有所盘子吃,权值第 kiki 小的那个盘子,每个盘子可重复使用(没有使用次数之上限:一个盘子接了一个水果后,后面还可承接其他水果,只要她是水果路径的子路径)。幽香认为这游乐很不便,你可知自在解决吃她圈呢? 
统计 1

1、背景

Input

首先行三只数 n和P
和Q,表示树的高低和物价指数的个数和水果之个数。 
搭下n-1 行,每行两单数
a、b,表示树上的a和b 之间出同一久边。树被极按1顶 n标号。 
搭下去 P 行,每行三只数
a、b、c,表示路径也 a 到 b、权值为 c 的盘,其中0≤c≤109109,a不对等b。 
搭下去Q行,每行三独数 u、v、k,表示路径为 u到 v的水果,其中
u不等于v,你用选择第 k小的盘,第k
小得是。

以中国太古的谚语中,有诸多有关性的思维,比如“饱暖思淫欲,饥寒起盗心”,说之凡一个总人口于吃饱喝足之后,可能就会见转运心,而要饥寒交迫的下,可能就见面怀念做土匪,这实际是口以有限种生理状态下延伸出的心理影响。很显然,对于色心而言,首先要发“饱暖”,你非常麻烦想象饿的奄奄一住的人数还有色欲。

Output

于每个果子,输出一行表示选择的盘的权值。

看似的还有“仓廪实而知礼节,衣食足而知荣辱”,礼节和荣辱这同像样精神层面的事物,也得要“仓廪实”,“衣食足”才能够落实。

Sample Input

10 10 10 
1 2 
2 3 
3 4 
4 5 
5 6 
6 7 
7 8 
8 9 
9 10 
3 2 217394434 
10 7 13022269 
6 7 283254485 
6 8 333042360 
4 6 442139372 
8 3 225045590 
10 4 922205209 
10 8 808296330 
9 2 486331361 
4 9 551176338 
1 8 5 
3 8 3 
3 8 4 
1 8 3 
4 8 1 
2 3 1 
2 3 1 
2 3 1 
2 4 1 
1 4 1

眼看与现代社会时会说交之马斯洛的需层级理论是并行适合的,马斯洛说,最基础的是生理需求,然后是平安要求、社会要求、尊重需要和自己超越。这是一个倒金字塔的布局。

Sample Output

442139372 
333042360 
442139372 
283254485 
283254485 
217394434 
217394434 
217394434 
217394434 
217394434

骨子里,马斯洛说的层级中,每个层级也都发生先级别,比如说,生理需求中,空气优于水,水优于食物,食品优于色欲。

Hint

统计 2

  我从不权力号…因为时限大就是变成权限题真的好吧?

  好像自己呢说不发出什么不好的理。

  这题特别有意思的,对于自身这种码废+代码能力差+思维混乱+弱的人来说,这题挺杀时间的…一个上午就算让它跪了。

  啊反正你就是会管一个盘子变成一个要简单只矩形?把一个水果变成一个接触?

  然后便是统计覆盖点的权值第k聊之矩形是谁?

  hin有道理啊我怎么不怕是思念不出呢吧吧?

  然后要您会扫描线的语句
就是一模一样鸣整体二分开裸题了?

  如果不会见之话语,你一定会差分是吧…

  将一个矩形按x轴拆成左加右减,树状数组搞来。

  然后即使是均等道整体二分开裸题了?

  为什么一个个 一百实行都休想的
我也由了如此多也?

  思维混乱+弱啊!

  注意数组要开始两加倍,因为盘子可能发生三三两两个。

#include   <iostream>
#include   <cstdio>
#include    <cstdlib>
#include    <algorithm>
#include    <vector>
#include    <cstring>
#include    <queue>
#include    <complex>
#include    <stack>
#define LL long long int
#define dob double
using namespace std;

const int N = 40010;
struct Node{int to,next;}E[N<<1];
struct Plate{
  int xl,xr,yl,yr,val;
  bool operator <(const Plate &p)const{
    return val<p.val;
  }
}plate[N<<1];
struct Fruit{
  int x,y,k,id;
  bool operator <(const Fruit &f)const{
    return x<f.x;
  }
}fruit[N],que1[N],que2[N];
struct Data{
  int x,l,r,val;
  bool operator <(const Data &l)const{
    return x<l.x;
  }
}Line[N<<1];
int n,P,Q,Ans[N],cnt,head[N],tot;
int fa[21][N],dep[N],size[N],son[N],top[N],dfn[N],tim,last[N];
struct Bit{
  int A[N],vis[N];
  inline int lb(int x){
    return x&-x;
  }
  inline void upd(int x,int val){
    for(;x<=n;x+=lb(x)){
      if(vis[x]!=tim)A[x]=0,vis[x]=tim;
      A[x]+=val;
    }
  }
  inline void update(int l,int r,int val){
    upd(l,val);upd(r+1,-val);
  }
  inline int query(int x,int ans=0){
    for(;x;x-=lb(x)){
      if(vis[x]!=tim)A[x]=0,vis[x]=tim;
      ans+=A[x];
    }
    return ans;
  }
}T;

inline int gi(){
  int x=0,res=1;char ch=getchar();
  while(ch>'9'||ch<'0'){if(ch=='-')res*=-1;ch=getchar();}
  while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
  return x*res;
}

inline void link(int u,int v){
  E[++tot]=(Node){v,head[u]};
  head[u]=tot;
}

inline void join(int x){
  for(int i=1;i<=15;++i)
    fa[i][x]=fa[i-1][fa[i-1][x]];
}

inline void dfs1(int x,int fat){
  fa[0][x]=fat;dep[x]=dep[fat]+1;join(x);
  dfn[x]=++tim;
  for(int e=head[x];e;e=E[e].next){
    int y=E[e].to;if(y==fa[0][x])continue;
    dfs1(y,x);
  }
  last[x]=tim;
}

inline int lca(int x,int y){
  if(x==y)return x;
  if(dep[x]<dep[y])swap(x,y);
  for(int i=15;i>=0;--i)
    if(dep[fa[i][x]]>=dep[y])
      x=fa[i][x];
  if(x==y)return x;
  for(int i=15;i>=0;--i)
    if(fa[i][x]!=fa[i][y])
      x=fa[i][x],y=fa[i][y];
  return fa[0][x];
}

inline int jump(int x,int goal){
  for(int i=15;i>=0;--i)
    if(dep[fa[i][x]]>dep[goal])
      x=fa[i][x];
  return x;
}

/*
  把答案(盘子)二分。
  把左边的矩形加进去。
  然后check,calc一下盘子个数,和k比较一下,划分一下。
  递归处理。
*/

inline void solve(int optl,int optr,int l,int r){
  if(optl>optr || l>r)return;++tim;
  if(optl==optr){
    for(int i=l;i<=r;++i)
      Ans[fruit[i].id]=plate[optl].val;
    return;
  }
  int mid=(optl+optr)>>1,tot1=0,tot2=0,k=l,tmp=0,cnt1=1,cnt2=l;
  for(int i=optl;i<=mid;++i){
    Line[++tmp]=(Data){plate[i].xl,plate[i].yl,plate[i].yr,1};
    Line[++tmp]=(Data){plate[i].xr+1,plate[i].yl,plate[i].yr,-1};
  }
  sort(Line+1,Line+tmp+1);
  while(cnt1<=tmp && cnt2<=r){
    if(Line[cnt1].x<=fruit[cnt2].x){
      int xl=Line[cnt1].l,xr=Line[cnt1].r,val=Line[cnt1].val;
      T.update(xl,xr,val);cnt1++;
    }
    else{
      int sum=T.query(fruit[cnt2].y);
      if(sum>=fruit[cnt2].k)que1[++tot1]=fruit[cnt2++];
      else fruit[cnt2].k-=sum,que2[++tot2]=fruit[cnt2++];
    }
  }
  while(cnt2<=r){
    int sum=T.query(fruit[cnt2].y);
    if(sum>=fruit[cnt2].k)que1[++tot1]=fruit[cnt2++];
    else fruit[cnt2].k-=sum,que2[++tot2]=fruit[cnt2++];
  }
  for(int i=1;i<=tot1;++i)fruit[k++]=que1[i];
  for(int i=1;i<=tot2;++i)fruit[k++]=que2[i];
  solve(optl,mid,l,l+tot1-1);
  solve(mid+1,optr,l+tot1,r);
}

int main()
{
  freopen("fruit_hnoi2015.in","r",stdin);
  freopen("fruit_hnoi2015.out","w",stdout);
  n=gi();P=gi();Q=gi();
  for(int i=1;i<n;++i){
    int u=gi(),v=gi();
    link(u,v);link(v,u);
  }
  dfs1(1,1);
  for(int i=1;i<=P;++i){
    int a=gi(),b=gi(),c=gi(),u=lca(a,b);
    if(dfn[a]>dfn[b])swap(a,b);
    if(u!=a)plate[++cnt]=(Plate){dfn[a],last[a],dfn[b],last[b],c};
    else{
      int v=jump(b,a);
      if(dfn[v]>1)plate[++cnt]=(Plate){1,dfn[v]-1,dfn[b],last[b],c};
      if(last[v]<n)plate[++cnt]=(Plate){dfn[b],last[b],last[v]+1,n,c};
    }
  }
  for(int i=1;i<=Q;++i){
    int a=gi(),b=gi(),k=gi();
    if(dfn[a]>dfn[b])swap(a,b);
    fruit[i]=(Fruit){dfn[a],dfn[b],k,i};
  }
  sort(plate+1,plate+cnt+1);
  sort(fruit+1,fruit+Q+1);
  solve(1,cnt,1,Q);
  for(int i=1;i<=Q;++i)printf("%d\n",Ans[i]);
  return 0;
}

  

 

在改造开放前,中国丁居于食品不够状态,这个时候能满足生理需求就会获比较特别之满足感,大部分丁之“消费升级”,是期望能用到更多之粮票,从而使自己同亲人打吃得饱转向吃得好。很显,这个等级绝大部分人数是无章程落实生理需求之上的再次胜要求的,只能当生理需求中营升级。

诚如大家认为,中国从解放后到今,一共经历过三赖消费浪潮,第一潮是改制开放的初,轻工纺织产品消费稳中有升,食品比重降。这象征了多数人口,尤其是城镇人口在凭着饱方面业已主导无最好好的题目了,部分人(尤其是城里人)开始置办自行车,收音机、手表、缝纫机,穿还多颜色与重新时髦的服,人们来矣少量之文娱活动。

其次糟糕消费升级,则是
从20世纪80年代末,到90年间末,这个时候的人们发出重多的闲钱来购买又好之活,代表性产品就是是“新三起(冰箱、彩电、洗衣机)”。在这个等级的头,人们的琢磨占居猛烈的撞中,姓“社”还是姓“资”被大规模谈论,崔健在80年间末初步带了摇滚潮,一直延伸到全90年代,代表了此时之反叛青年在成人历程遭到当的痛思维碰撞。1992年,小平同志南巡讲话后,一夜之间12万首长辞职下海,不辞官下海的还闹绝对底多。人民日报甚至发文《要发财忙起来》的章,这个路造就的领导人员型富豪,实际上比今天底互联网新贵还要多。到了此等级的终,高档消费品如摄像机、大屏幕电视等初步兴起,城镇中起了比较宽裕的阶层。

老三不行消费升级,则是于2000年下一律直到现在,大部分总人口的生理需求基本获得满足,城镇人口中,对于报道、娱乐、旅游、教育同医疗保健的出在快升高,房地产、汽车等大件产品需求量突飞猛进。

打三不良消费升级可以视以下几点:

1、消费升级之根基是入账增长以及花信心,收入增高后,人们可买入又多以前“买不起”或购置了会面以为很惋惜的制品,有矣花信心,就敢借钱买本打无起的事物;

2、消费升级之长河,也是社会消费品大提高与大地贸易大进步的等级。

3、消费升级之过程,也是游玩与体会提升的历程,从太开头以裹腹之粮票,到现之畅游、娱乐、家庭教育,娱乐和感受提升不断增长。

消费升级的真相,是络绎不绝满足“人性”中之种欲望。

下洗衣机,是为解放双手,在冬天莫用当冷之水中泡。

观看电视,是盖人口用打与饱满生活,从节目以及电视剧被营自身满足;

市房屋,是因为人的动物性中,对于领地的占据欲和通过取得的安全感;

还,在VR设备的研发及销售中,第一单想到的商业用途是“色欲”。

有了这个基础,对于花升级就见面再好明,不管科技怎么提高,社会怎么提高,90晚要么00继出小个性化的求偶,但中心的心性是未见面换的,消费升级之真面目,就是为着还好之满足“人性”,比如吃的重复细、可以更懒惰、可以叫确认、更加突出、更好的满足性欲等等。

2、基础

消费升级的关键基础,当然是来钱。这里的发钱,是负一个异常群体的发出钱,而无是个别人口的有钱。

中国底GDP保持了几十年的快发展,哪怕最近几乎年降速,也保持在6%~7%内,这就算代表全部社会之财富在迅速的积聚。比如说,官方在2016年之布道是,到2020年,相比2010年的GDP要翻一番,人均收入为使翻一番。

冲国家统计局2017年2月28日颁布的《中华人民共和国2016年国民经济与社会进步统计公报》显示:2016年全国居民人均可决定收入23821状元,比去年提高8.4%,扣除价格因素,实际增长6.3%;全国居民人均可控制收入中位数20883第一,增长8.3%。按常住地分,城镇居民人均可决定收入33616长,比去年提高7.8%,扣除价格因素,实际增长5.6%;城镇居民人均可决定收入中位数31554状元,增长8.3%。所以2016年全国乡镇居民人均可控制收入33616首位。

也就是说,居民的实际收入增长在扣除物价因素后,是保障增长的。如果因2000年呢重心,哪怕每年的骨子里增长仅生5%,到2017年岁末,居民扣除物价上涨因素下的实际收入也会见较2000年强出129%。这代表居民发出更多之“闲钱”可用于决定。

遵照国家有关机关的分,2016年的获益阶层划分如下:

收益:人均可决定收入5529头版

中低档收益:人均可决定收入12899元

中档收入:人均可决定收入20924冠

中上收入:组人均可控制收入31990老大

愈收益:人均可决定统计收入59259首届

若2016年,城镇人均可决定收入上了33616初,超过了中上收入的正经。按照2016年城镇人口8.2亿口之统计,中位数差不多4亿总人口到了中上收入的正儿八经。如果照中收入之业内吧,人数会多浩大。

之所以,不管“中产阶级”怎么定义,整个中收入之上人群的数码实在是不停在扩展之。而且,中国之城镇化率目前不足60%,依然拥有比充分的提高空间。

除了实际的工薪提高以外,反应消费者信心的“消费信念指数”和“消费预期指数”以及影响消费质量之“消费者满意指数”,目前还处上升的状态,处于历史比较高水准,尤其是2016年5月来说,增长较为强烈:

眼看说明消费者不管对眼前底费现象还是鹏程底花费预期,都是较乐天的,说白了,就是敢于花钱了。

每当“敢花钱”之后,世界每百姓之呈现其实是差不多的,美国,韩国齐国,在经济前行状态不错的当儿,消费信念指数爆棚,信用卡吧为刷爆,最终爆发信用卡危机,在中原,类似之成品是“消费贷”。

这几年来,消费贷发展颇为迅猛,成为了吸血神器,甚至多可怜商家之年化利率都超过了36%,这实际上是坏恐惧的。90继同00后的孤身子女们,身处经济不行发展之变革中,在没有赚钱能力的状下,先学会了怎么去花,从割肾及裸贷,让消费升级蒙上了同一交汇阴影。

可是,目前国家对于消费贷开始了严的管控,这对于客观之,理性的费引导是起积极意义的。

当实际工资的提高以及消费信心的增长之下,消费升级来矣于坚实的根底。你望天猫双十一1682亿之消费量,再省阿里这样大体量还能维持61%底营收增长,就能知道消费升级之能力发生多好。

3、90后

好明显,消费升级与80晚同90继底崛起是有关的,尤其是90后,由于生环境、视野、理念的变更,消费观念跟过去就大不相同,所以您才见面视知识付费、音乐版权、视频付费等在昔日且依赖盗版的家业,到90后即时无异于替都越发多之丁肯付费来分享了。

冲麦肯锡2017年初发底《2017年华夏买主调查报告》显示,“90晚”这等同代表将会见是指向费增长贡献最要命的一个群体。麦肯锡预计,“90后”消费群体占中国人口之16%。从本到2030年,他们以贡献中国到底花费增长之20%之上,高于其它任何人群。

自从麦肯锡的报可以看来,以90后为表示的“消费升级”,有如下的倾向:

1、倾向购买又贵的出品;

2、健康意识增强;

3、更加淡薄品牌,注重个性化;

4、注重性价比;

5、愿意呢重复好的劳动、设计与人品支付溢价。

自从这些主要词可以望,消费升级将人成为消费之持有者,品质,性价比,个性化,替代了追求价格没有及酷品牌。说到底,这些变迁还是顺“更好之为人性服务”的门道在迈入。比如说,进一步解放双手的洗碗机,2016年增长率超过100%;代表身份地位相当认同感的,以BBA为代表的豪华车,2017年增长率有望接近20%;为脾气中之“贪生怕死”准备的医疗险,则以2017年上半年增强了102%,购买者大部分吗20大抵年份之小伙子。

倘跟是类似的是,由于个性化和性价比之言情,很多怪品牌都面临了滑坡,比如有的奢侈品和大牌的用品,这里不再一一举例。

自然,90继群体也分为不同之子群体,不同子群体在花升级中的呈现是无相同的,比如一些会追求更贵的成品,有的则会追求更好之性价。

麦肯锡将90继分成了5单门类,如下图所著,供各位参考:

再次过几年即将走及社会的00晚群体,由于家更红火,也基本上属于独身子女,在自己的“人性”满足方面会再进一步。被AI赋能的各种产品以会晤大方出现,以满足新一代青年的求,比如说,小米的“小爱同学”智能音箱以及那相关的智能电器,动动嘴巴便会操纵大部分底干活,将“懒癌”继续发扬光大。

4、问题

我们涉了费升级之本来面目,是重复好之满足性。而事实上,人性在几千年来直接还并未变化,变化之唯有是发售的成品形态。

诸如为太太的年轻贩卖各类化妆品保健品,给儿童的傅贩卖各种教育培养,给青少年的个性化贩卖各种数据产品,给丁的担忧贩卖各种知识产品,给老的正规贩卖各种医疗保健品等等,都是属这个时期最好流行的活形象。

咱俩前面分析过,消费升级的有限分外基础在扣除物价上涨因素之后,实际工资的涨和对此消费之信念,其实,最根本的凡实际工资相对于付出的水涨船高是刚刚于的。

依据麦肯锡的查证,目前华夏面临家庭债务比例上升以及工资增速下降之题材。从2012年及2016年,中国家家债务占GDP比重达新大,从30%增至45%。同一期间,收入增长起来慢,从2012之10.1%,放缓至2016年之6.3%。不过在成本也上升了38%,北京、上海、深圳的房价涨一加倍。此外,2012年及2016年里,65年以上老人数量的多,使得家庭治疗、生活的资本也会延续稳中有升。

可是,随着大城市开始人员之“清理分流”,目前颇城市的总人口流入速度已经大幅下滑,尤其是首都,经过冬天之同等把火后,分流速度加速,部分人口以见面往2,,3丝城市去发展,相应的基金将会见大幅回落,日常生活的费支出是休肯定会跌之。

另外,消费贷领域由于前的乱象,国家在抓紧时间整治,近期啊不绝于耳传出该领域资金紧张的题材,这将大幅回落学生贷和超过高利率的高利贷等制品,客观上或者会见潜移默化年轻人的费额度。不过,随着社会群体对于花贷形式之承认,更多人口见面参与合理合法的花贷,两互抵消,消费贷在连续几年应还有增长之半空中。

使中国之城镇化的路还当继承,消费保持平静的滋长基本上是可以预期的,这吗也连续几十年的“消费升级”的滋长留下了光阴及空中。

5、机会

若打90晚及00继的特质去分析,你永远不见面掌握消费升级之产一个风口在乌,因为这些风口受到的各种影响因素最为多了。

然而倘若起性情之角度来考虑,则会较的清。

人口会见愈发疲惫。所以洗碗机,扫地机,智能音箱这类似的智能帮手等出品会进一步普及。动动按钮,动动嘴巴,一切搞定,多出来的辰用来分享在。

丁会晤愈来愈厚享受。所以旅游产业还是发生大量的半空中,尤其是讲求个性化的自助游,个性化更胜的民宿。此外,按摩椅,高档车等,在共享经济及消费贷的助力下,都见面不断前进。

丁会面越加重娱乐。所以成熟之沉浸式AR/VR产品,更加智能与剧目丰富的家庭影院产品会愈普及,国产剧拿会及美剧一样,按季播放,优胜劣汰。

丁会晤越来越小心健康。所以,医疗保险,健康食品,健身跑步等,会惨遭更加多的尊重。

……

前程,在挺数据以及人为智能高度发展后,人工智能将赋能几乎有的传统产业,重复性的累为大幅度降低,人类用见面把还多之时光用于创造性的行事。到一定之时段,“消费升级”将荡然无存,而“按需要花”这种共产主义的定义,将会晤逐渐抬头。当然,这个时只是是一个期望而已。

来自:小商帮科技(公众号:xiaoshangbang)  转载请证实出处