[对内测试Day10.16]贪心+读入+DP+小学数学
来源:互联网 发布:约翰霍普金斯大学知乎 编辑:程序博客网 时间:2024/06/05 09:19
T1
codevs2913建筑抢修
大意见链接。
先说自己在考场上的思路:
每个任务有结束时间的限制,这点特性很像codevs1052地鼠游戏
然后选择了将时间从后向前枚举,将当前时间所有可选择的任务丢进堆中,每次选择需要时间最小的一定最优(剩余给前面的时间更长)
对于当前可选择的最小任务时间如果无法再下一个时间点(实际的前一个的时间点)完成的话
将该任务进行的时间 -= 已进行的时间,重新扔进堆中
不断更新当前的时间last
自己的代码↓
#include<iostream>#include<cstdio>#include<algorithm>#include<queue>#define LL long longusing namespace std;const LL MAXN = 200000 + 50;struct zt{ LL t,r;}l[MAXN];LL n;bool cmp(zt a,zt b){ return a.r < b.r;}LL last;long long cnt;bool operator < (zt a,zt b){ return a.t > b.t;}priority_queue <zt> q;LL p;int main(){ freopen("alma.in","r",stdin); freopen("alma.out","w",stdout); scanf("%lld",&n); for(LL i = 1;i <= n;i ++) { scanf("%lld%lld",&l[i].t,&l[i].r); } sort(l + 1,l + n + 1,cmp); last = l[n].r; p = n - 1; q.push(l[n]); while(l[p].r == last && p) { q.push(l[p]); p --; } while(p) { zt u = q.top(); q.pop(); while(last - u.t >= l[p].r) { last -= u.t; cnt ++; u = q.top(); q.pop(); if(q.empty())break; } if(last - u.t >= l[p].r){ cnt ++; last = l[p].r; } else { u.t -= last - l[p].r; q.push(u); last = l[p].r; } while(l[p].r == last && p) { q.push(l[p]); // if(l[p].r == 500 && l[p].t == 100)prLLf("haha\n"); p --; } } while(last > 0 && !q.empty()) { zt u = q.top(); q.pop(); cnt ++; last -= u.t; } if(last < 0)cnt --; printf("%lld",cnt); fclose(stdin); fclose(stdout); return 0;}
考场上没有将输入开成long long,被卡掉20分
然而不开long long在codevs上是可以过的……还是自家出题人太毒瘤QAQ
T2
codevs1089侦探推理
T3
luoguP2246 Hello World
T4
见上一篇
阅读全文
0 0
- [对内测试Day10.16]贪心+读入+DP+小学数学
- 小学数学
- 小学数学
- 小学数学
- 小学数学
- 小学数学
- 小学数学
- 小学数学
- 小学数学
- 小学数学
- 小学数学
- [队内测试Day10.10]贪心+模拟+BFS
- [队内测试Day10.12]贪心+状压+分块+树状数组
- 小学数学安装 官网
- 小学数学伴侣 官方
- 小学数学练习 免费
- 小学数学基础
- 小学数学 oj
- 用一个表的数据更新另外一个表数据的用法(update from)
- hive 优化
- Linux中CPU亲和性(affinity)
- hive优化2
- 【转载】一句话实现五彩LINUX
- [对内测试Day10.16]贪心+读入+DP+小学数学
- 【转载】Linux SHELL if 命令参数说明
- 【转载】在Linux下限制用户登陆IP
- hive --service hiveserver2
- hwi(hive web interface)-hive web页面的搭建
- Hadoop中Speculative Task调度策略
- 搭建antlr4.2.2开发环境
- 数据结构实验之栈与队列二:一般算术表达式转换成后缀式
- JAVA如何避免死锁的几个常见方法