题意:

求(x div k) * (x mod k) = n的最小解x,保证有解

1<=n<=1e6, k<=1000,1s

思路:

注意到k的范围是1e3,

1<=x mod k<1e3,这并不能看到x的上限

而x div k要达到1e6,所以x最大可能达到1e9

所以不能枚举x

因为两个因子相乘正好为n,所以我们可以枚举x mod k

x mod k<=n且x mod k < k

所以我们只需枚举[1,k)就可以了

此时x mod k = i ,且n%i==0

所以x div k = n / i

所以x = n / i * k + i;

算出最小值即可

代码:

枚举范围错了居然也能pp。。还好没掉分

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#include<stack>
#include<queue>
#include<deque>
#include<set>
#include<vector>
#include<map>
#include<functional> #define fst first
#define sc second
#define pb push_back
#define mem(a,b) memset(a,b,sizeof(a))
#define lson l,mid,root<<1
#define rson mid+1,r,root<<1|1
#define lc root<<1
#define rc root<<1|1
#define lowbit(x) ((x)&(-x)) using namespace std; typedef double db;
typedef long double ldb;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> PI;
typedef pair<ll,ll> PLL; const db eps = 1e-;
const int mod = 1e9+;
const int maxn = 2e6+;
const int maxm = 2e6+;
const int inf = 0x3f3f3f3f;
const db pi = acos(-1.0); int main(){
ll n, k;
scanf("%lld %lld",&n, &k); //(x/k)*(x%k)==n
ll ans = 0x3f3f3f3f3f3f3f3f;
for(ll i = ; i < k; i++){
if(n%i==){
//x/k=n/i
//x%k=i
ll y= n/i;
ans = min(y*k+i,ans);
}
}
printf("%lld", ans);
return ;
} /* */

最新文章

  1. 前端学HTTP之网关、隧道和中继
  2. win10控制台程序printf死锁问题
  3. nginx小记
  4. 浏览器请求URL原理
  5. NYOJ 737 石子合并(一)
  6. poj 3661 Running
  7. Log打印日志遇到的问题
  8. 【原】关于使用Sklearn进行数据预处理 —— 缺失值(Missing Value)处理
  9. WebServices CXF开发常见异常及解决方法
  10. php连接数据库
  11. 利用if else 判断方程有几个根
  12. C++访问权限的问题
  13. eclipse+python+Anaconda ML环境搭建
  14. c++对象指针-01(转载)
  15. Eclipse Bug: Unhandled event loop exception No more handles
  16. 在ASP.NET Web Forms中使用页面导出伪xls Excel表格
  17. Spark中的wordCount程序实现
  18. 运算符、单双分支&amp;多分支、while循环
  19. 【数据科学】Python数据可视化概述
  20. Java 简单的登录验证码

热门文章

  1. [技术翻译]Web网页内容是如何影响电池使用寿命的?
  2. Mysql备份与恢复(1)---物理备份
  3. LEFT函数使用
  4. Ant Design框架中不同的组件访问不同的models中的数据
  5. list绑定
  6. fastjson使用详解
  7. Go中锁的那些姿势,估计你不知道
  8. tensorflow数据读取机制tf.train.slice_input_producer 和 tf.train.batch 函数
  9. ubuntu下报错Sub-process /usr/bin/dpkg returned an error code (1)的解决方法
  10. 150行代码打造.net core生产力工具,你值得拥有