本次比赛

T1社团代表选拔

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=114514;
int n,k,a[N];
bool vis[N];
int ans[N],cnt;
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	for(int i=1;i<=n;i++)
	{
		if(!vis[a[i]])
		{
			vis[a[i]]=1;
			ans[cnt++]=i;
			if(cnt==k) break;
		}
	}
	if(cnt<k)
		cout<<"No\n";
	else
	{
		for(int i=0;i<k;i++)//注意对齐下标啊
			cout<<ans[i]<<" ";
	}
	return 0;
}

T2寻宝之路

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int MOD=1000000007;
const int N=114514;
ll n,m,x;
bool f[N];
ll dp[N];
int main()
{
	cin>>n>>m;
	while(m--)
	{
		cin>>x;
		f[x]=1;
	}
	dp[0]=1;
	for(int i=1;i<=n;i++)
	{
		if(f[i])
		{
			dp[i]=0;
			continue;
		}
		dp[i]=dp[i-1];
		if(i>=2)
		{
			dp[i]=(dp[i]+dp[i-2])%MOD;
		}
	}
	cout<<dp[n]%MOD<<endl;
	return 0;
}

T3 文具换购计划

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=114514;
ll n,fee,dp[N],h,c;
int main()
{
	cin>>n>>fee;
	for(int i=1;i<=n;i++)
	{
		cin>>dp[i];
	}
	h=-1LL*dp[1];
	for(int i=2;i<=n;i++)
	{
		ll nh=max(h,c-dp[i]);
		ll nc=max(c,h+dp[i]-fee);
		h=nh;
		c=nc;
	}
	cout<<max(c,0LL)<<endl;
	return 0;
}

T4合唱排练留队

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=114;
ll n,maxn;
ll a[N];
ll dp[N][N];
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		dp[i][0]=1;
		dp[i][1]=1;
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<i;j++)
		{
			if(a[j]<a[i])
			{
				dp[i][0]=max(dp[i][0],dp[j][0]+1);
			}
			if(a[j]>a[i])
			{
				dp[i][1]=max(dp[i][1],dp[j][1]+1);
				dp[i][1]=max(dp[i][1],dp[j][0]+1);
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		maxn=max(maxn,dp[i][0]);
		maxn=max(maxn,dp[i][1]);
	}
	cout<<n-maxn;
	return 0;
}

T5 作者没有AK的义务&意愿,这种题都是用来骗分的。(bushi


#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=114514;
int n,a[N],wow;
signed main()
{
	wow=0;
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++)
	{
		for(int j=i;j<=n;j++)
		{
			int p=i;
			bool awa=1;
			while(p<=j)
			{
				int len=a[p];
				if(p+len>j)
				{
					awa=0;break;
				}
				p=p+len+1;
			}
			if(awa)
			{
				if(j-i+1>wow) wow=j-i+1;
			}
		}
	}
	cout<<wow<<endl;
	return 0;
}

祝大家AK订正比赛喵=owo=