UVALive 7146 Defeat the Enemy

本文介绍了一种模拟战斗过程的算法实现,通过合理安排己方兽人的进攻顺序以最大化生存数量。具体步骤包括:首先对己方和敌方兽人按攻击力和防御力排序;然后枚举每个敌人,寻找合适的己方兽人进行有效击杀。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题意:

你有n个攻击力为A,防御力为D的兽人,敌人有m个攻击力为EA,防御力为ED的兽人,两个兽人在对战时同时攻击对方,当攻击力高于对方的防御力时,即可杀死对方。你的兽人只能用一次。问你在杀死所有敌人的前提下你的兽人最多能剩多少。

思路:

将我们的兽人按攻击力A从大到小排列,敌人按防御力D从大到小排列,然后枚举每只敌人,将能杀死他也就是攻击力高于他的兽人防御力丢到一个multiset中,对于当前敌人,在multiset中找一个D刚好大于他攻击力的我们的兽人来干他,如果找不到大于他攻击力的就取一个防御力最小的和他同归于尽。这样做总是最优的。

#include<cstdio>
#include<set>
#include<algorithm>
using namespace std;

const int MAX=1e5+5;
int n,m;
multiset<int> s;
multiset<int>::iterator it;

struct Node{
	int A,D;
}a[MAX],b[MAX];

bool cmp1(Node a,Node b){
	return a.A>b.A;
}

bool cmp2(Node a,Node b){
	return a.D>b.D;
}

int main(){
	int T,cas=1;
	scanf("%d",&T);
	while(T--){
		scanf("%d%d",&n,&m);
		for(int i=0;i<n;i++){
			scanf("%d%d",&a[i].A,&a[i].D);
		}
		for(int i=0;i<m;i++){
			scanf("%d%d",&b[i].A,&b[i].D);
		}
		sort(a,a+n,cmp1);
		sort(b,b+m,cmp2);
		int ans=n,j=0;
		bool flag=true;
		s.clear();
		for(int i=0;i<m;i++){
			for(;j<n;j++){
				if(b[i].D<=a[j].A){
					s.insert(a[j].D);
				}
				else break;
			}
			if(s.empty()){
				flag=false;
				break;
			}
			it=s.upper_bound(b[i].A);
			if(it==s.end()) it=s.begin(),ans--;
			s.erase(it);
		}
		printf("Case #%d: ",cas++);
		if(flag) printf("%d\n",ans);
		else printf("-1\n");
	}
	return 0;
}


此压缩包包含了本毕业设计项目的完整内容,具体包括源代码、毕业论文以及演示PPT模板。 开发语言:Java 框架:SSM(Spring、Spring MVC、MyBatis) JDK版本:JDK 1.8 或以上 开发工具:Eclipse 或 IntelliJ IDEA Maven版本:Maven 3.3 或以上 数据库:MySQL 5.7 或以上 项目配置完成后即可运行,若需添加额外功能,可根据需求自行扩展。 运行条件 确保已安装 JDK 1.8 或更高版本,并正确配置 Java 环境变量。 使用 Eclipse 或 IntelliJ IDEA 打开项目,导入 Maven 依赖,确保依赖包下载完成。 配置数据库环境,确保 MySQL 服务正常运行,并导入项目中提供的数据库脚本。 在 IDE 中启动项目,确认所有服务正常运行。 主要功能简述: 请假审批流程:系统支持请假申请的逐级审批,包括班主任审批和院系领导审批(针对超过三天的请假)。学生可以随时查看请假申请的审批进展情况。 请假记录管理:系统记录学生的所有请假记录,包括请假时间、原因、审批状态及审批意见等,供学生和审批人员查询。 学生在线请假:学生可以通过系统在线填写请假申请,包括请假的起止日期和请假原因,并提交给班主任审批。超过三天的请假需经班主任审批后,再由院系领导审批。 出勤信息记录:任课老师可以在线记录学生的上课出勤情况,包括迟到、早退、旷课和请假等状态。 出勤信息查询:学生、任课老师、班主任、院系领导和学校领导均可根据权限查看不同范围的学生上课出勤信息。学生可以查看自己所有学年的出勤信息,任课老师可以查看所教班级的出勤信息,班主任和院系领导可以查看本班或本院系的出勤信息,学校领导可以查看全校的出勤信息。 出勤统计与分析:系统提供出勤统计功能,可以按班级、学期等条件统计学生的出勤情况,帮助管理人员了解学生的出勤状况。 用户管理:系统管理员负责管理所有用户信息,包括学生、任课老师、班主任、院系领导和学校领导的账号创建、权限分配等。 数据维护:管理员可以动态更新和维护系统所需的数据,如学生信息、课程安排、学年安排等,确保系统的正常运行。 系统配置:管理员可以对系统进行配置,如设置数据库连接参数、调整系统参数等,以满足不同的使用需求。 身份验证:系统采用用户名和密码进行身份验证,确保只有授权用户才能访问系统。不同用户类型(学生、任课老师、班主任、院系领导、学校领导、系统管理员)具有不同的操作权限。 权限控制:系统根据用户类型分配不同的操作权限,确保用户只能访问和操作其权限范围内的功能和数据。 数据安全:系统采取多种措施保障数据安全,如数据库加密、访问控制等,防止数据泄露和非法访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值