CSU-1593 丹麦海峡

1593: 丹麦海峡

            Time Limit: 1 Sec       Memory Limit: 128 Mb       Submitted: 375       Solved: 130    

Description

在丹麦海峡战役中,胡德号在优势情况下率先三轮炮击均未击中俾斯麦号,反被俾斯麦以千分之八的概率的一发入魂。
为了证明自己,你回到了胡德号,作为一名优秀指挥官,你侦查到你的航线上有m个战斗力不相同的杂鱼们,你对他们的情报一清二楚,包括他们的护甲和价值,胡德号上有n门火炮,已知每门火炮的攻击力,当你的攻击力大于等于敌人的护甲时,则可以命中并击沉敌人。每门火炮在一轮炮击中只能打出1发。请你计算你在一轮炮击中,在击沉最多战舰的情况下,最多能击沉多大价值总和的敌舰。

Input

第一行包含一个整数T(1<=T<=20)
以下有T组数据,
每组数据的第一行包含两个整数n,m(0<=n,m<=50)
第二行包含2*m个整数,Di,Vi(0<=Di,Vi<=10^8)分别表示敌舰的防御和价值
第三行包含n个整数,Ai(0<=Ai<=10^8)表示你火炮的攻击力

Output

对于每组数组输出一个整数,表示你在一轮炮击中击沉敌舰最多的前提下,能击沉多大价值总和的战舰。

Sample Input

3
3 4
2 10 2 10 1 2 1 3
2 2 2
4 4
2 5 3 5 4 5 1 5
1 1 2 4
1 0

100

Sample Output

23
15
0

Hint

Source

国防科学技术大学第十八届银河之光文化节ACM程序设计竞赛初赛
一道贪心,我们总希望用攻击力最小的炮轰掉皮薄馅大的舰,所以先按要求读取数据(废话),把炮的数据放进vector中,舰的防御力和价值可以用pair存,也可以自己定义结构体,把炮的攻击力升序排列,这样每次从头开始扫描,都会找到符合条件的攻击力最低的炮轰掉目标,把攻击力大的炮留到后面以备不时之需,把舰也按照防御力和价值排序,如果价值相等,把防御力低的放前面,否则把价值高的放前面(最开始写的是算出每点防御力对应的单位价值,把单位价值高的排在前面,一直WA),排序好后就可以开始扫描了,当剩余未遍历的舰的数量为零或者炮用完了则退出循环,从最好欺负的舰开始下手,如果当前炮的攻击力大于其防御力,则把这门炮从vector中抹除,被击沉的船在下次循环中也不会被再次访问。

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
#include<queue>
#define ull unsigned long long
#define maxn 60
using namespace std;
bool cmp(pair <int,int> a,pair <int,int> b)
{
    if(a.second==b.second)
        return a.first<b.first;
    return a.second>b.second;
}
int main()
{
    int t;
    cin >> t;
    while(t--)
    {
        int n,m;
        ull value=0;
        cin >> n>>m;//n num of firearm m num of enemy
        pair <int,int> boat[maxn];
        std::vector<int> firearm;
        for(int i=0;i<m;i++)
        {
            int d,v;
            cin >> d >> v;
            boat[i].first=d;
            boat[i].second=v;
        }
        for (int i = 0; i < n; i++)
        {
        	int f;
        	cin >> f;
        	firearm.push_back(f);
        }
        sort(boat,boat+m,cmp);
        sort(firearm.begin(),firearm.end());
        int i=0,j=0;
        while(i!=m&&firearm.size()!=0)
        {
        	int flag=0;
        	for (std::vector<int>::iterator k = firearm.begin(); k != firearm.end(); k++)
        	{
        		flag=0;
        		if (*k>=boat[i].first)
        		{
        			value+=boat[i].second;
        			flag=1;
        			i++;
        			firearm.erase(k);
        			break;
        		}
        	}
        	if(flag==0)
        		i++;
        }
        cout << value << endl;
    }
    return 0;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值