HDU-4544-湫湫系列故事——消灭兔子
2013-04-01 11:03
337 查看
昨天这个题被数据量给吓着了,以为贪心没有办法做,结果今天才发现超多人都是用贪心做的。唉,是数据水了?
今天用了2种方法做,其实昨天都有想过。
优先队列:
代码:
STL multiset
代码:
今天用了2种方法做,其实昨天都有想过。
优先队列:
代码:
#include<cstdio> #include<iostream> #include<queue> #include<algorithm> const int maxn=10e4+10; using namespace std; struct row { int di; int pi; bool operator < (const row &a)const { return pi>a.pi; } }r[maxn]; priority_queue<row> q; bool cmp(row a,row b) { return a.di<b.di; } int a[maxn]; int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) { for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<m;i++) scanf("%d",&r[i].di); for(int i=0;i<m;i++) scanf("%d",&r[i].pi); sort(a,a+n); sort(r,r+m,cmp); int res=m-1,flag=0; long long ans=0; while(!q.empty()) q.pop(); for(int i=n-1;i>=0;i--) { while(res>=0&&r[res].di>=a[i]) { q.push(r[res]); res--; } if(q.empty()) { flag=1; break; } row p=q.top(); ans+=q.top().pi; q.pop(); } if(flag) printf("No\n"); else printf("%I64d\n",ans); } return 0; }
STL multiset
代码:
#include<cstdio> #include<cstring> #include<iostream> #include<set> #include<algorithm> using namespace std; const int maxn=10e4+10; struct arrow { int di; int pi; bool operator < (const arrow a)const { if(pi==a.pi) return di>a.di; return pi<a.pi; } }a[maxn]; multiset<int> s; multiset<int>::iterator it; int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) { s.clear(); for(int i=0;i<n;i++) { int ita; scanf("%d",&ita); s.insert(ita); } for(int i=0;i<m;i++) scanf("%d",&a[i].di); for(int i=0;i<m;i++) scanf("%d",&a[i].pi); sort(a,a+m); long long ans=0; for(int i=0;i<m;i++) { it=s.upper_bound(a[i].di); if(it!=s.begin()) { s.erase(s.find(*(--it))); ans+=a[i].pi; } if(s.empty()) break; } if(s.empty()) printf("%I64d\n",ans); else printf("No\n"); } return 0; }
相关文章推荐
- HDU 4544 湫湫系列故事——消灭兔子 (贪心+优先队列)
- HDU 4544 湫湫系列故事——消灭兔子
- hdu 4544 湫湫系列故事——消灭兔子(优先队列 + 贪心)
- HDU 4544 湫湫系列故事——消灭兔子
- HDU 4544 湫湫系列故事——消灭兔子
- hdu 4544 湫湫系列故事——消灭兔子
- HDU 4544 湫湫系列故事――消灭兔子
- HDU 4544 湫湫系列故事——消灭兔子
- hdu 4544 湫湫系列故事——消灭兔子, 贪心算法+小顶堆
- hdu 4544 湫湫系列故事——消灭兔子
- hdu 4544 湫湫系列故事——消灭兔子
- hdu 4544 湫湫系列故事——消灭兔子 优先队列+贪心
- hdu 4544 湫湫系列故事——消灭兔子
- HDU - 4544 湫湫系列故事――消灭兔子 2013腾讯编程马拉松复赛第三场
- hdu 4544 湫湫系列故事——消灭兔子(贪心+优先队列)
- HDU - 4544 湫湫系列故事——消灭兔子 贪心+优先队列
- hdu 4544 湫湫系列故事——消灭兔子
- hdu 4544 湫湫系列故事——消灭兔子(贪心+优先队列)
- HDU 4544 湫湫系列故事——消灭兔子(优先队列+贪心)
- hdu 4544 湫湫系列故事——消灭兔子(优先队列+贪心)