2019 ICPC Asia Yinchuan Regional
程序员文章站
2022-07-07 20:16:01
...
2019 ICPC Asia Yinchuan Regional
F题.Function!
题面
题目描述
输入
An integer n (2≤n≤1012) described above.
输出
An integer denotes the value you have calculated modulo 998244353998244353.
样例输入1
2
样例输出1
2
样例输入2
10
样例输出2
236
思路
题解
n的范围为1012不能暴力,通过一系列公式推导进行化简,先是将范围缩减到106仍然在最后一个测试点T掉,应该是用python语言(为了高精度);进一步将范围缩减为104通过。推导过程如下图:
源码
#python
from math import log
mod=998244353
#快速幂
def fun(a,n):
ans=1
while(n!=0):
if(n&1==1):
ans*=a
a=a*a
n>>=1
return ans
n=int(input())
t=(int)((n+1)**0.5)+1
t1=(int)(n**(1/3))+1
t2=(int)((n+1)**0.5)
ans=0
if n-t+1>=1:#1的个数
ans=ans+((n+1)*(t+n)*(n+1-t)//2-n*(2*n+1)*(n+1)//6+(t-1)*(2*t-1)*t//6)%mod
ans%=mod
#print(ans)
if t2-t1+1>=1:#2的个数
ans=ans+((t1+t2)*(t2-t1+1)*(n+1)-t2**2*(t2+1)**2//4+(t1-1)**2*t1**2//4-t2*(2*t2+1)*(t2+1)//6+(t1-1)*(2*t1-1)*t1//6)%mod
ans%=mod
#print(ans)
for a in range(2,t1):
x=(int)(log(n+1)/log(a))
ax=fun(a,x+2)
ans=ans+(a*x*(n+1)-(ax-a**2)//(a-1))%mod
ans%=mod
#print(a,x,ax,ans)
print(ans)
上一篇: 企业培训机构如何展开新媒体营销?
推荐阅读
-
2019 ICPC Asia Yinchuan Regional
-
2012 ACM/ICPC Asia Regional Tianjin Online hdu 4287 map和char[]的合作应用
-
2019 ICPC Asia Nanjing Regional I. Space Station题解
-
2018 ICPC Asia Nakhon Pathom Regional Contest 部分题解
-
The 2014 ACM-ICPC Asia Xi’an Regional Contest Problem F. Color(二项式反演)
-
The 2019 ICPC Asia Shanghai Regional Contest · H Tree Partition · 二分
-
The 2019 ICPC Asia Shanghai Regional Contest · K Color Graph · 二分图定义
-
ZOJ4048 Red Black Tree(The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online,二分+LCA)
-
2019 ICPC Asia Nanjing Regional K. Triangle(计算几何+二分)
-
@UPC8377 @ACM-ICPC-2018-ASIA YOKAHAMA REGIONAL D: Playoff (DFS)