LOJ #6053. 简单的函数
$Min$_$25$筛模版题
为什么泥萌常数都那么小啊$ QAQ$
传送门:Here
题意:
$ f(1)=1$
$ f(p^c)=p⊕c(p 为质数,⊕ 表示异或)$
$ f(ab)=f(a)f(b)(a 与 b 互质)$
求$ \sum\limits_{i=1}^n f(i)$
$ solution:$
显然有$ f(P_i)=P_i-1+2*[P_i=2]$
暂时忽略$ P_i=2$的情况求出质数贡献
然后再把答案$ +2$即可
$ my \ code: $
#include<ctime>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#define p 1000000007
#define M 200010
#define rt register int
#define ll long long
using namespace std;
inline ll read(){
ll x = ; char zf = ; char ch = getchar();
while (ch != '-' && !isdigit(ch)) ch = getchar();
if (ch == '-') zf = -, ch = getchar();
while (isdigit(ch)) x = x * + ch - '', ch = getchar(); return x * zf;
}
void write(ll y){if(y<)putchar('-'),y=-y;if(y>)write(y/);putchar(y%+);}
void writeln(const ll y){write(y);putchar('\n');}
int i,j,k,m,x,y,z,cnt,sz;ll n;
int sp[M],ss[M];bool pri[M];
int id1[M],id2[M],t,h[M];ll g[M],q[M];
#define inv2 500000004
void init(){
sz=sqrt(n);
for(rt i=;i<=sz;i++){
if(!pri[i])ss[++cnt]=i,sp[cnt]=(sp[cnt-]+i)%p;
for(rt j=;i*ss[j]<=sz&&j<=cnt;j++){
pri[i*ss[j]]=;
if(i%ss[j]==)break;
}
}
for(ll i=;i<=n;){
ll v=n/i;ll R=n/v;q[++t]=v;
if(v<=sz)id1[v]=t;else id2[R]=t;
v%=p;h[t]=v-;g[t]=v*(v+)%p*inv2%p-;
i=R+;
}
}
inline int id(const ll x){return x<=sz?id1[x]:id2[n/x];}
int S(ll x,int y){
if(x<=||ss[y]>x)return ;
ll ret=g[id(x)]-sp[y-]+y-;
for(rt i=y;(ll)ss[i]*ss[i]<=x&&i<=cnt;i++)
for(ll j=ss[i],e=;j*ss[i]<=x;j*=ss[i],e++)
(ret+=(ll)(ss[i]^e)*S(x/j,i+)+(ss[i]^e+))%=p; return ret;
}
int main(){
n=read();init();
for(rt j=;j<=cnt;j++)
for(rt i=;i<=t&&q[i]>=(ll)ss[j]*ss[j];i++){
const int k=id(q[i]/ss[j]);
(g[i]-=(ll)ss[j]*(g[k]-sp[j-]))%=p;
(h[i]-=(h[k]-j+))%=p;
}
for(rt i=;i<=t;i++)(g[i]-=h[i])%=p;
if(n==)cout<<;else cout<<(S(n,)++p)%p;
return ;
}
LOJ #6053. 简单的函数的更多相关文章
- LOJ 6053 简单的函数——min_25筛
题目:https://loj.ac/problem/6053 min_25筛:https://www.cnblogs.com/cjyyb/p/9185093.html 这里把计算 s( n , j ) ...
- loj 6053 简单的函数 —— min_25筛
题目:https://loj.ac/problem/6053 参考博客:http://www.cnblogs.com/zhoushuyu/p/9187319.html 算 id 也可以不存下来,因为 ...
- LOJ.6053.简单的函数(Min_25筛)
题目链接 Min_25筛见这里: https://www.cnblogs.com/cjyyb/p/9185093.html https://www.cnblogs.com/zhoushuyu/p/91 ...
- loj#6053. 简单的函数(Min_25筛)
传送门 题解 \(Min\_25\)筛有毒啊--肝了一个下午才看懂是个什么东西-- \(zsy\)巨巨强无敌-- //minamoto #include<bits/stdc++.h> #d ...
- Case when 的用法,简单Case函数
Case when 的用法,简单Case函数 简单CASE表达式,使用表达式确定返回值. 语法: CASE search_expression WHEN expression1 THEN result ...
- python之简单的函数介绍(http://docs.python.org/3/library)
Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用. 在上面的网站上我们可以进行查询,Python具体都有哪些函数. 我们也可以再交互命令行中来查找函数: >> ...
- php简单表格函数
php简单表格函数 代码 <?php //ctrl+shift+j /** * @param unknown $rows * @param unknown $cols * @param stri ...
- python简单的函数定义和用法实例
python简单的函数定义和用法实例 这篇文章主要介绍了python简单的函数定义和用法,实例分析了Python自定义函数及其使用方法,具有一定参考借鉴价值,需要的朋友可以参考下 具体分析如下: 这里 ...
- python简单的函数应用
一个简单的函数应用,包括自定义函数,lambda函数,列表解析. 1 #!usr/bin/env python3 2 # -*- coding:utf-8 -*- 3 4 #开始定义函数 5 def ...
随机推荐
- (转)java 序列化ID的作用
序列化ID的作用: 其实,这个序列化ID起着关键的作用,它决定着是否能够成功反序列化!简单来说,java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的.在进行反序 ...
- linux free命令
Linux上的free命令详解 free命令的所有输出值都是从/proc/meminfo中读出的 total used free shared buffers cached Mem: -/+ buff ...
- Runtime.getRuntime().exec(...),当参数中有空格时!
原以为不会有什么问题,但在测试时发现,问题大了. 如果想调用f:\mp3\i love you.mp3时, 我原以为正确的写法是: //在文件名前后加个双引号来解决文件名中有空格的情况 String ...
- Flask简单学习
一:安装 直接 pip install Flask,就可以安装好了 二:hello world 编写一个hello.py # coding: utf- from flask import Flask ...
- sql>desc 存储包——查看包内存储过程、函数
sql>desc dbms_random: 查询dbms_random包下的存储过程和函数 a. value() 用于返回两个数值之间的随机数, value (low, high) SQL &g ...
- pt-kill 用法记录
pt-kill 用法记录 # 参考资料Percona-Toolkit系列之pt-kill杀会话利器http://www.fordba.com/percona-toolkit-pt-kill.html ...
- jmeter5.0 while controller使用总结
while controller 配合sql使用的方式 在while控制器条件中填空,这样当里面的请求断言失败后就会跳出循环 在while控制器条件中填LAST,当里面的请求断言失败后就会跳出循环,如 ...
- JavaSE_坚持读源码_ArrayList对象_Java1.7
底层的数组对象 /** * The array buffer into which the elements of the ArrayList are stored. * The capacity o ...
- ThinkPHP3.2中字段unique验证出错的解决方法
protected $_validate=array( array('stu_id','','学号已存在',1,'unique',1), ) 当一次插入多条数据时: 在进行循环 使用create验证时 ...
- python 函数动态参数,名称空间,global,nonlocal
##################################总结######################################动态参数 *args:位置参数动态传参,接收到的是元 ...