NOIP 2014 提高组 题解
NOIP 2014 提高组 题解
No 1. 生活大爆炸版石头剪刀布
http://www.luogu.org/problem/show?pid=1328
这是道大水题,我都在想怎么会有人错了,没算法,直接模拟,别读错题.
][]={{,,,,},
{,,,,},
{,,,,},
{,,,,},
{,,,,}};
int n,na,nb;
],b[];
int s1,s2;
int main()
{
ios_base::sync_with_stdio();
cin>>n>>na>>nb;
;i<=na;i++)
{
cin>>a[i];
}
;i<=nb;i++)
{
cin>>b[i];
}
,f2=;
;i<=n;i++)
{
f1++;
f2++;
;
;
) s1++;
) s2++;
}
cout<<s1<<' '<<s2<<endl;
;
}
No 2. 联合权值
http://www.luogu.org/problem/show?pid=1351
同样是水题,用加法结合律.
首先,距离为2的两点,必有一个节点与他们都相连.
第一个要求最大值,对于每个点,预处理出相邻的边中权值最大的两条边,枚举每个点,计算这两个值的乘积,求个最大值即可.
第二个,要求距离为2的点对的权值之和,那么,我们先确定某点对中间的那个点,设为p,并预处理出p与其相邻的点距离之和d,则与其相邻的某点q,在中心点为p的距离为二的一条路径上的权值之和为d(q,p)*d(m1,p)+d(q,p)*d(m2,p)+...+d(q,p)*d(mi,p)=d(q,p)*(d-d(q,p)) 其中mi为与p相邻的除q以外的点,共i个.
最后求和即可.
long long n;
;
];
];
long long mx;
long long ans;
vector<];
],m2[];
int main()
{
scanf("%lld",&n);
;i<n;i++)
{
long long a,b;
scanf("%lld %lld",&a,&b);
e[a].pb(b);
e[b].pb(a);
}
;i<=n;i++)
{
scanf("%lld",&w[i]);
}
;i<=n;i++)
{
;j<(long long)e[i].size();j++)
{
sum[i]+=w[e[i][j]]%MOD;
if(w[e[i][j]]>m1[i])
{
m2[i]=m1[i];
m1[i]=w[e[i][j]];
}
else if(w[e[i][j]]>m2[i])
{
m2[i]=w[e[i][j]];
}
}
}
;i<=n;i++)
{
mx=max(mx,m1[i]*m2[i]);
}
printf("%lld ",mx);
;i<=n;i++)
{
;j<(long long)e[i].size();j++)
{
ans=ans+(w[e[i][j]])*(sum[i]-w[e[i][j]]);
ans=ans%MOD;
}
}
printf("%lld\n",ans);
;
}
No 3. 飞扬的小鸟
http://www.luogu.org/problem/show?pid=1941
dp
dp
dp
其实这题真心不难
不明白为何有许多人不会做........
我们用dp(i,j)表示鸟儿飞到第i根柱子的j高度处所用的最少跳跃步数.
Obviously,不跳,摔落比较好,所以先处理它.
明显的,dp[i+1][j-y[i]]=min(dp[i+1][j-y[i]],dp[i][j]).
当鸟儿跳的时候,要是到顶了不能继续跳,所以要分个类:
1.到顶了
dp[i][m]=min(dp[i][m],dp[i][j]+1)
dp[i+1][m]=min(dp[i+1][m],dp[i][j]+1)
2.没到顶
dp[i][j+x[i]]=min(dp[i][j+x[i]],dp[i][j]+1);
dp[i+1][j+x[i]]=min(dp[i+1][j+x[i]],dp[i][j]+1);
于是就可以写程序了...
][];
],r[];
];
],y[];
int ans;
int n,m,k;
int main()
{
ios_base::sync_with_stdio();
cin>>n>>m>>k;
;i<;i++)
{
l[i]=;
r[i]=m;
}
;i<n;i++)
{
cin>>x[i]>>y[i];
}
;i<k;i++)
{
int t1,t2,t3;
cin>>t1>>t2>>t3;
l[t1]=t2+;
r[t1]=t3-;
has[t1]=;
}
;i<=n;i++)
{
has[i]+=has[i-];
}
;i<=n;i++)
{
;j<=m;j++)
{
dp[i][j]=inf;
}
}
;i<=n;i++)
{
;j<=m;j++)
{
dp[i][j]=inf;
}
for(int j=l[i];j<=r[i];j++)
{
if(dp[i][j]<inf)
{
ans=i;
if(j>y[i])
{
dp[i+][j-y[i]]=min(dp[i+][j-y[i]],dp[i][j]);
}
}
}
for(int j=l[i];j<=m;j++)
{
if(dp[i][j]<inf)
{
if(m<j+x[i])
{
dp[i][m]=min(dp[i][m],dp[i][j]+);
dp[i+][m]=min(dp[i+][m],dp[i][j]+);
}
else
{
dp[i][j+x[i]]=min(dp[i][j+x[i]],dp[i][j]+);
dp[i+][j+x[i]]=min(dp[i+][j+x[i]],dp[i][j]+);
}
}
}
}
if(ans==n)
{
ans=inf;
for(int i=l[n];i<=r[n];i++)
{
ans=min(ans,dp[n][i]);
}
cout<<<<endl<<ans<<endl;
}
else
{
cout<<<<endl<<has[ans]<<endl;
}
;
}
先写day1 以后有时间再写day 2.........
NOIP 2014 提高组 题解的更多相关文章
- noip 2014 提高组初赛
noip 2014 提高组初赛 一. TCP协议属于哪一层协议( ) A. 应用层 B. 传输层 C. 网络层 D. 数据链路层 B TCP(传输控制协议) 若有变量int a; float: x, ...
- NOIP 2001 提高组 题解
NOIP 2001 提高组 题解 No 1. 一元三次方程求解 https://vijos.org/p/1116 看见有人认真推导了求解公式,然后猥琐暴力过的同学们在一边偷笑~~~ 数据小 暴力枚举即 ...
- NOIP 2000 提高组 题解
NOIP2000 提高组 题解 No 1. 进制转换 https://www.rqnoj.cn/problem/295 水题 对于n和基数r, 每次用n mod r, 把余数按照逆序排列 注意 mod ...
- noip 2016 提高组题解
前几天写的那个纯属搞笑.(额,好吧,其实这个也不怎么正经) 就先说说day2吧: T1:这个东西应该叫做数论吧. 然而我一看到就照着样例在纸上推了大半天(然而还是没有看出来这东西是个杨辉三角) 然后就 ...
- noip 2014 提高组 Day 2
1.无线网络发射器选址 这道题数据范围很小,就直接暴力枚举就好了.为了提高速度,就从每个有公共场所的点枚举周围在(x,y)放无线网路发射器可以增加的公共场所数量,加到一个数组里.所有公共场所都处理完了 ...
- NOIP 2014 提高组 Day1
期望得分:100+100+50=250 实际得分:100+100+50=250 此次NOIP ZJ省一分数线:500,SD:345 https://www.luogu.org/problem/lis ...
- NOIP 2014 提高组 Day2
期望得分:100+60+30=190 实际得分:70+60+30=160 https://www.luogu.org/problem/lists?name=&orderitem=pid& ...
- NOIP 2008提高组第三题题解by rLq
啊啊啊啊啊啊今天已经星期三了吗 那么,来一波题解吧 本题地址http://www.luogu.org/problem/show?pid=1006 传纸条 题目描述 小渊和小轩是好朋友也是同班同学,他们 ...
- [NOIp 1998 提高组]Probelm 2 连接多位数【2011百度实习生笔试题】
/*====================================================================== [NOIp 1998 提高组]Probelm 2 连接 ...
随机推荐
- thinkphp中try catch的运用
public function doedit_set(){ $info=$this->_post("info"); $id=$this->_post("id& ...
- laydate时间插件更换皮肤
<script> ;!function(){ laydate.skin('molv'); laydate({ elem: '#demo' }) }();</script>
- Hbase FilterList使用总结
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl/p/7098138.html 转载请注明出处 我们知道Hbase的Scan经常需要用到filter来过滤表中的数 ...
- 【Android Developers Training】 7. 添加Action Buttons
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 【Android Developers Training】 71. 显示翻牌动画
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- Python爬虫小白---(二)爬虫基础--Selenium PhantomJS
一.前言 前段时间尝试爬取了网易云音乐的歌曲,这次打算爬取QQ音乐的歌曲信息.网易云音乐歌曲列表是通过iframe展示的,可以借助Selenium获取到iframe的页面元素, 而QQ音乐采用的是 ...
- android源码 分享1
技术博客 "碎片化"严重,安卓走向封闭?[Bus Weekly]48期 阅读数:286 2017-05-08 按照NetMarketShare统计数据显示, ...
- spring +springmvc+mybatis组合web.xml文件配置
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://w ...
- 微信小程序+OLAMI(欧拉蜜)自然语言API接口制作智能查询工具--快递、聊天、日历等
微信小程序最近比较热门,再加上自然语义理解也越来越被人关注,于是我想赶赶潮流,做一个小程序试试.想来想去快递查询应该是一种比较普遍的需求. 如果你也在通过自然语言接口做点什么,希望我的这篇博客能帮到你 ...
- python+matplotlib+web.py
最近看了厦门大学数据库实验室林子雨老师的<大数据课程实验案例:网站用户行为分析>,可视化这块是用的R语言,我决定用Python来实现一下. 参考文献 http://dblab.xmu.ed ...