首页 > 其他分享 >简单题 加强版

简单题 加强版

时间:2024-07-28 21:18:01浏览次数:8  
标签:lfloor 加强版 int sum rfloor mu 简单 define

由简单版中,我们已经推出了

\[\sum_{d=1}^n\mu^2(d)d^{k+1}\sum_{t=1}^{\lfloor {\frac{n}{d}} \rfloor}\mu(t)t^k\sum_{i=1}^{\lfloor {\frac{n}{dt}} \rfloor}\sum_{j=1}^{\lfloor {\frac{n}{dt}} \rfloor}(i+j)^k \]

我们设\(T=td\),则
设\(S(x)=\sum_{i=1}^x\sum_{j=1}^x(i+j)^k\)
$\sum_{d=1}^n \mu ^2 (d)d\mu (T/d)\sum_{T=1}^n T^k S(n/T)$
image

点击查看代码
#include <bits/stdc++.h>
#define speed() ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define ll int
#define ull unsigned long long
#define lid (rt<<1)
#define rid (rt<<1|1)
// #define endl '\n'
//#define int long long
#define pb push_back
// #pragma comment(linker, “/STACK:512000000,512000000”) 
using namespace std;
const int N = 1e7+5;
int f[N*2],mu[N*2],F[N*2],pr[N*2],tot,p[N*2],s[N*2];
bool is[N*2];
int n,k;
ll qpow(ll a,ll b)
{
	ll ans=1;
	while(b)
	{
		if(b&1)ans=ans*a;
		b>>=1;
		a=a*a;
	}
	return ans;
}
void getMu()
{
	f[1]=1;mu[1]=1;p[1]=1;
	for(int i=2;i<=n*2;i++)
	{
		if(!is[i])
		{
			pr[++tot]=i;p[i]=qpow(i,k);
			mu[i]=-1;f[i]=i-1;
		}
		for(int j=1;j<=tot&&i*pr[j]<=2*n;j++)
		{
			p[i*pr[j]]=p[i]*p[pr[j]];
			is[i*pr[j]]=1;
			if(i%pr[j]==0)
			{
				int q=i/pr[j];
				if(q%pr[j])f[i*pr[j]]=-pr[j]*f[q];
				break;
			}
			mu[i*pr[j]]=-mu[i];
			f[i*pr[j]]=f[i]*(pr[j]-1);
		}
	}
	for(int i=2;i<=2*n;i++)f[i]=f[i-1]+p[i]*f[i],p[i]+=p[i-1];
	for(int i=2;i<=2*n;i++)p[i]+=p[i-1];
}
ll calc(ll n)
{
	return p[n<<1]-p[n]*2;
}
int main()
{
	speed();
	// freopen("in.in","r",stdin);
	// freopen("out.out","w",stdout);
	int T;
	cin>>T>>n>>k;
	getMu();
	while(T--)
	{
		ll tn;
		cin>>tn;
		int l=1,r,ans=0;
		while(l<=tn)
		{
			r=tn/(tn/l);
			ans+=(f[r]-f[l-1])*calc(tn/l);
			l=r+1;
		}
		// cout<<ans<<endl;
		cout<<(ans+(1ll<<32))%(1ll<<32)<<endl;
	}
	return 0;
}

标签:lfloor,加强版,int,sum,rfloor,mu,简单,define
From: https://www.cnblogs.com/wlesq/p/18328763

相关文章

  • 浅谈简单的数据结构1(树状数组 、线段树)(c++)
    *_*课间休息后的知识点轰炸树状数组引入给定长为n的序列a,q次操作,每次查询一段区间的和,或修改一个数的权值。1≤n,q≤5×10^5,0≤a_i≤10^9。分析如果没有修改操作,这是一道非常简单的前缀和题。假如我们修改前缀和数组,查询就还是O(1)的,是否可行呢?当然不行。考虑......
  • 小白必看的cmd简单代码!(图片看不到的可复制 粘贴到Typroa进行观看)
    打卡cmd的方法直接window加r输入cmd在下方菜单找到window标志,打开输入命令提示符更高级的cmd权限使用:右键命令提示符,点击"以管理员身份运行"一些简单的dos命令(均需英文输入法)(回车步骤省略)1.盘符切换:打开cmd后输入想要切换的磁盘再加上:即可![](C:\Users\直実\Pictures......
  • 简单网页制作
    网页效果预览这个网页包含图片,链接,字体设置,表格等初学者最好手敲代码,更快熟悉元素和结构完整的代码放在最后了一:代码怎么变成网页之前我们安装了xampp,启动xampp里的apache及sql在xampp下找到htdocs目录新建文件夹改名后缀为.php即可将新建文件用记事本打开在里面输......
  • 简单聊聊JavaScript 中的原型链、null 和 undefined 的区别
    1.原型链个人观点:原型链和逻辑判断里三段论有些类似,一个大前提、一个小前提、一个结论。比如,动物会吃肉,狗是动物,所以狗会吃肉。这也是继承的思想原型和构造函数JavaScript是基于原型的面向对象编程语言,每个对象都有一个内部链接到另一个对象(即原型)。这个机制被称为原型链。原......
  • ORACLE PL/SQL 对象、表数据对比功能存储过程简单实现
    最近帮忙跟进个oracle11gupgrade升级到19c的项目,由于业主方不太熟悉oracleupgrade相关升级流程,以及升级影响范围相关的事项,担心应用停机升级以后会导致数据库保存的业务数据不一致。......
  • P5825 排列计数 加强版
    加强版和原题不同之处在于\(p\)不再是一个排列,而是一个普通的值域为\([1,n]\)的数组考虑将\([p_i<p_{i+1}]\)转化为\(1-[p_i\gep_{i+1}]\),方便计算后面的\(g\),也就是恰好\(n-k-1\)不上升点的方案数记一段不上升点的连续段为非升段,\(f_i\)表示恰好\(i\)个不上升......
  • Linux文件系统相关知识:存储设备、文件系统、分区、挂载、块设备、部分相关简单指令。
    1.存储设备是什么?怎么理解分区和格式化?存储设备:指物理硬件设备,‌用于存储数据。‌这包括硬盘驱动器(‌HDD)‌、‌固态驱动器(‌SSD)‌、‌USB闪存驱动器、‌RAID阵列等。‌这些设备提供了实际的存储空间,‌可以用来存储操作系统、‌应用程序、‌文件、‌数据等。‌存储设备的容量......
  • MapReduce 简单使用
    WordCountWordCount就是"词语统计",这是MapReduce工作程序中最经典的一种。它的主要任务是对一个文本文件中的词语作归纳统计,统计出每个出现过的词语一共出现的次数。Hadoop中包含了许多经典的MapReduce示例程序,其中就包含WordCount。注意:这个案例在HDFS不运行的状......
  • 【简单介绍下PostCSS,什么是PostCSS?】
    ......
  • IOI2022 邮局 加强版 题解
    [IOI2000]邮局加强版题解考虑动态规划,设\(f_{i,j}\)为经过了\(i\)个村庄,正在建第\(j\)​个邮局的最优距离。以及\(w_{i,j}\)表示区间\([i,j]\)​内建一个邮局时的距离总和。\(a\)数组表示每个村庄的坐标编号。朴素版状态转移方程:\[f_{i,j}=\min(f_{i,j},f_{k,j......