紫书 习题 10-20 UVa 1648 (推公式)
生活随笔
收集整理的這篇文章主要介紹了
紫书 习题 10-20 UVa 1648 (推公式)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
設一次上去a層,一次下去b層,有x次上去,有(n-x)次下去
則ax - (n-x)b >= 1
x >= (nb+1) / (a+b)
?如果可以整除, x =?(nb+1) / (a+b)
否則? x =?(nb+1) / (a+b) +1
算出x后再帶到ax - (n-x)b里就是當前的最優答案
#include<cstdio> #include<algorithm> #define REP(i, a, b) for(int i = (a); i < (b); i++) using namespace std;int main() {int n, m;while(~scanf("%d%d", &n, &m)){int a, b, ans = 2e9;while(m--){scanf("%d%d", &a, &b);int x;if((n * b + 1) % (a + b) == 0) x = (n * b + 1) / (a + b);else x = (n * b + 1) / (a + b) + 1;ans = min(ans, a * x - (n - x) * b);}printf("%d\n", ans);}return 0; }?
轉載于:https://www.cnblogs.com/sugewud/p/9819469.html
總結
以上是生活随笔為你收集整理的紫书 习题 10-20 UVa 1648 (推公式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海量数据实时在线分析QuickBI
- 下一篇: [剑指offer] 数组中只出现一次的数