NBUOJ 2707 liylho的难题(因子)
来源:互联网 发布:网络语狗子是啥意思 编辑:程序博客网 时间:2024/06/05 18:46
2707 liylho的难题
Time Limit : 2000/1000 MS(Java/Others) | Memory Limit :65536/32768 KB(Java/Others)
Submits : 28 | Solved : 8
Description
Liylho在考试中得了第一名,所以老师让他去向学习委员要奖品。可是在liylho找到学习委员要奖品时,他却说要想拿到奖品就得做出他的难题:学习委员QQ账号里共有x个欢乐豆,现在他想把这x个豆子分为数量严格递增的n堆,问怎样分才能使得这n堆欢乐豆数量的最大公约数最大?
liylho掰着手指头算了好久都没算出来,聪明的你能帮帮可怜的liylho吗?
Input
输入包含多组,每组输入两个整数 x和n (1 ≤ x ≤ 1e9,1<=n<=1e3).
Output
输从每堆数量小到大输出分配方案,若不存在合适的分配方案则输出-1.若有多种方案 输入字典序最小的一组
Sample Input
6 38 2
Sample Output
1 2 32 6
HINT
Source
NBU OJ
中文题意略。
POINT:
求的这个最大公约数,肯定是这个x的因子。先记录下所有的x的因子,排个序。
如果因子a满足 [(n+1)*n/2]*a即(1a+2a+3a+4a^+na)的和>=x,则这个因子绝对可以用来分。
找出最大的因子,然后输出1a 2a 3a 4a ……,最后一项为x-sum前。
#include <iostream>#include <string.h>#include <vector>#include <algorithm>#include <math.h>#include <stdio.h>using namespace std;#define LL long longvector<LL>y;void yinzi(LL x){ for(LL i=1;i<=sqrt(x)+1;i++) { if(x%i==0){ y.push_back(i); if(x%i!=i) y.push_back(x/i); } }}int main(){ LL x,n; while(~scanf("%lld %lld",&x,&n)) { if(x<(n+1)*n/2){ printf("-1\n"); continue; } y.clear(); yinzi(x); sort(y.begin(),y.end()); LL a; for(LL i=y.size()-1;i>=0;i--) { a=y[i]; if((n+1)*n/2*a<=x) { break; } } for(LL i=1;i<n;i++) { printf("%lld ",i*a); x-=i*a; } printf("%lld\n",x); }}
阅读全文
0 0
- NBUOJ 2707 liylho的难题(因子)
- zzulioj 1902 (985的因子对难题)
- zzuli 1902 (985的因子对难题)
- 1902: 985的因子对难题
- zzulioj 1902( 985的因子对难题)
- 1902: 985的因子对难题
- 【zzulioj 1902 985的因子对难题】
- ZZULI 1902: 985的因子对难题
- zzuli 1902 985的因子对难题
- 985因子对难题
- 【郑轻】[1902]985的因子对难题
- ZZULI OJ 1902: 985的因子对难题
- 【多校训练】ZZUliOJ 1902 985的因子对难题
- zzulioj 1902: 985的因子对难题 [思维]
- 【hpu oj 1022: 985的因子对难题 [数学]】
- 1902: 985的因子对难题(终于想通了,不容易啊⊙﹏⊙b汗)
- 【世界数学难题】素数判定与大数因子分解问题(上)
- 【世界数学难题】素数判定与大数因子分解问题(下)
- 使用Yandex
- 作为云计算 2.0 时代的里程碑,云数据库PolarDB 还需要做什么?
- Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
- MD5 加密应用 Utils
- java synchronize锁
- NBUOJ 2707 liylho的难题(因子)
- 关于list排序
- LM1875小功放电路解析与调校(出好声音)
- 10.css初始化
- [机器学习] SVM
- 关于web项目报"未明确定义列”的问题
- CF 423 C : String Reconstruction
- 一些无关紧要的好奇
- spark-submit提交任务到集群