[51Nod]NOIP2018提高组省一冲奖班模测训练(一)题解
http://www.51nod.com/contest/problemList.html#!contestId=72&randomCode=147206
原题水题大赛。。
A.珂朵莉的旅行
发现不管非叶子节点选什么,都可以改变叶子节点来满足条件,所以直接算即可
#include<bits/stdc++.h>
#define REP(i,a,b) for(int i(a);i<=(b);++i)
using namespace std;
typedef long long ll;
const int N=1e6+7,p=1e9+7;
int n,d[N];
inline int read(){char c;int w;
while(!isdigit(c=getchar()));w=c&15;
while(isdigit(c=getchar()))w=w*10+(c&15);return w;
}
int main(){
n=read();
REP(i,1,n-1){
int x,y;x=read(),y=read();
++d[x];++d[y];
}
ll cnt=1,ans=0;
REP(i,1,n)if(d[i]>1)(cnt<<=1)%=p;
REP(i,1,n)if(d[i]==1)ans+=cnt<<1;else ans+=cnt;
cout<<ans%p<<endl;
return 0;
}
B.奈芙莲的序列
把原序列反过来做LIS
#include<bits/stdc++.h>
#define REP(i,a,b) for(int i(a);i<=(b);++i)
using namespace std;
typedef long long ll;
inline int read(){char c,p=0;int w;
while(!isdigit(c=getchar()))if(c=='-')p=1;w=c&15;
while(isdigit(c=getchar()))w=w*10+(c&15);return p?-w:w;
}
inline char smax(int&x,const int&y){return x<y?x=y,1:0;}
inline char smin(int&x,const int&y){return x>y?x=y,1:0;}
const int N=5e5+5;
int n,a[N],b[N],c[N],d[N];
int main(){
n=read();
REP(i,1,n)a[i]=b[i]=read();
sort(b+1,b+1+n);int m=unique(b+1,b+1+n)-b-1;
REP(i,1,n)c[n+i]=c[n-i+1]=lower_bound(b+1,b+1+m,a[i])-b;
int len=1;d[1]=c[1];
REP(i,2,n<<1){
if(c[i]>d[len])d[++len]=c[i];else *lower_bound(d,d+len,c[i])=c[i];
}
cout<<len;
return 0;
}
C.奈芙莲的护符
基础状压DP
#include<bits/stdc++.h>
#define REP(i,a,b) for(int i(a);i<=(b);++i)
using namespace std;
typedef long long ll;
inline char smax(int&x,const int&y){return x<y?x=y,1:0;}
inline char smin(int&x,const int&y){return x>y?x=y,1:0;}
int n,k,c[22][22],f[1<<21],g[22][1<<21],L[1<<21];
int main(){
scanf("%d%d",&n,&k);if(n==k)return puts("0"),0;
REP(i,1,n)REP(j,1,n)scanf("%d",&c[i][j]);
REP(t,1,n)REP(i,1,n)REP(j,1,n)smin(c[i][j],c[i][t]+c[t][j]);
const int st=(1<<n)-1;
L[1]=0;
REP(i,2,st)L[i]=L[i>>1]+1;
memset(g,0x3f,sizeof g);
REP(i,1,n){
REP(s,1,st)if((s&(s-1))==0)g[i][s]=c[i][L[s&-s]+1];
else g[i][s]=min(g[i][s&(s-1)],c[i][L[s&-s]+1]);
}
memset(f,0x3f,sizeof f);
int ans=f[0];f[0]=0;
REP(s,0,st){
int cnt=0;
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)]);
else ++cnt;
if(cnt==n-k)smin(ans,f[s]);
}
cout<<ans;
return 0;
}
[51Nod]NOIP2018提高组省一冲奖班模测训练(一)题解的更多相关文章
- [51Nod]NOIP2018提高组省一冲奖班模测训练(二)
http://www.51nod.com/contest/problemList.html#!contestId=73&randomCode=4408520896354389006 还是原题大 ...
- [51Nod]NOIP2018提高组省一冲奖班模测训练(三) 题解
链接 A.Anan的派对 题意:Anan想举办一个派对.Anan的朋友总共有 n 人.第i个人如果参加派对会得到 \(c_i\) 的快乐值,除他自己外每多一个人参加他会减少 \(d_i\) 的快乐值. ...
- [51Nod]NOIP2018提高组省一冲奖班模测训练(四)翻车记+题解
链接 下午5点的时候,突然想起来有这个比赛,看看还有一个小时,打算来AK一下,结果因为最近智商越来越低,翻车了,我还是太菜了.上来10分钟先切掉了C和A,结果卡在了B题,唉. A.砍树 一眼题,两遍树 ...
- NOIP2018提高组省一冲奖班模测训练(六)
NOIP2018提高组省一冲奖班模测训练(六) https://www.51nod.com/Contest/ContestDescription.html#!#contestId=80 20分钟AC掉 ...
- NOIP2018提高组省一冲奖班模测训练(五)
NOIP2018提高组省一冲奖班模测训练(五) http://www.51nod.com/Contest/ContestDescription.html#!#contestId=79 今天有点浪…… ...
- NOIP2018提高组省一冲奖班模测训练(四)
NOIP2018提高组省一冲奖班模测训练(四) 这次比赛只AC了第一题,而且花了40多分钟,貌似是A掉第一题里面最晚的 而且还有一个半小时我就放弃了…… 下次即使想不出也要坚持到最后 第二题没思路 第 ...
- NOIP2018提高组省一冲奖班模测训练(三)
NOIP2018提高组省一冲奖班模测训练(三) 自己按照noip的方式考,只在最后一两分钟交了一次 第一题过了,对拍拍到尾. 第二题不会.考试时往组合计数的方向想,推公式,推了一个多小时,大脑爆炸,还 ...
- NOIP2018提高组省一冲奖班模测训练(二)
比赛链接 NOIP2018提高组省一冲奖班模测训练(二) 今天发挥正常,昨天不在状态…… 花了很久A了第一题 第二题打了30分暴力 第三题投机取巧输出test1答案(连暴力都不知道怎么打,太弱了) 2 ...
- NOIP2018提高组省一冲奖班模测训练(一)
比赛链接 https://www.51nod.com/contest/problemList.html#!contestId=72&randomCode=147206 这次考试的题非常有质量 ...
随机推荐
- oracle基础入门(四)
一:其实oracle的语法跟sql servce 挺像的只有一些个别的差异而已 1):安装Oracle的数据库一般它的表中会自带了两站表: 是 emp(员工表) , dept(部门) 单表查询 sel ...
- HDU 4406 GPA
GPA Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: 440664 ...
- mysql(for update)悲观锁总结与实践
悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态.悲观锁的实现,往往依靠数据库提供的锁机制( ...
- js获取css
原帖地址:http://kingphp.blog.163.com/blog/static/20042324420120109438458/ 我们通过dom.style获得的属性是有限制的,只能获取ht ...
- 从串口设置、读取、并分析um220模块的数据
转载请注明:http://blog.csdn.net/wang_zheng_kai 导航制导与控制实验室 2014年11月10日 好久没有写博客了,先从一个小小的程序開始一段新的历程吧. 近期的项目主 ...
- linux添加开机启动项的方法介绍
使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下:chkconfig --list可能输出如下:openvpn 0:关闭 1:开启 ...... 6:关闭 ...
- docker 笔记1
如果想要删除所有container的话再加一个指令: docker stop $(docker ps -a -q) 如果想要删除所有container的话再加一个指令: docker rm $(doc ...
- 简单缓存Cache
接口 interface ICache { /// <summary> /// 添加 /// </summary> /// <param name="key&q ...
- Spring MVC 注解式
1.注解式控制器简介 一.Spring2.5之前,我们都是通过实现Controller接口或其实现来定义我们的处理器类.已经@Deprecated. 二.Spring2.5引入注解式处理器支持,通 ...
- 打印机共享 : 客户端 连接服务器打印机时提示"无法连接到打印机“
1.就是重启一下服务器端的Print Spooler服务就行了,这么简单! 2.修改打印机的共享名 操作无法完成(错误0x00000709).再次检查打印机名称,并确保打印机已连接到网络.(xp系统本 ...