Solution

  • \(2a>n\),一次性结束,直接输出 \(n\)
  • \(a \geq b\),那么一直修即可,直接输出 \(n\)
  • 否则,\(a\) 占弱势,我们考虑用 \(a\) 修一半需要的完整轮次数为 \([(n-1)/2a]\) ,那么这些轮中, \(a\) 修掉的个数为 \([n/2a]a\),而 \(b\) 修掉的个数则是 \([n/2], [n/2a]b\) 中的较小值。计算剩余量然后暴力修即可。

#include <bits/stdc++.h>
using namespace std; #define int long long int n,a,b; signed main() {
int t;
cin>>t;
while(t--) {
cin>>n>>a>>b;
if(2*a>n || a>=b) {
cout<<n<<endl;
}
else {
int d=(n-1)/(2*a);
int xa=d*a;
int xb=min(n/2,d*b);
int r=n-xa-xb;
//cout<<d<<" "<<xa<<" "<<" "<<xb<<" "<<r<<endl;
cout<<d*(a+b)+r<<endl;
}
}
}

最新文章

  1. 常用HTTP状态码和CURL 000问题
  2. 相机标定:Matlab标定工具箱使用要点
  3. YOU ARE MY SUNSHINE
  4. C#开发实例 鼠标篇
  5. jQuery操作控件
  6. rsync-3.0.6-64
  7. POJ 3660 Cow Contest (floyd求联通关系)
  8. 高可用软件Keepalived
  9. 安卓Android控件ListView获取item中EditText值
  10. Django模板-分离的模板
  11. redis连接池的使用方法
  12. 【VMware Workstation】虚拟机静态IP NAT连接外部网络(局域网以及广域网)
  13. java小入门的感觉
  14. net view ERROR 6118
  15. P1582 倒水
  16. js 正则表达式之环视结构
  17. 正确理解c和c ++的复杂类型声明
  18. How to diagnose vehicle fault code by BMW ICOM and ISTA-D software
  19. Js与正则表达式
  20. Android学习之——SpannableString和TextView的使用及研究

热门文章

  1. javascript A*算法 寻路算法 获取最短路径算法
  2. lwip1.4.1需要的文件
  3. 大数相乘----C语言
  4. 06_TypeScript泛型
  5. java之时间戳处理
  6. C#设计模式学习笔记:(20)职责链模式
  7. 「Flink」理解流式处理重要概念
  8. Android Studio 快捷方式记录
  9. .net core 3.1 webapi后端接收钉钉小程序post的文件/图片
  10. [Contract] Solidity 遍历 mapping 的一种方式