【2016-北京赛区网络赛-I】枚举,贪心,优先队列,优化(导弹,hihocoder 1391)
来源:互联网 发布:游戏连不上手机的网络0 编辑:程序博客网 时间:2024/04/25 14:49
比赛时暴力枚举,TEL。
然后尝试用滑动窗口优化,然后发现无法优化。
赛后才知道可以用优先队列来优化。
好可惜呀。
代码
#include<bits/stdc++.h>using namespace std;typedef long long ll;ll TA,TB;ll x;ll N,M;struct dd{ ll t,v,d; ll st,ed; dd(ll a,ll b,ll c):t(a),v(b),d(c) { st=t+v; if(t+2*v>=x&&t+2*v<=x+TB) ed=t+((x+TB-t)/(2*v))*2*v+v; else ed=st; } bool operator < (const dd& rhs) const { return ed<rhs.ed; }};vector<dd>vec;struct cmp{ bool operator () (dd& a,dd& b) { return a.st>b.st; }};int main(){ while(scanf("%lld %lld",&TA,&TB)!=EOF) { ll sum=0; vec.clear(); scanf("%lld %lld %lld",&x,&N,&M); ll t,v,d; for(ll i=0;i<N;i++) { scanf("%lld %lld %lld",&t,&v,&d); if(t+v>=x&&t+v<=x+TB) { vec.push_back(dd(t+v,v,d)); sum+=d; } } for(ll i=0;i<M;i++) { scanf("%lld %lld %lld",&t,&v,&d); vec.push_back(dd(t,v,d)); sum+=d; } sort(vec.begin(),vec.end()); ll ANS=0; ll ans=0; priority_queue<dd,vector<dd>,cmp>q; ll st,ed,k; k=0; for(unsigned int i=0;i<vec.size();i++) { ed=vec[i].ed; st=ed-TA; while(k<vec.size()&&vec[k].ed<=ed) { q.push(vec[k]); ans+=vec[k].d; k++; } while(!q.empty()) { dd temp=q.top(); if(temp.st<st) { ans-=temp.d; q.pop(); } else break; } ANS=max(ANS,ans); } printf("%d\n",sum-ANS); } return 0;}
0 0
- 【2016-北京赛区网络赛-I】枚举,贪心,优先队列,优化(导弹,hihocoder 1391)
- hihoCoder 1578 Visiting Peking University 【贪心】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)
- hihocoder #1227 : The Cats' Feeding Spots 北京赛区(2015)网络赛 (暴力枚举)
- hihoCoder 1389 Sewage Treatment 【二分+网络流+优化】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)
- 【2016-北京赛区网络赛-A】水题(The Book List,hihocoder 1383)
- hihoCoder 1236 Scores(2015北京赛区网络赛)
- hihoCoder 1231 Border Length(北京赛区(2015)网络赛 E)
- hihoCoder 1391 Countries 【预处理+排序+堆】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)
- hihoCoder 1391 Countries 【预处理+排序+堆】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)
- hihoCoder 1392 War Chess 【模拟】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)
- hihocoder #1234 : Fractal 北京赛区(2015)网络赛 (找规律)
- hihocoder #1233 : Boxes 北京赛区(2015)网络赛(状态压缩+bfs)
- hihocoder-1586---Minimum(2017-icpc-网络赛-北京赛区)(线段树)
- Countries 2016北京网络赛 预处理+排序+优先队列
- 2017ICPC网络赛北京赛区 I题
- 北京赛区(2017)网络赛-I-线段树
- HihoCoder-1578 Visiting Peking University(模拟,ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)
- hihoCoder 1584 Bounce 【数学规律】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)
- 今天360清理垃圾将谷歌搜索跳转到hk上
- git 错误 fatal: This operation must be run in a work tree
- HDU 1698 Just a Hook(线段树延迟更新)
- mount check
- 序列化之readResolve方法
- 【2016-北京赛区网络赛-I】枚举,贪心,优先队列,优化(导弹,hihocoder 1391)
- API:定义客户端/服务器接口协议
- 求数组中的最大偶数(递归解法)
- 关于Android4.0 BLE编程的一点总结(搜索篇)
- 五、DMA入门使用
- Hello World程序的由来
- JavaScript实用技巧
- 正则表达式(Regular Expression)
- Kth Smallest Element in a Sorted Matrix