当前位置: 首页 > news >正文

【题解】P14826 踩踩标

因为 \(n=ab+c\),所以 \(c=n-ab\)

\(c=n-ab\) 代入 \(a+b+kc\),得到 \(a+b+k(n-ab)\),紧接着我们开括号得 \(a+b+kn-kab\),又因为 \(n=ab+c\)\(c\) 是一个非负整数,所以我们需要让这个式子在满足 \(ab+c \le n\) 的条件下最小。

我们考虑去枚举 \(a+b+kn-kab\) 里的 \(a\),那么此时 \(a\)\(kn\) 确定,要想使式子最小,相当于让 \(b-kab\) 最小,因为 \(ka\) 一定大于等于一,所以我们要想让原式最小,一定要让 \(b\) 尽可能地大,那么 \(b\) 的值为 \(\frac{n}{a}\)

我们枚举 \(a\) 时枚举到 \(\sqrt n\) 即可,因为如果 \(a \ge \sqrt n\),那么此时 \(a \ge b\),这种情况我们在 \(a \le sqrt n\) 时已经计算过了,无需再次计算。答案就是枚举 \(a\) 时,所有 \(a+b+kn-kab\) 的值。

时间复杂度 \(O(\sum \sqrt n)\)

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int T;
signed main(){scanf("%lld",&T);while(T--){int n,k;scanf("%lld%lld",&n,&k);int ans=n*k;for(int a=1;a*a<=n;a++){int b=n/a;ans=min(ans,a+b+k*n-k*a*b);}printf("%lld\n",ans);}return 0;
}
http://www.gsyq.cn/news/132219.html

相关文章:

  • 基于librosa的MFCC的音色相似度检测程序
  • 2025 国内公关公司 TOP10 评测!策略创新+资源整合,十大品牌权威榜单发布,专业赋能品牌传播新生态 - 全局中转站
  • 【课程设计/毕业设计】基于springboot的汽车租赁买卖管理系统的设计与实现租赁预订、二手车交易【附源码、数据库、万字文档】
  • 2025 国内整合营销服务商TOP10 评测!全链路赋能 + 标杆案例,十大品牌权威榜单发布,驱动品牌增长新引擎 - 全局中转站
  • 【打造自己的 DeepSeek】第 1 期:为什么要打造自己的 DeepSeek? _
  • 请教软件和业务问题,引发的思考
  • 复习——共享内存
  • 写在最前面
  • 【python大数据毕设实战】哮喘患者症状数据可视化分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习
  • 【01-02】
  • 非遗万象图前端开发
  • Redis多实例部署与主从架构
  • 上海埃飞电子科技有限公司:探寻国内顶尖狭缝涂布机加工厂的卓越之道 - 五色鹿五色鹿
  • 用 .NET MAUI 10 + VS Copilot 从 0 开发一个签到 App(三)
  • 【linux内核】Linux内核的同步机制
  • (100分)- 部门人力分配(Java JS Python C)
  • 详细介绍:正则表达式超详细版
  • 高职金融科技应用专业可考取的金融科技类证书
  • (100分)- 报数游戏(Java JS Python)
  • nPM2100 自带标准电池模型
  • 完整教程:数据结构**排序** 超越Arrays.sort() 探索Java排序算法的奥秘与魅力
  • (100分)- 表达式括号匹配(Java JS Python C)
  • 非线性最优化问题求解器Ipopt介绍
  • NPM2100 电池电量估算
  • java计算机毕业设计网络探店 基于大数据的美食探店可视化平台 互联网餐饮探店数据爬取与分析系统
  • Windows系统文件inetcomm.dll丢失损坏 下载修复方法
  • linux centos7.9 中文乱码
  • springcloud springboot nacos版本对应 - 指南
  • java计算机毕业设计网络流行语资源库建设及实现 网络热词共享与语义标注平台 互联网流行语知识图谱与检索系统
  • NPM2100 可控的gpio