CH Adera 3(ZZB的数学作业-构造法初讲)
来源:互联网 发布:科比生涯数据 编辑:程序博客网 时间:2024/06/05 14:59
描述
把一个正整数M分成P个不超过K的正整数的和,满足分成的数不是N的倍数,并且P也不是N的倍数,求这样的P最小是多少?”
输入格式
一个测试点不超过10组数据,每行三个整数N、M、K代表一组数据,以EOF结尾。
输出格式
对于每组数据输出一行,一个整数,即最小的P。
样例输入
3 11 62 12 47
样例输出
4-1
数据范围与约定
对于20%的数据,1<=N,M,K<=20。
对于60%的数据,1<=N,K<=10000。
对于另20%的数据,1<=K<=2。
对于100%的数据,1<=N,M,K<=10^9。
特判
n=1 m%n肯定不行
n=2 m是偶数 奇数个奇数和≠偶数 不行
否则找最小的k
现在开始维护p,各种特判
由于最后多出来的一部分=k-1是不能合并 所以必须拆
最后维护p
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<functional>#include<iostream>using namespace std;#define MAXN (1000000000)int n,m,k;int main(){while (cin>>n>>m>>k){if (n==1||n==2&&!(m%2)){puts("-1");continue;}while (!(k%n)) k--;if (k==1){if (m%n) cout<<m<<endl;else puts("-1");continue;}int ans=(m-1)/k+1;if (ans==1&&!(m%n)) ans++;if (!((k-1)%n)&&m%k==k-1) ans++;if (!(ans%n)) ans++;cout<<ans<<endl;}return 0;}
- CH Adera 3(ZZB的数学作业-构造法初讲)
- 【CH Round #61 - 「Adera 10」冬令营热身赛】
- 看了zzb的安排
- zzb多线程
- ++ch和ch+1的区别
- 【数学】数学作业
- LDD:Ch 2 构造和运行模块
- Mathway:对付数学作业的新武器
- 作业06: 简单的数学运算编程。
- 例题分析-数学作业,魔法石的诱惑
- 2742: [HEOI2012]Akai的数学作业
- BZOJ 2742: [HEOI2012]Akai的数学作业
- [BZOJ]2742 [HEOI2012] Akai的数学作业
- bzoj2742 [HEOI2012]Akai的数学作业 (数学)
- ch
- 构造函数重载的课堂作业
- ch和sh的音标
- 《诗盗·ZZB》
- 广研一面笔试题目
- 红帽集群套件RHCS iSCSI GFS实现iscsi集群
- struts2提供的校验器列表
- 初识UEFI
- Linux文件,文件描述符以及dup()和dup2()
- CH Adera 3(ZZB的数学作业-构造法初讲)
- linux查看硬件设备信息
- 359. Praise is not pudding. 恭维话不能当饭吃
- 用HTML5来开发一款android本地化App游戏-宝石碰碰
- linux 下图形界面启动的配置
- C语言实验:输入任意一个年份和月份,输出该月份的公历日历
- All about Oracle RAC Failover
- 1006 teamRanking
- 如何设置软件开机启动