HDU6106 Classes 模拟|签到

本文解析了HDU6106题目,介绍了如何通过模拟计算过程解决该问题。通过设定第七个值作为基准,逐步推导出其他数据,并提供了AC代码实现。

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

题目链接:HDU6106

题目思路,模拟一下计算过程即可。

比赛当时读了半天都没读懂题目是啥意思,后来队友给我讲了一下,发现这才是真正的签到题。

通过读题我们可以得出,第七个值,abc一定是对的,因为后面所有的数据都跟这个相关,如果这么数据错了,后面根本无法算,所以以这个为基准去推其他的数据就行,不存在坑点,一步一步模拟就好。

AC代码:

/*
2017年8月11日16:27:07
 AC
签到题 

*/

#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		int n;
		scanf("%d",&n);
		int ans=-1;
		for(int i=1;i<=n;i++){
			int a,b,c,ab,bc,ac,abc;
			int A,B,C,AB,BC,AC,ABC;
			scanf("%d%d%d%d%d%d%d",&a,&b,&c,&ab,&bc,&ac,&abc);
			if(ac<abc||ab<abc||bc<abc||
				b-ab-bc+abc<0||a-ab-ac+abc<0||c-ac-bc+abc<0) continue;
			else{
				ABC=abc; 
				AC=ac-abc;
				AB=ab-abc;
				BC=bc-abc;
				A=a-AB-AC-ABC;
				B=b-AB-BC-ABC;
				C=c-AC-BC-ABC;
				ans=max(ans,A+B+C+AB+AC+BC+ABC);
			} 
			 
		}printf("%d\n",ans);
	}
	return 0;
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值