K Sum

终于过了这玩意啊啊啊====

莫比乌斯反演,杜教筛,各种分块,积性函数怎么线性递推还很迷==,得继续研究研究

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define maxn 1000000+10
int P[maxn],g[maxn];
bool vis[maxn]; unordered_map<int,int> mp;
int T,n,k;
const int mod =(1e9+);
int cnt=;
void init()
{
g[]=;
for(int i=;i<maxn;i++){
g[i]=;
}
for(int i=; i<maxn; i++)
{
//g[i]=1;
if(!vis[i])
{
P[cnt++]=i;
g[i]=(i*i-)%mod;
}
for(int j=; j<cnt&&(P[j]*i)<maxn; j++)
{
vis[i*P[j]]=;
g[P[j]*i]=(g[P[j]]*g[i]%mod);
if(i%P[j]==)
{
g[P[j]*i]=(g[i]*(P[j]*P[j])%mod)%mod;
break;
} }
}
for(int i=; i<maxn; i++)
{
g[i]=(g[i]+g[i-]+mod)%mod;
}
}
int qp(int x,int n)
{
int ans=; while(n)
{
if(n&)
{
ans=(ans*x)%mod;
}
x=(x*x)%mod;
n>>=;
}
return ans%mod;
}
int _k;
int Sum(int x,int n)
{
if(x==)
{
return (_k-+mod)%mod;
}
else
{
return (((x*(qp(x,n)-+mod)%mod)%mod*qp((x-)%mod,mod-)%mod)%mod-x+mod)%mod;
}
}
int Sum2(int n)
{
int ans=qp(,mod-);
ans=(ans*((n*(n+)%mod)%mod*(*n%mod+)%mod)%mod)%mod;
return ans;
}
int G(int n)
{
int ans=;
int r;
for(int i=; i<=n; i=r+)
{
r=n/(n/i);
int x=n/i;
if(x<maxn)
{
ans=(ans+g[x]*(r-i+))%mod;
}
else if(mp[x])
{
ans=(ans+mp[x]*(r-i+))%mod;
}
else ans=(ans+G(x)*(r-i+))%mod;
} mp[n]=(Sum2(n)-ans+mod)%mod;
return mp[n];
}
int cal(int x)
{
if(x<maxn)return g[x];
if(mp[x])return mp[x];
return G(x);
}
char s[maxn];
signed main()
{
init();
int ans=;
scanf("%lld",&T);
//string s;
while(T--)
{
ans=;
scanf("%lld",&n);
scanf("%s",s);
k=;
_k=;
int _n=strlen(s);
for(int i=; i<_n; i++)
{
_k=(_k*+s[i]-'')%(mod);
k=((k*)+s[i]-'')%(mod-);
}
int r; for(int i=; i<=n; i=r+) ///i
{
r=n/(n/i);
ans=(ans+((Sum((n/i),k))%mod*(cal(r)-cal(i-)+mod)%mod)%mod)%mod;
}
cout<<ans<<'\n';
} }

南京网络赛 E K Sum的更多相关文章

  1. HDU 4750 Count The Pairs (2013南京网络赛1003题,并查集)

    Count The Pairs Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others ...

  2. 2018ICPC南京网络赛

    2018ICPC南京网络赛 A. An Olympian Math Problem 题目描述:求\(\sum_{i=1}^{n} i\times i! \%n\) solution \[(n-1) \ ...

  3. 2019ICPC南京网络赛A题 The beautiful values of the palace(三维偏序)

    2019ICPC南京网络赛A题 The beautiful values of the palace https://nanti.jisuanke.com/t/41298 Here is a squa ...

  4. HDU 4751 Divide Groups (2013南京网络赛1004题,判断二分图)

    Divide Groups Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  5. HDU 4758 Walk Through Squares (2013南京网络赛1011题,AC自动机+DP)

    Walk Through Squares Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Oth ...

  6. 2019-ACM-ICPC-南京区网络赛-E. K Sum-杜教筛+欧拉定理

    2019-ACM-ICPC-南京区网络赛-E. K Sum-杜教筛+欧拉定理 [Problem Description] 令\(f_n(k)=\sum_{l_1=1}^n\sum_{l_2=1}^n\ ...

  7. 2019 南京网络赛A

    南京网络赛自闭现场 https://nanti.jisuanke.com/t/41298 二维偏序经典题型 二维前缀和!!! #include<bits/stdc++.h> using n ...

  8. 2019年南京网络赛E题K Sum(莫比乌斯反演+杜教筛+欧拉降幂)

    目录 题目链接 思路 代码 题目链接 传送门 思路 首先我们将原式化简: \[ \begin{aligned} &\sum\limits_{l_1=1}^{n}\sum\limits_{l_2 ...

  9. 2019南京网络赛E:K Sum

    Description: 定义函数 \[ f _n (k) = \sum _{l _1 = 1} ^n \sum _{l _2 = 1} ^n \cdots \sum _{l _k = 1} ^n \ ...

随机推荐

  1. windows如何使用bat快速安装计划任务?

    关键词:windows定时任务,schtasks,at ,bat schtasks 部分转自: https://www.cnblogs.com/yumianhu/p/3710743.html at的详 ...

  2. 教你用 Netty 实现一个简单的 RPC!

    众所周知,dubbo 底层使用了 Netty 作为网络通讯框架,而 Netty 的高性能我们之前也分析过源码,对他也算还是比较了解了. 今天我们就自己用 Netty 实现一个简单的 RPC 框架. 1 ...

  3. phpstorm 不能选择 php language level

    最近需要更改phpstorm中的php language level发现更改不了 解决方法是在PHP 下面的Composer中勾选了同步 composer php版本的原因 取消勾选,点击应用就可以了

  4. GitHub编辑README.md

    一.标题 等级表示法(六级): #一级标题 ##二级标题 ###三级标题 ####四级标题 #####五级标题 ######六级标题 一级标题/大标题(文本下面加上等于号): 大标题 === 二级标题 ...

  5. django1.9安装以及使用

    安装setuptoolswget --no-check-certificate https://pypi.python.org/packages/69/56/f0f52281b5175e3d9ca86 ...

  6. VUE的Seo优化 如何实现

    今天看到这样一个问题,在vue中,如何进行seo优化呢? 大家应该都知道,seo优化主要是做搜索引擎的排名,但是ajax异步又不支持seo,同时对于url #/的写法,搜索引擎也没办法爬取网站内其他路 ...

  7. vue-cli3.0中使用 postcss-pxtorem

    vue.config.js module.exports = { lintOnSave: true, css: { loaderOptions: { postcss: { plugins: [ req ...

  8. 玩转Android状态栏

    前言 前段时间,突然收到一个状态栏颜色优化设计的任务,将原本应用整体的黑色状态栏修改为根据标题栏颜色进行沉浸式设计,显示效果如下:   image 经过分析及踩过N多坑,终于完成了APP全局的修改.现 ...

  9. java 判断5张牌的组成

    题目: 一副牌中发五张扑克牌给你,判断是四条,三带二.三带一加一.两对.一对.顺子.还是什么都不是. 控制台输入: 1,1,1,1,2 示例输出: 四条 Java方法的代码: static Strin ...

  10. 从零开始学MySQL(三)

    经过上两节的洗礼,我们能够连接上服务器,并成功地进入与mysql交互的会话中了.那么现在就可以发起SQL语句,让服务器来执行它了!这听起来很酷吧?接下来,我们开始学习MySQL的相关知识. 本文概览: ...