AcWing 3745. 牛的学术圈 I 理解题意+枚举答案(妙)

Posted karshey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AcWing 3745. 牛的学术圈 I 理解题意+枚举答案(妙)相关的知识,希望对你有一定的参考价值。

AcWing 3745. 牛的学术圈 I 原题
参考题解:封禁用户大佬的题解:AcWing 3745. 牛的学术圈 I两种方法——1.二分;2.只要一个for和一个数组
我的打卡

枚举答案,找出第一个不符合题意的i,于是i-1就是答案。

#include<bits/stdc++.h>
using namespace std;
#define fir(i,a,n) for(int i=a;i<=n;i++)
const int N=1e5+10;
int n,l;
int a[N];//引用量为i的的个数有a[i]个 
int main()

	cin>>n>>l;
	fir(i,1,n) 
	
		int t;cin>>t;a[t]++;
	
	int t=n;
	int i;
	//定义答案为引用指数,枚举答案
	for(i=1;i<=n;i++)
	
		t-=a[i-1];//减去引用量小于答案的文章个数 
		//若出现:当前>=i的文章个数+能通过+1>=i的文章个数 之和<i 
		//说明第一次出现不符合的情况 
		if(t+min(a[i-1],l)<i) 
		
			//i是第一次出现的不符合的情况,则输出i-1 
			break;
		
	 
	cout<<i-1;
	return 0;

以上是关于AcWing 3745. 牛的学术圈 I 理解题意+枚举答案(妙)的主要内容,如果未能解决你的问题,请参考以下文章

春季每日一题2022 Week 1 未完结

AcWing 1776. 牛的基因组学(STL+枚举)

AcWing 1068. 环形石子合并

ACWing 最长连续不重复子序列(双指针)

AcWing 1762. 牛的洗牌

AcWing 1762. 牛的洗牌(暴力)