C. Greedy Arkady
kk people want to split nn candies between them. Each candy should be given to exactly one of them or be thrown away.
The people are numbered from 11 to kk, and Arkady is the first of them. To split the candies, Arkady will choose an integer xx and then give the first xx candies to himself, the next xx candies to the second person, the next xx candies to the third person and so on in a cycle. The leftover (the remainder that is not divisible by xx) will be thrown away.
Arkady can't choose xx greater than MM as it is considered greedy. Also, he can't choose such a small xxthat some person will receive candies more than DD times, as it is considered a slow splitting.
Please find what is the maximum number of candies Arkady can receive by choosing some valid xx.
The only line contains four integers nn, kk, MM and DD (2≤n≤10182≤n≤1018, 2≤k≤n2≤k≤n, 1≤M≤n1≤M≤n, 1≤D≤min(n,1000)1≤D≤min(n,1000), M⋅D⋅k≥nM⋅D⋅k≥n) — the number of candies, the number of people, the maximum number of candies given to a person at once, the maximum number of times a person can receive candies.
Print a single integer — the maximum possible number of candies Arkady can give to himself.
Note that it is always possible to choose some valid xx.
- 20 4 5 2
- 8
- 30 9 4 1
- 4
In the first example Arkady should choose x=4x=4. He will give 44 candies to himself, 44 candies to the second person, 44 candies to the third person, then 44 candies to the fourth person and then again 44candies to himself. No person is given candies more than 22 times, and Arkady receives 88 candies in total.
Note that if Arkady chooses x=5x=5, he will receive only 55 candies, and if he chooses x=3x=3, he will receive only 3+3=63+3=6 candies as well as the second person, the third and the fourth persons will receive 33candies, and 22 candies will be thrown away. He can't choose x=1x=1 nor x=2x=2 because in these cases he will receive candies more than 22 times.
In the second example Arkady has to choose x=4x=4, because any smaller value leads to him receiving candies more than 11 time.
数学题,d比较小,枚举d
贪心思考,最好应该是第一个人取i次,其他人取i-1次
x*i+x*(i-1)*(k-1)<=n
若x>m 取x=m 然后重新判断是否可以到 i 组
- //#include <bits/stdc++.h>
- #include<iostream>
- #include<stack>
- #include<cstdio>
- #include<cmath>
- #include<algorithm>
- #include<queue>
- #include<cstring>
- using namespace std;
- typedef long long ll;
- #define inf 2147483647
- const ll INF = 0x3f3f3f3f3f3f3f3fll;
- #define ri register int
- template <class T> inline T min(T a, T b, T c)
- {
- return min(min(a, b), c);
- }
- template <class T> inline T max(T a, T b, T c)
- {
- return max(max(a, b), c);
- }
- template <class T> inline T min(T a, T b, T c, T d)
- {
- return min(min(a, b), min(c, d));
- }
- template <class T> inline T max(T a, T b, T c, T d)
- {
- return max(max(a, b), max(c, d));
- }
- #define scanf1(x) scanf("%d", &x)
- #define scanf2(x, y) scanf("%d%d", &x, &y)
- #define scanf3(x, y, z) scanf("%d%d%d", &x, &y, &z)
- #define scanf4(x, y, z, X) scanf("%d%d%d%d", &x, &y, &z, &X)
- #define pi acos(-1)
- #define me(x, y) memset(x, y, sizeof(x));
- #define For(i, a, b) for (ll i = (a); i <= (b); i++)
- #define FFor(i, a, b) for (int i = a; i >= (b); i--)
- #define bug printf("***********\n");
- #define mp make_pair
- #define pb push_back
- const int N = ;
- const int M=;
- // name*******************************
- ll n,k,m,d;
- ll t;
- ll ans=;
- // function******************************
- //***************************************
- int main()
- {
- // ios::sync_with_stdio(0);
- // cin.tie(0);
- // freopen("test.txt", "r", stdin);
- // freopen("outout.txt","w",stdout);
- cin>>n>>k>>m>>d;
- For(i,,d)
- {
- ll x=n/((i-)*k+);
- if(!x)break;
- if(x>m)x=m;
- if(n/(k*x)+((n%(k*x)>=x)?:)!=i)continue;
- ans=max(ans,x*i);
- }
- cout<<ans;
- return ;
- }
C. Greedy Arkady的更多相关文章
- 「日常训练」Greedy Arkady (CFR476D2C)
不用问为啥完全一致,那个CSDN的也是我的,我搬过来了而已. 题意(Codeforces 965C) $k$人分$n$个糖果,每个糖果至多属于1个人.A某人是第一个拿糖果的.(这点很重要!!) 他$x ...
- cf965c Greedy Arkady
呸,大傻逼题,我更傻逼ref #include <iostream> using namespace std; typedef long long ll; ll n, k, m, d, a ...
- 【Codeforces Round #476 (Div. 2) [Thanks, Telegram!] C】Greedy Arkady
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 枚举那个人收到了几次糖i. 最好的情况显然是其他人都只收到i-1次糖. 然后这个人刚好多收了一次糖 也即 (i-1)kx + x & ...
- Codeforces Round #476 (Div. 2) [Thanks, Telegram!] ABCDE
修仙场,没脑子,C边界判错一直在写mdzz..D根本没怎么想. 第二天起来想了想D这不是水题吗立马A了.看了看E一开始想分配问题后来发觉想岔了,只需要每次都把树最后分配的点移到最前面就好了. A. P ...
- USACO . Greedy Gift Givers
Greedy Gift Givers A group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided to exchange gifts ...
- hdu4976 A simple greedy problem. (贪心+DP)
http://acm.hdu.edu.cn/showproblem.php?pid=4976 2014 Multi-University Training Contest 10 1006 A simp ...
- ACM Greedy Mouse
Greedy Mouse 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 A fat mouse prepared M pounds of cat food,read ...
- hdu 1053 (huffman coding, greedy algorithm, std::partition, std::priority_queue ) 分类: hdoj 2015-06-18 19:11 22人阅读 评论(0) 收藏
huffman coding, greedy algorithm. std::priority_queue, std::partition, when i use the three commente ...
- Greedy
在现实世界中,有这样一类问题:它有n个输入,而它的解就由这n个输入的某个子集组成,不过这个子集必须满足某些事先给定的条件.把那些必须满足的条件称为约束条件:而把满足约束条件的子集称为该问题的可行解.问 ...
随机推荐
- HDU2157(SummerTrainingDay05-F dp)
How many ways?? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- js实现分享到QQ
js代码 <script src="http://connect.qq.com/widget/loader/loader.js" widget="shareqq&q ...
- php简单实现二级联动
<script type="text/javascript"> //当第一级选项发生变化的时候跳转 function jump() { location.href='? ...
- 解决input中智能提示框onblur与onclick冲突的问题
背景: 制作一个类似百度输入法的智能提示框, 其中当关键词输入进来时,会有智能提示展开,实际需求是当点击智能提示框的汉字时,输入框中自动补全并关闭智能提示, 当点击其他区域时,智能提示框自动隐藏,如下 ...
- innerHTML在ie9有部分无法添加
在高版本的浏览器,innerHTML就如正常时候,里面可以套任何字符串,但是在ie9下,innerHTML不能是table ,tr td等标签字符串,解决方法如下: 在table添加一个tr var ...
- 配置ArcGIS Server使用LDAP身份认证
1.登陆ArcGIS Server Manager,修改站点的安全设置.选择用户和角色来自现有企业系统(LDAP或Windows域). 2.选择LDAP存储类型. 3.填写LDAP用户存储连接信息.主 ...
- mysql 安全模式
今天,执行一条delete语句的时候报错如下: Error Code: 1175. You are using safe update mode and you tried to update a t ...
- EJB2.0 ejb-jar.xml配置文件详解
<ejb-jar><!--EJB发布描述器的根元素,它包含一个可选的EJB-JAR文件的描述,可选显示的名称,可选小图标的文件名,可选的大图标的文件名,必须的所有被包含的enterp ...
- CSS| 颜色名
CSS 颜色名 所有浏览器都支持的颜色名. HTML 和 CSS 颜色规范中定义了 147 中颜色名(17 种标准颜色加 130 种其他颜色).下面的表格中列出了所有这些颜色,以及它们的十六进制值. ...
- 解决VS调试Web应用无问题而部署在IIS上报500和403的问题
[问题:报500]不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的(overrideModeDefault="Deny" [解决方案] 运行 ...