首页 > 其他 > 详细

Solution Set -「ARC 113」

时间:2021-02-23 23:35:44      阅读:5      评论:0      收藏:0      [点我收藏+]

「ARC 113A」A*B*C

Link.

就是算 \(\sum_{i=1}^{k}\sum_{j=1}^{\lfloor\frac{k}{i}\rfloor}\lfloor\frac{k}{j\times j}\rfloor\)

直接调和级数。

#include<cstdio>
long long k;
int main()
{
	scanf("%lld",&k);
	long long ans=0;
	for(long long i=1;i<=k;++i)
	{
		for(long long j=1;j<=k/i;++j)	ans+=(k/i/j);
	}
	printf("%lld\n",ans);
	return 0;
}

「ARC 113B」A^B^C

Link.

扩展欧拉定理裸题,\(A^{B^{C}}\bmod10=A^{(B^{C}\bmod\varphi(10))+\varphi(10)}\bmod10\)

#include<cstdio>
long long getphi(long long x)
{
	long long res=x;
	for(long long i=2;i*i<=x;++i)
	{
		if(x%i==0)
		{
			res=res/i*(i-1);
			while(x%i==0)	x/=i;
		}
	}
	if(x>1)	res=res/x*(x-1);
	return res;
}
long long cqpow(long long bas,long long fur,long long mod)
{
	long long res=1;
	while(fur)
	{
		if(fur&1)	res=res*bas%mod;
		bas=bas*bas%mod;
		fur>>=1;
	}
	return res;
}
long long a,b,c;
int main()
{
	scanf("%lld %lld %lld",&a,&b,&c);
	printf("%lld\n",cqpow(a,cqpow(b,c,getphi(10))+getphi(10),10));
	return 0;
}

「ARC 113C」String Invasion

Link.

正序枚举 \(i\in[1,n]\),如果满足条件,那么后面的字符串都可以执行操作,则 \(ans:=ans+n-i\)

当然,由于后面可能存在一个字符就是 \(s_{i}\),所以要记录当前操作的字符,特判 \(ans:=ans-1\)

#include<cstdio>
#include<cstring>
int n;
long long ans;
char s[200010];
int main()
{
	scanf("%s",s+1);
	n=strlen(s+1);
	char las=0;
	for(int i=1;i<=n;++i)
	{
		if(i!=n&&s[i]==s[i+1]&&s[i]!=s[i+2]&&s[i]!=las)	ans+=n-i,las=s[i];
		else if(s[i]==las)	--ans;
	}
	printf("%lld\n",ans);
	return 0;
}

「ARC 113D」Sky Reflector

Link.

显然只要 \(\forall i\in[1,m],b_{i}\ge a_{\max}\) 即可,那么枚举 \(i\in[1,k]=a_{\max}\),有:

\[ans=\sum_{i=1}^{k}(i^{n}-(i-1)^{n})\times(k-i+1)^{m}\bmod998244353 \]

#include<cstdio>
const int mod=998244353;
long long cqpow(long long bas,int fur)
{
	long long res=1;
	while(fur)
	{
		if(fur&1)	res=res*bas%mod;
		bas=bas*bas%mod;
		fur>>=1;
	}
	return res;
}
int n,m,k;
long long ans;
int main()
{
	scanf("%d %d %d",&n,&m,&k);
	if(n==1)	ans=cqpow(k,m);
	else if(m==1)	ans=cqpow(k,n);
	else
	{
		for(int i=1;i<=k;++i)	ans=(ans+((cqpow(i,n)-cqpow(i-1,n)+mod)%mod)*cqpow(k-i+1,m)%mod)%mod;
	}
	printf("%lld\n",ans);
	return 0;
}

「ARC 113E」Rvom and Rsrev

Link.

「ARC 113F」Social Distance

Link.

Solution Set -「ARC 113」

原文:https://www.cnblogs.com/orchid-any/p/14438352.html

(0)
(0)
   
举报
评论 一句话评论(0
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号