hdu - 6277,2018CCPC湖南全国邀请赛B题,找规律,贪心找最优.
Posted hzuCode
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu - 6277,2018CCPC湖南全国邀请赛B题,找规律,贪心找最优.相关的知识,希望对你有一定的参考价值。
题意:
给出N个小时,分配这些小时去写若干份论文,若用1小时写一份论文,该论文会被引用A次,新写一篇论文的话,全面的论文会被新论文引用一次.
找最大的H,H是指存在H遍论文,而且这些论文各被引用大于H次.
思路:
第一步,我们要想怎么样分配这些时间,毫无疑问,当N个小时写N份论文时为最优方案. 证明如下: 如果一开始的A>数量的话,就一直写新的:(没疑问吧!!!,如果A>数量,你还写旧的不是浪费时间吗???) 然后我们就会到一个分水岭 到达 A=数量(这时还是可以接受的,因为这里的A也算进去了,再开一个就变成不满足了,因为假设它当前的数量为x) ,明显A<x+1. 现在我就想让当前这个不满足的满足,我们可以有两个选择(继续给他加A,或者新开一个给他+1). 划重点啦!!::因为数量也是+1的所以我们取最优的方案+1就行了.
所以题目就变成了 N个小时 写了N遍论文 : 维护一个公差为1的等差数量 其中 首项为 N-1+a ,最后一项为a+N-N. 我们设答案为B篇. 所以数量(B)=被引用(N-B+a)
解得B=(a+N)/2;
#include<bits/stdc++.h> using namespace std; int main() { int n,a; while(scanf("%d%d",&n,&a)!=EOF) cout<<(a+n)/2<<endl; return 0; }
以上是关于hdu - 6277,2018CCPC湖南全国邀请赛B题,找规律,贪心找最优.的主要内容,如果未能解决你的问题,请参考以下文章
hdu - 6276,2018CCPC湖南全国邀请赛A题,水题,二分