CodeForce-803C Maximal GCD(贪心数学)
Maximal GCD
现在给定一个正整数 n。你需要找到 k 个严格递增的正整数 a1, a2, ..., ak,满足他们的和等于 n 并且他们的最大公因数尽量大。
如果不可能请输出 -1。
这k个数的gcd的必定是n的因数,于是变成枚举n的因数,可以知道只需要枚举 1~sqrt(n) 范围内满足 n%i==0 的因数就行,复杂度就变成10的5次方了。然后贪心,要使得递增序列的公因子最大,先从大到小枚举因数 n/i ,没找到满足的因数再从小到大枚举因数 i。若当前枚举的gcd为x,若1x+2x+3x+....+kx<=n,那么必能把n分成k个递增的x的倍数。
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
long long n,k;
bool check(long long x)
{
//cout<<x<<endl;
if(x>n*2/k/(k+1))
return false;
for(int i = 1;i<=k-1;i++)
{
printf("%lld ",x*i);
n -= x*i;
}
printf("%lld",n);
return true;
}
int main()
{
cin>>n>>k;
for(int i = 1;i<=sqrt(n)+1;i++)
{
if(n%i)
continue;
if(check(n/i))
return 0;
}
for(int i = sqrt(n)+1;i>=1;i--)
{
if(n%i)
continue;
if(check(i))
return 0;
}
printf("-1");
return 0;
}
CodeForce-803C Maximal GCD(贪心数学)的更多相关文章
- codeforces 803C Maximal GCD(GCD数学)
Maximal GCD 题目链接:http://codeforces.com/contest/803/problem/C 题目大意: 给你n,k(1<=n,k<=1e10). 要你输出k个 ...
- Codeforces 803C. Maximal GCD 二分
C. Maximal GCD time limit per test: 1 second memory limit per test: 256 megabytes input: standard in ...
- CodeForces - 803C Maximal GCD 【构造】
You are given positive integer number n. You should create such strictly increasing sequence of k po ...
- CodeFoorces 803C Maximal GCD
枚举. 枚举$gcd$,然后计算剩下的那个数能不能分成$k$个递增的数. #include <iostream> #include <cstdio> #include < ...
- Codeforces 803C. Maximal GCD
题目链接:http://codeforces.com/contest/803/problem/C 中了若干trick之后才过... k个数的严格递增序列最小权值和就是${n*(n+1)/2}$,枚举这 ...
- AC日记——Maximal GCD codeforces 803c
803C - Maximal GCD 思路: 最大的公约数是n的因数: 然后看范围k<=10^10; 单是答案都会超时: 但是,仔细读题会发现,n必须不小于k*(k+1)/2: 所以,当k不小于 ...
- Maximal GCD CodeForces - 803C (数论+思维优化)
C. Maximal GCD time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- Codeforces H. Maximal GCD(贪心)
题目描述: H. Maximal GCD time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Educational Codeforces Round 20 C. Maximal GCD
C. Maximal GCD time limit per test 1 second memory limit per test 256 megabytes input standard input ...
随机推荐
- 源码解析.Net中IConfiguration配置的实现
前言 关于IConfituration的使用,我觉得大部分人都已经比较熟悉了,如果不熟悉的可以看这里.因为本篇不准备讲IConfiguration都是怎么使用的,但是在源码部分的解读,网上资源相对少一 ...
- Using Emacs as Clojure IDE
Open emacs24; Change CWD to parent folder of project home: M-x cd ~/docs/tmp; Build a leiningen proj ...
- SpringMVC学习07(Ajax)
7.Ajax研究 7.1 简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 是一种在无需重新加载整个网页的情况 ...
- Linux 鸟叔的私房菜--完全结束
2018年10月22日 我不想再拖下去了,一本书看不完就无法进行下一本书的阅读,可能算是我的一个强迫症(借口吧) 之前看05年第一版<鸟叔的Linux私房菜>停在脚本语言那里,迟迟没有前进 ...
- 【笔记】scikit-learn中的PCA(真实数据集)
sklearn中的PCA(真实的数据集) (在notebook中) 加载好需要的内容,手写数字数据集 import numpy as np import matplotlib.pyplot as pl ...
- docker加速器,设置cdn
添加加速器 vim /etc/docker/daemon.json 添加如下内容 { "registry-mirrors": ["https://registry.doc ...
- @ControllerAdvice注解(全局异常捕获)
背景 @ControllerAdvice 注解 通常用于定义@ExceptionHandler, @InitBinder和@ModelAttribute 适用于所有@RequestMapping方法的 ...
- RabbitMQ 的使用
MiaoshaMessage 类 ---------------------------------------------------------------- import com.imooc. ...
- .net core2.1 迁移.net core 3.1
1.解决方案->属性-->目标框架 .net core3.1 2.删除旧的Nuget包添加新的NuGet包 3.修改Startup.cs 修改ConfigureServices 修改Con ...
- 栈(Stack)
特点: 栈最大的特点就是后进先出(LIFO).对于栈中的数据来说,所有操作都是在栈的顶部完成的,只可以查看栈顶部的元素,只能够向栈的顶部压入数据,也只能从栈的顶部弹出数据. 实现: 利用一个单链表来实 ...