首页 > 学院 > 开发设计 > 正文

4159: [Neerc2009]Business Center

2019-11-06 07:24:09
字体:
来源:转载
供稿:网友

题目链接

题目大意:M部电梯,开始都在0层,第i部电梯每次可以上u_i层楼,或下d_i层楼,求第i部电梯这样上下n次后,这个电梯最低能停在哪层(最终要在1层或以上)。并取最小值输出。

题解:二分乱搞……据说有数学解法,然而并不会

#include <iostream>#include <cstdio>using namespace std;#define INF 0x3f3f3f3fint n,m,u,d,mx=INF;bool ok(int x){return x*u-(n-x)*d>=1;}void work(){ int l=1,r=n,mid,ans; while(l<=r) { mid=(l+r)>>1;//上升mid次 if(ok(mid)) ans=mid*u-(n-mid)*d,r=mid-1; else l=mid+1; } mx=min(mx,ans);}void init(){ cin>>u>>d;}int main(){ cin>>n>>m; while(m--){ init(); work(); } cout<<mx<<endl; return 0;}
上一篇:3732: Network

下一篇:列表生成式笔记

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表