Fair Distribution(2021 ZJCPC F)
题目大意
有组询问,每组询问有个机器人和块能量棒,定义合理分配当且仅当是的倍数。现在你有两种操作:使的大小减少;使的大小增加。每次操作都要消耗元,问达到合理分配的最小花费是多少。
思路
这道题一眼看过去想到的是,但是数据范围太大了,即使不也会,于是只好换个方向入手。首先很容易发现的是当是答案就是,然后我们看一下把减小的情况,这时候就需要增加到,即需要增加,现在令,于是就需要增加,我们把上取整转化为下取整,的增加量就变成了。于是总花费就是,而是一个定值,所以我们只需要知道的最小值即可,而这个可以用整除分块来做,于是问题就被解决了。
代码
#include<bits/stdc++.h> using namespace std; int main() { int _; scanf("%d",&_); while(_--) { int n,m; scanf("%d%d",&n,&m); if(n>=m){printf("%d\n",n-m);continue;} int minn=1000000000; for(int i=1;i<=n;i++) { minn=min(minn,(m-1)/i*i); i=(m-1)/((m-1)/i); } printf("%d\n",n-m+minn); } return 0; }
__EOF__

本文作者:Jerry-Black
本文链接:https://www.cnblogs.com/Jerry-Black/p/15948675.html
关于博主:小蒟蒻一只( ̄^ ̄)ゞ
版权声明:转载请注明来源哟~ QAQ
声援博主:UP UP UP !!!
本文链接:https://www.cnblogs.com/Jerry-Black/p/15948675.html
关于博主:小蒟蒻一只( ̄^ ̄)ゞ
版权声明:转载请注明来源哟~ QAQ
声援博主:UP UP UP !!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)