题解 | High Card Wins-牛客假日团队赛4I题

I-High Card Wins_牛客假日团队赛4

https://ac.nowcoder.com/acm/contest/947/I

题目描述

Bessie the cow is a huge fan of card games, which is quite surprising, given her lack of opposable thumbs. Unfortunately, none of the other cows in the herd are good opponents. They are so bad, in fact, that they always play in a completely predictable fashion! Nonetheless, it can still be a challenge for Bessie to figure out how to win.

Bessie and her friend Elsie are currently playing a simple card game where they take a deck of  cards, conveniently numbered , and divide them into  cards for Bessie and  cards for Elsie. The two then play  rounds, where in each round Bessie and Elsie both play a single card, and the player with the highest card earns a point.

Given that Bessie can predict the order in which Elsie will play her cards, please determine the maximum number of points Bessie can win.

输入描述:

The first line of input contains the value of
The next N lines contain the cards that Elsie will play in each of the successive rounds of the game. Note that it is easy to determine Bessie's cards from this information.

输出描述:

Output a single line giving the maximum number of points Bessie can score.

示例1

输入
3
1
6
4
输出
2
说明
Here, Bessie must have cards 2, 3, and 5 in her hand, and she can use these to win at most 2 points by saving the 5 until the end to beat Elsie's 4.

解答

每个牌肯定是管第一个比它小的牌是最优的
所以我们只需要从小到大记录对面目前还剩几张牌,手里只要有能管的就管上一个
#include<iostream>
#include<cstdio>
 
using namespace std;
 
int n;
bool f[100010];
int ans=0;
 
int main(){
	scanf("%d",&n);
	for(int i=0; i<n; i++){
		int x;
		scanf("%d",&x);
		f[x]=true;
	}
	int num=0;
	for(int i=1; i<=2*n; i++){
		if(f[i])num++;
		if(!f[i] && num)num--,ans++;
	}
	printf("%d\n",ans);
	
	return 0;
}

来源:everlasting的博客
全部评论

相关推荐

Java抽象带篮子:难蚌,点进图片上面就是我的大头😆
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-20 19:57
已编辑
某大厂 golang工程师 23.0k*16.0, 2k房补,年终大概率能拿到
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务