http://www.51nod.com/contest/problemList.html#!contestId=72&randomCode=147206

原题水题大赛。。

A.珂朵莉的旅行

发现不管非叶子节点选什么,都可以改变叶子节点来满足条件,所以直接算即可

  1. #include<bits/stdc++.h>
  2. #define REP(i,a,b) for(int i(a);i<=(b);++i)
  3. using namespace std;
  4. typedef long long ll;
  5. const int N=1e6+7,p=1e9+7;
  6. int n,d[N];
  7. inline int read(){char c;int w;
  8. while(!isdigit(c=getchar()));w=c&15;
  9. while(isdigit(c=getchar()))w=w*10+(c&15);return w;
  10. }
  11. int main(){
  12. n=read();
  13. REP(i,1,n-1){
  14. int x,y;x=read(),y=read();
  15. ++d[x];++d[y];
  16. }
  17. ll cnt=1,ans=0;
  18. REP(i,1,n)if(d[i]>1)(cnt<<=1)%=p;
  19. REP(i,1,n)if(d[i]==1)ans+=cnt<<1;else ans+=cnt;
  20. cout<<ans%p<<endl;
  21. return 0;
  22. }

B.奈芙莲的序列

把原序列反过来做LIS

  1. #include<bits/stdc++.h>
  2. #define REP(i,a,b) for(int i(a);i<=(b);++i)
  3. using namespace std;
  4. typedef long long ll;
  5. inline int read(){char c,p=0;int w;
  6. while(!isdigit(c=getchar()))if(c=='-')p=1;w=c&15;
  7. while(isdigit(c=getchar()))w=w*10+(c&15);return p?-w:w;
  8. }
  9. inline char smax(int&x,const int&y){return x<y?x=y,1:0;}
  10. inline char smin(int&x,const int&y){return x>y?x=y,1:0;}
  11. const int N=5e5+5;
  12. int n,a[N],b[N],c[N],d[N];
  13. int main(){
  14. n=read();
  15. REP(i,1,n)a[i]=b[i]=read();
  16. sort(b+1,b+1+n);int m=unique(b+1,b+1+n)-b-1;
  17. REP(i,1,n)c[n+i]=c[n-i+1]=lower_bound(b+1,b+1+m,a[i])-b;
  18. int len=1;d[1]=c[1];
  19. REP(i,2,n<<1){
  20. if(c[i]>d[len])d[++len]=c[i];else *lower_bound(d,d+len,c[i])=c[i];
  21. }
  22. cout<<len;
  23. return 0;
  24. }

C.奈芙莲的护符

基础状压DP

  1. #include<bits/stdc++.h>
  2. #define REP(i,a,b) for(int i(a);i<=(b);++i)
  3. using namespace std;
  4. typedef long long ll;
  5. inline char smax(int&x,const int&y){return x<y?x=y,1:0;}
  6. inline char smin(int&x,const int&y){return x>y?x=y,1:0;}
  7. int n,k,c[22][22],f[1<<21],g[22][1<<21],L[1<<21];
  8. int main(){
  9. scanf("%d%d",&n,&k);if(n==k)return puts("0"),0;
  10. REP(i,1,n)REP(j,1,n)scanf("%d",&c[i][j]);
  11. REP(t,1,n)REP(i,1,n)REP(j,1,n)smin(c[i][j],c[i][t]+c[t][j]);
  12. const int st=(1<<n)-1;
  13. L[1]=0;
  14. REP(i,2,st)L[i]=L[i>>1]+1;
  15. memset(g,0x3f,sizeof g);
  16. REP(i,1,n){
  17. REP(s,1,st)if((s&(s-1))==0)g[i][s]=c[i][L[s&-s]+1];
  18. else g[i][s]=min(g[i][s&(s-1)],c[i][L[s&-s]+1]);
  19. }
  20. memset(f,0x3f,sizeof f);
  21. int ans=f[0];f[0]=0;
  22. REP(s,0,st){
  23. int cnt=0;
  24. REP(i,1,n)if(s>>i-1&1^1)smin(f[s|(1<<i-1)],f[s]+g[i][st^s^(1<<i-1)]);
  25. else ++cnt;
  26. if(cnt==n-k)smin(ans,f[s]);
  27. }
  28. cout<<ans;
  29. return 0;
  30. }

