紫书 习题 10-20 UVa 1648 (推公式)
2024-08-31 14:23:51
设一次上去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;
}
最新文章
- 转-decorators.xml的用法-http://blog.csdn.net/gavinloo/article/details/7458062
- 解决erlang节点启动失败报[";inet_tcp";,econnrefused]的问题
- 使用TCMalloc的堆栈检查
- 解决一台机器同时运行多个Tomcat服务
- idea新建项目完整过程
- [codevs1380]没有上司的舞会
- .net mvc datatables中orderby动态排序
- 关于bat文件语法
- [100个改变摄影的伟大观念].(英)玛瑞恩.高清扫描版.pdf
- 【winform】datagridview获取当前行停留时间
- pyothon学习笔记2-元组
- python-web微信实现
- Gerrit日常维护记录
- 说说流控制(RTS/CTS/DTR/DSR 你都明白了吗?)【转】
- 使用两个栈来完成一个队列,需要是实现的功能有add,poll.peek
- 洛谷P4396 [AHOI2013]作业(树套树)
- Beta阶段——Scrum 冲刺博客第二天
- 淡雅清新教师求职简历免费word模板
- linkhashmap实现原理
- ElasticSearch + Canal 开发千万级的实时搜索系统【转】
热门文章
- Effective JavaScript Item 34 在prototype上保存方法
- Windows10+VS2013+caffe+Python2.7+CUDA8.0 部署配置
- Lists and tuples
- Android RecyclerView和ScrollView嵌套使用
- ViewPager设置不能滚动
- Ajax的几种形式 和使用情况
- Rain and Umbrellas(dp)
- [笔记-图论]Dijkstra
- cygwin下调用make出现的奇怪现象
- PHP实时生成并下载超大数据量的EXCEL文件