• hdu 4544 湫湫系列故事——消灭兔子 优先队列+贪心


    将兔子的血量从小到大排序,箭的威力也从小到大排序,

    对于每仅仅兔子将威力大于血量的箭增加队列,写个优先队列使得出来数位价钱最少。。

    #include<stdio.h>
    #include<queue>
    #include<algorithm>
    #include<iostream>
    #include<functional>
    using namespace std;
    
    const int maxn=100010;
    struct tt
    {
    	int d;
    	int p;
    	bool operator<(const tt&t) const{
    		 return d>t.d||(d==t.d&&p<t.p);
    	}
    } pt[maxn];
    int b[maxn];
    priority_queue<int , vector<int> , greater<int> > q;
    int main()
    {
        int n,m,i,j;
    	while(~scanf("%d%d",&n,&m))
    	{
    		for(i=1;i<=n;i++) scanf("%d",&b[i]);
    		for(i=1;i<=m;i++) scanf("%d",&pt[i].d);
    		for(i=1;i<=m;i++) scanf("%d",&pt[i].p);
    		sort(b+1,b+1+n,greater<int>());
    		sort(pt+1,pt+1+m);
    		while(!q.empty())
    			q.pop();
    		__int64 ans=0;
    		bool flag=1;
    		for(i=1,j=1;i<=n;i++)
    		{
    			while(j<=m&&pt[j].d>=b[i])
    			{
    				q.push(pt[j].p);
    				j++;
    			}
    			if(!q.empty())
    			{
    				ans=ans+q.top();
    				q.pop();
    			}
    			else
    			{
    				flag=0;
    				break;
    			}
    		}
    		if(flag)
    			printf("%I64d
    ",ans);
    		else
    			printf("No
    ");
    	}
    	return 0;
    }


  • 相关阅读:
    第五周的学习进度情况
    周末经历之小体会
    构建之法阅读笔记5
    第四周的学习进度情况
    hashMap中如何形成循环链表的?
    代理模式
    sharing-jdbc实现读写分离及分库分表
    分库分表
    读写分离实现方式
    MySQL主从复制
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6918416.html
Copyright © 2020-2023  润新知