【枚举】【贪心】 Codeforces Round #398 (Div. 2) B. The Queue
2017-02-18 23:10
281 查看
卡题意……妈的智障
一个人的服务时间完整包含在整个工作时间以内。
显然,如果有空档的时间,并且能再下班之前完结,那么直接输出即可,显然取最左侧的空档最优。
如果没有的话,就要考虑“挤掉”某个人,就是在某个人之前1分钟到达,这样显然比较优。
就这些情况都考虑上就得了。
一个人的服务时间完整包含在整个工作时间以内。
显然,如果有空档的时间,并且能再下班之前完结,那么直接输出即可,显然取最左侧的空档最优。
如果没有的话,就要考虑“挤掉”某个人,就是在某个人之前1分钟到达,这样显然比较优。
就这些情况都考虑上就得了。
#include<cstdio> using namespace std; typedef long long ll; ll ts,tf,t,a[100010],b[100010],wait=10000000000000ll,ans; int n,num[100010],m; int main() { // freopen("b.in","r",stdin); scanf("%I64d%I64d%I64d%d",&ts,&tf,&t,&n); for(int i=1;i<=n;++i) scanf("%I64d",&a[i]); for(int i=1;i<=n;++i) if(a[i]!=a[i-1]) { b[++m]=a[i]; num[m]=1; } else ++num[m]; int sum=0; for(int i=1;i<=m;++i) if(b[i]<tf) { if(ts+(ll)(sum+1)*t<=tf && ts+(ll)sum*t-(b[i]-1ll)<wait) { wait=ts+(ll)sum*t-(b[i]-1ll); ans=b[i]-1ll; } if(ts+(ll)(sum+1)*t<=tf && b[i]-ts>(ll)sum*t) { printf("%I64d\n",ts+(ll)sum*t); return 0; } sum+=num[i]; } if(ts+(ll)(sum+1)*t<=tf) { printf("%I64d\n",ts+(ll)sum*t); return 0; } printf("%I64d\n",ans); return 0; }
相关文章推荐
- Codeforces Round #410 (Div. 2)(A,字符串,水坑,B,暴力枚举,C,思维题,D,区间贪心)
- Codeforces Round #311 (Div. 2) C. Arthur and Table (枚举+贪心+思维)
- Codeforces Round #394 (Div. 2) C. Dasha and Password 贪心+预处理+枚举
- Codeforces Round #398 (Div. 2) -- B. The Queue (贪心+暴力)
- Codeforces Round #408 (Div. 2) C. Bank Hacking 无根树、贪心、枚举
- Codeforces Round #398(Div. 2)B. The Queue【贪心+谨慎】这题好尼玛强劲
- Codeforces Round #262 (Div. 2)E(贪心+暴搜)
- 【枚举+贪心】POJ2718-Smallest Difference
- Codeforces Round #263 (Div. 2)C(贪心,联想到huffman算法)
- Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises) D. Jury Meeting(贪心)
- Poj-1042-Gone Fishing-枚举+贪心
- codeforces 204(Div.1 A) Little Elephant and Interval(贪心)
- pku 1944 Fiber Communications(枚举+贪心)
- Codeforces Round #334 (Div. 2) B. More Cowbell (贪心)
- **Codeforces Round #250 (Div. 2) C. The Child and Toy ACM解题报告(贪心难题)
- Codeforces Beta Round #77 (Div. 1 Only), problem: (B) Lucky Numbers 数位DP+剪枝DFS+贪心
- hihoCoder 1051 补提交卡(贪心,枚举)
- Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) Problem D (Codeforces 828D) - 贪心
- Codeforces Round #436 (Div. 2) D. Make a Permutation! 思维+贪心
- Codeforces Round #180 (Div. 2) D. Fish Weight 贪心