2021.8.16提高B组模拟7T2 + P7413 [USACO21FEB] Stone Game(贪心)

Posted SSL_LKJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021.8.16提高B组模拟7T2 + P7413 [USACO21FEB] Stone Game(贪心)相关的知识,希望对你有一定的参考价值。

Stone Game

题目传送门

输入样例

1.

1
7

2.

6
3 2 3 2 3 1

输出样例

1.

4

2.

8

解题思路

判断奇偶性,然后贪心求解

AC代码

#include<algorithm>
#include<cstdio>
using namespace std;
int n,x,mmax,a[1000005],f[1000005],qzh[1000005];
long long ans;
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%d",&x),mmax=max(mmax,x),f[x]++;//预处理
	for(int i=1;i<=mmax;i++)qzh[i]=qzh[i-1]+f[i];//前缀和 
	for(int i=1;i<=mmax;i++)
	{
		int o=mmax/i,sum=0;
		for(int j=1;j<=o;j++)a[j]=qzh[min((j+1)*i-1,mmax)]-qzh[j*i-1],sum+=a[j]&1;
		if(sum==1)
		{
			if(a[1]&1)ans+=1ll*a[1];
		}
		else if(sum==2)for(int j=2;j<=o;j++)if((a[j]&1)&&(a[j-1]&1))ans+=1ll*a[j];
	} 
	printf("%lld",ans); 
	return 0;
} 

谢谢

以上是关于2021.8.16提高B组模拟7T2 + P7413 [USACO21FEB] Stone Game(贪心)的主要内容,如果未能解决你的问题,请参考以下文章

2021.7.19提高B组模拟7T2 最大公约数(欧拉公式)

2021.8.16提高B组模拟7T3 + P7414 [USACO21FEB] Modern Art 3(动态规划)

2021.8.16提高B组模拟7T3 + P7414 [USACO21FEB] Modern Art 3(动态规划)

2017.12.09NOIP提高组模拟赛A组

2017.07.16【NOIP提高组】模拟赛B组 卫星照片 题解

2017.07.14NOIP提高组模拟赛B组