2013寒假练习 1004:Who is the Smartest Man

本文介绍了一个关于策略选择的问题——曹操如何通过合理的对手选择来最大化自己的积分(IP)。通过算法实现,采用排序和条件判断的方法,确保曹操总是尽可能地从比自己积分低的对手那里获得更高的收益。

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

地址:http://acm.bit.edu.cn/mod/programming/view.php?id=655

曹操初始IP已知,给出一个序列表示其他人的IP,曹操可以自行选择PK顺序,若对方IP比曹操当前IP高,曹操加两点IP,否则加一点。问曹操最后最多有多少智商。

显然一开始就不比曹操初始IP高的先统计,最后都算IP+1。剩下那些比曹操IP高的,排升序后跑一遍,在过程中又不比曹操IP高了的话,统计,最后算IP+1;否则直接当前IP+2继续跑。水题1Y(表述不清。。。不管了)

#include<iostream>
#include<algorithm>
using namespace std;
int a[505];
int main()
{
	int n,p,i,len,temp,sum;
	while(scanf("%d%d",&n,&p)!=EOF)
	{
		for(sum=0,len=0,i=0;i<n;i++)
		{
			scanf("%d",&temp);
			if(temp<=p) sum++;           //统计所有智商小于等于cc的
			else  a[len++]=temp;         //储存智商大于cc的
		}
		sort(a,a+len);                   //排序
		for(i=0;i<len;i++)
		{
			if(p>=a[i]) sum++;           //如果该人智商小于等于cc当前智商 统计
			else    p+=2;                //否则
		}
		printf("%d\n",p+sum);
	}
	return 0;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值