Codeforces803C Maximal GCD 思维
来源:互联网 发布:查看手机端口 编辑:程序博客网 时间:2024/06/08 17:35
题目链接
题意:
给你n,k(1<=n,k<=1e10)。
要你输出k个数,满足以下条件:
①这k个数之和等于n
②严格递增
②输出的 这k个数 的最大公约数q是同样满足①②条件中的最大的!
思路:
首先说一句....这一题如果不判断k的范围会爆long long..orz..
首先我们假设最大的gcd为x那么对于存在的那个数列有:
(t1+t2+t3+t4+....tk)*x=n; t1...tk为剩下的对应的a1....ak的因子.
化简得x=n/(t1+t2+...tk);
那么k的最大值就是当x==1 gcd最小的时候,我们大体来计算一下当gcd为1时 t1...tk为公差为1的等差数列,
那么就有k*(k+1)==2*n k约等于1e6即可,也就是当k大于1e6一定无解,剩下的那一小部分还可以通过下面判断,反正
不会爆longlong了。
根据上面的式子我们假设n可以整除(t1+t2+..tk)那么x的理论最大值就为n/(t1+t2+...tk);n最大为1e10 我们
可以通过枚举n的因子来确定一个最大的x,最后构造的时候只需要前k-1项t的值分别为1..k-1,最后剩余的全为最后一项
即可.
#include<bits/stdc++.h>#define Ri(a) scanf("%d", &a)#define Rl(a) scanf("%lld", &a)#define Rf(a) scanf("%lf", &a)#define Rs(a) scanf("%s", a)#define Pi(a) printf("%d\n", (a))#define Pf(a) printf("%lf\n", (a))#define Pl(a) printf("%lld\n", (a))#define Ps(a) printf("%s\n", (a))#define W(a) while(a--)#define CLR(a, b) memset(a, (b), sizeof(a))#define MOD 1000000007#define inf 0x3f3f3f3f#define exp 0.00000001#define pii pair<int, int>#define mp make_pair#define pb push_backusing namespace std;typedef long long ll;const int maxn=1e5+10;ll n,k;ll w[maxn];int main(){Rl(n),Rl(k);if(k>1000000)Pi(-1);else{ll w=0;ll div=(k+1)*k/2,zz=sqrt(n);ll dd=n/div;for(ll i=1;i<=zz;i++){if(n%i==0){if(i<=dd)w=i;if(n/i<=dd){w=n/i;break;}}}//cout<<w;if(w==0)Pi(-1);else{ll ans=0;for(ll i=1;i<k;i++){ printf("%lld ",i*w); ans+=i*w;}Pl(n-ans);}}return 0;}
0 0
- Codeforces803C Maximal GCD 思维
- Codeforces803C Maximal GCD
- Educational Codeforces Round 20 C || Codeforces803C Maximal GCD (水题)
- Codeforces 803C Maximal GCD【思维】
- CF803C:Maximal GCD(思维 & 构造)
- Maximal GCD
- Maximal GCD
- 803C Maximal GCD
- Maximal GCD CodeForces
- codeforces 803C Maximal GCD
- 【Codeforces 803 C. Maximal GCD】
- Codeforces 803C Maximal GCD 题解
- Educational Codeforces Round 20-C. Maximal GCD
- codeforce 803C Maximal GCD(构造)
- CF 803C Maximal GCD 枚举,构造
- HDU 5223 - GCD (思维)
- Magical GCD ----思维题
- hdu 5223 GCD 思维题
- 详解spring 每个jar的作用
- 强制统一引入的依赖管理BOM
- DosBox的基本设置和安装
- 让我们努力的学习ruby吧
- ubuntu 下图标变问号问题
- Codeforces803C Maximal GCD 思维
- badblocks
- 每天学一点Swift----运算符与表达式(一)
- javascript之事件委托(事件代理)
- 获取App通知权限是否开启的方法
- Dbutils Sqlserver Update 占位符问题
- 数组去重的几种方法-基础篇
- RIL 机制---rild守护进程
- Kali 2016.2 安装 OpenVAS 9 步骤