博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Codeforces Round #476 (Div. 2) [Thanks, Telegram!] C】Greedy Arkady
阅读量:4582 次
发布时间:2019-06-09

本文共 1030 字,大约阅读时间需要 3 分钟。

【链接】

【题意】

在这里输入题意

【题解】

枚举那个人收到了几次糖i.
最好的情况显然是其他人都只收到i-1次糖。
然后这个人刚好多收了一次糖
也即
(i-1)kx + x <= n
显然x越大越好。
那么直接令\(x=\frac{n}{( (i-1)*k+1)}\)就好
如果x>M了
那么令x = M;
但这个时候。
要判断一下改变之后的x,按照顺序分的时候是否还能满足这个人收到i次糖。
如果不能收到i次糖的话。跳过。不能统计答案。

【代码】

#include 
#define LL long long#define rep1(i,a,b) for (int i = a;i <= b;i++)#define rep2(i,a,b) for (int i = a;i >= b;i--)#define all(x) x.begin(),x.end()#define pb push_back#define lson l,mid,rt<<1#define rson mid+1,r,rt<<1|1using namespace std;const double pi = acos(-1);const int dx[4] = {0,0,1,-1};const int dy[4] = {1,-1,0,0};LL n,k,M;int D;int main(){ #ifdef LOCAL_DEFINE freopen("rush_in.txt", "r", stdin); #endif ios::sync_with_stdio(0),cin.tie(0); cin >> n >> k >> M >> D; long long ans = 0; for(LL i = 1;i <= D;i++){ LL x = n/( (i-1)*k + 1); if (x==0) break; if (x>M) x = M; if ((n/(k*x)+((n%(k*x)>=x?1:0)))!=i) continue; ans = max(ans,x*i); } cout<
<

转载于:https://www.cnblogs.com/AWCXV/p/8949119.html

你可能感兴趣的文章
hdu 1853 Cyclic Tour(费用流OR二分图最佳匹配,5级)
查看>>
js 对url进行某个参数的删除,并返回url
查看>>
Windows7装Linux虚拟机
查看>>
SQL 操作结果集 -并集、差集、交集、结果集排序
查看>>
linux上搭建nginx+php+mysql环境详细讲解
查看>>
RemoveDuplicatesFromSortedArrayI II,移除有序数组里的重复元素以及移除数组里的某个元素...
查看>>
Minimum Depth of Binary Tree,求树的最小深度
查看>>
解决Web部署 svg/woff/woff2字体 404错误
查看>>
fiddler 抓取 nodejs
查看>>
1.Nginx服务应用
查看>>
MySQL基础
查看>>
凹凸贴图与法线贴图
查看>>
sqlserver跨服务器数据库sql语句
查看>>
设计模式-结构型模式,外观模式(6)
查看>>
Trie模版
查看>>
2018HDU多校训练-3-Problem F. Grab The Tree
查看>>
2016012032四则运算网页版结对项目报告
查看>>
淘宝专业版改基础版方法
查看>>
[转]ARM Pipeline
查看>>
[转]Blocking Code Injection on iOS and OS X
查看>>