Gym 101243.E
来源:互联网 发布:udp监听端口阻塞 编辑:程序博客网 时间:2024/06/05 19:38
题意:桌子上有K个蛋糕,有N个人排队吃蛋糕,其中N-1个人能吃的蛋糕个数为[1, ai]个,另一个吃的最多的人,他每次必吃ai个,如果轮到一个人时桌子前没蛋糕了,那么他要清理桌子,其他N-1个人都希望这个吃的最多的人清理桌子,问是否能使这个人清理桌子。第N个人吃完蛋糕后第一个人会继续去吃蛋糕,直到K = 0。
思路:
枚举轮数,最极限的情况应该是1e8/(1-1+1) = 1e8。然后考虑每轮能否获胜即可。这个做法比较坑感觉。但是能过。
瞅了瞅rk1那个人的代码。发现自己太蠢了!!!
可以用一种类似夹逼准则?2333。就是夹出来答案的方式,看看你最多能放几轮,最少能放几轮,如果两者之间还有容量。那么就yes。否则就no。
然后注意一下,同时上下加分母是因为算rb的时候,他可能是负数。
#include <bits/stdc++.h>using namespace std;const int maxn = 1e5 + 5;int a[maxn];long long sum[maxn];int main(){ freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); int n, k; scanf("%d%d", &n, &k); for(int i = 1; i <= n; i++) { scanf("%d", &a[i]); sum[i] = sum[i - 1] + a[i]; } int id = max_element(a + 1, a + 1 + n) - a; int mx = a[id]; long long lb = (k - sum[id-1] + sum[n] - 1 + sum[n]) / sum[n] ; long long rb = (k - id + 1 + n + mx - 1) / (n + mx - 1); if(lb <= rb) puts("YES"); else puts("KEK"); return 0;}
阅读全文
0 0
- Gym 101243.E
- Gym-101612E E
- Gym 100935E Pairs
- CodeForces Gym 100735E
- Codeforces gym 100685 E
- Gym 100712E 贪心
- codeforces [Gym-100814E]
- Codeforces gym 101243 E
- Gym 101161 E
- Teams Gym-101028E
- Gym 100187E - Two Labyrinths
- Gym 100499E (树DP)
- Gym - 100338E Numbers 贪心
- Gym-100712E-Epic Professor
- Gym 100712E Epic Professor
- Gym 100269E-Energy Tycoon
- Gym 100947E Qwerty78 Trip
- Gym 101138E Bravebeart【水题】
- WiFi热点数据传输DEMO
- 常见空指针异常及其避免
- AnjularJS-imooc学习笔记1
- C# WEBREQUEST简单调用WEBSERVICE方法
- Spring Boot 形参Map并没有添加到类似于ModelAndView中,但是却可以页面取到相应的值?
- Gym 101243.E
- 【kmp算法】数据结构实验之串三:KMP应用
- Activiti工作流引擎使用
- 明略数据笔试题
- C语言实验——交换两个整数的值(顺序结构)
- About Me
- C#工大租车系统(包含异常处理)
- Windows里面的DISKPART分区工具
- Java--day02 常量变量数据类型