[51Nod]NOIP2018提高组省一冲奖班模测训练(一)题解的更多相关文章

  1. [51Nod]NOIP2018提高组省一冲奖班模测训练(二)

    http://www.51nod.com/contest/problemList.html#!contestId=73&randomCode=4408520896354389006 还是原题大 ...

  2. [51Nod]NOIP2018提高组省一冲奖班模测训练(三) 题解

    链接 A.Anan的派对 题意:Anan想举办一个派对.Anan的朋友总共有 n 人.第i个人如果参加派对会得到 \(c_i\) 的快乐值,除他自己外每多一个人参加他会减少 \(d_i\) 的快乐值. ...

  3. [51Nod]NOIP2018提高组省一冲奖班模测训练(四)翻车记+题解

    链接 下午5点的时候,突然想起来有这个比赛,看看还有一个小时,打算来AK一下,结果因为最近智商越来越低,翻车了,我还是太菜了.上来10分钟先切掉了C和A,结果卡在了B题,唉. A.砍树 一眼题,两遍树 ...

  4. NOIP2018提高组省一冲奖班模测训练(六)

    NOIP2018提高组省一冲奖班模测训练(六) https://www.51nod.com/Contest/ContestDescription.html#!#contestId=80 20分钟AC掉 ...

  5. NOIP2018提高组省一冲奖班模测训练(五)

    NOIP2018提高组省一冲奖班模测训练(五) http://www.51nod.com/Contest/ContestDescription.html#!#contestId=79 今天有点浪…… ...

  6. NOIP2018提高组省一冲奖班模测训练(四)

    NOIP2018提高组省一冲奖班模测训练(四) 这次比赛只AC了第一题,而且花了40多分钟,貌似是A掉第一题里面最晚的 而且还有一个半小时我就放弃了…… 下次即使想不出也要坚持到最后 第二题没思路 第 ...

  7. NOIP2018提高组省一冲奖班模测训练(三)

    NOIP2018提高组省一冲奖班模测训练(三) 自己按照noip的方式考,只在最后一两分钟交了一次 第一题过了,对拍拍到尾. 第二题不会.考试时往组合计数的方向想,推公式,推了一个多小时,大脑爆炸,还 ...

  8. NOIP2018提高组省一冲奖班模测训练(二)

    比赛链接 NOIP2018提高组省一冲奖班模测训练(二) 今天发挥正常,昨天不在状态…… 花了很久A了第一题 第二题打了30分暴力 第三题投机取巧输出test1答案(连暴力都不知道怎么打,太弱了) 2 ...

  9. NOIP2018提高组省一冲奖班模测训练(一)

    比赛链接 https://www.51nod.com/contest/problemList.html#!contestId=72&randomCode=147206 这次考试的题非常有质量 ...

随机推荐

  1. h5调用底层接口的一些知识

    之前接触过这方面的知识,一直想写一些关于代码的文字,但考虑到浪费时间,又不具备大神的实力,也不想去把别人的代码照搬过来,所以一直都是空白着的,今天敲代码的时候,有了一个比较好的想法,第一,定位在学习这 ...

  2. 【Henu ACM Round#19 D】 Points on Line

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 考虑l..r这个区间. 且r是满足a[r]-a[l]<=d的最大的r 如果是第一个找到的区间,则直接累加C(r-l+1,3); ...

  3. DATA_PUMP_DIR impdp 指定导出目录

    1.mkdir /tdms1/oracle/dump 2.sqlplus / as sysdba 3.create directory udir as '/tdms1/oracle/dump'; 4. ...

  4. UnrealEngine4编码风格的思考

    第一次拿到UE4源码,扫了一遍.各种宏定义,各种模板,各种类层次.杂乱无章. 后来慢慢明确其规律: UE4的编码风格是在匈牙利命名法的基础下做了改进,使其更适用游戏引擎业务(业务特点:数据可视编辑.脚 ...

  5. Android带索引联系人列表

    网上Android联系人列表的样例也非常多,都和微信的联系人差点儿相同,因为项目用到了联系人列表索引功能(产品把字母item给去掉了),只是也还是好实现.这里我也来分享分享我的实现,免得以后忘了.那先 ...

  6. 【Hibernate步步为营】--(一对多映射)之单向关联

    上篇文章讨论了双向关联的一对一映射,用了两个章节,主要是从主键和外键两种关联映射展开具体讨论.双向关联的映射须要在两个映射文件里分别加入相互的相应关系.斌刚在相应的类中加入相应的关联类的属性.这样在一 ...

  7. JAVA 不同类载入器命名空间的理解

                曾经一直有这样一个疑惑: 都说在JAVA中,由不同类载入器载入的类在虚拟机中位于不同的命名空间下,不同命名空间下的类相互不可见. 这让我产生了一个迷惑:假设有一个类A使用了ja ...

  8. rgba

    正反两面展示效果 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head& ...

  9. 1.Apache Axis配置文件WSDD详解

    转自:https://jyao.iteye.com/blog/1285516 1. Aapche Axis的Web Service Deployment Descriptor(WSDD)文件参考文档. ...

  10. HDU-5307 He is Flying (FFT)

    Problem DescriptionJRY wants to drag racing along a long road. There are n sections on the road, the ...