先定义几个符号: []:若方括号内为一个值,则向下取整,否则为布尔判断 集合P:素数集合. 题目分析: 题目是一个积性函数.做法之一是洲阁筛,也可以采用Min_25筛. 对于一个可以进行Min_25筛法的积性函数,它需要满足与洲阁筛相同的条件,即: 对于$f(p), p \in P$,它可以多项式表出.对于$f(p^k),p \in P$可以被快速计算出. 这道题中$f(p) = p-1$再对$2$进行修正即可. 对于1的情况我们单独考虑,现在我们对答案进行一些变换. $$\sum_{i=2}^…
题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范围和查询的个数. 接下来M行每行包含一个不小于1且不大于N的整数,即询问该数是否为质数. 输出格式: 输出包含M行,每行为Yes或No,即依次为每一个询问的结果. 输入输出样例 输入样例#1: 复制 100 5 2 3 4 91 97 输出样例#1: 复制 Yes Yes No No Yes 说明 时空限制:500ms 128M…
1.算法简介 1.1筛法起源 筛法是一种简单检定素数的算法.据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274-194年)发明的,又称埃拉托斯特尼筛法(sieve of Eratosthenes). 1.2筛法过程 具体做法是:给出要筛数值的范围 n,找出 n√以内的素数p1,p2,p3,--,pk.从最小素数2去筛,即把2留下,把2的倍数剔除掉:再用下一个素数,也就是3筛,把3留下,把3的倍数剔除掉:接下去用下一个素数5筛,把5留下,把5的倍数剔除掉:不断重复下去. 2.实现…
素数的定义:质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数. 1.暴力算法: 令i=2; 当i<n的时候,我们循环找出2-i的质数,即让i%(2~i-1),如果flag为true,则i为质数,计数器++:否则跳出,i++:进行下一次判断 public int countPrimes(int n) { int i=2; int count=0; boolean flag=true; while (i<n){ for (int j = 2; j <i ;…
原题 原题链接 Description: Count the number of prime numbers less than a non-negative number, n. 计算小于非负数n的素数个数. 思路 这题用埃拉托斯特尼筛法来做效果比较好,普通的方法基本会TLE.但是在用了埃拉托斯特尼筛法之后,还有一些细节值得注意: (1)首先我们该用 i*i<=n 替代 i<=sqrt(n) 来避免使用 sqrt() ,因为sqrt()的操作是比较expensive的. (2)当要表示两个状…
题目链接:LOJ 题目大意:从前有个积性函数 $f$ 满足 $f(1)=1,f(p^k)=p\oplus k$.(异或)求其前 $n$ 项的和对 $10^9+7$ 取模的值. $1\le n\le 10^{10}$. 这种奇怪但是简洁的积性函数求和,首选 min_25 筛. 首先可以发现,对于质数 $p$,$p\ge 3$ 时 $f(p)=p-1$,$p=2$ 时 $f(p)=p+1$. 所以可以先把 $f(2)$ 看做 $1$,这样方便处理 $g$,最后计算 $S$ 时再加个 $2$ 就好了.…
分析 因为题目中所给函数\(f(x)\)的前缀和无法较快得出,考虑打表以下两个函数: \[ g(x)=x \times [x是质数] \] \[ h(x)=1 \times [x是质数] \] 这两个函数的前缀和都可以通过Min_25筛第一阶段的处理得出,时间复杂度为\(O(\frac{n^{\frac{3}{4}}}{\log n})\). 我们发现: \[ f(2)=g(2)+h(2) \] \[ f(x)=g(x)-h(x),x是质数 且 x \neq 2 \] 然后就可以把这两个函数一起…
题目链接 Min_25筛见这里: https://www.cnblogs.com/cjyyb/p/9185093.html https://www.cnblogs.com/zhoushuyu/p/9187319.html https://www.cnblogs.com/SovietPower/p/10101811.html \(Description\) 给定\(n\),求积性函数\(f(p^c)=p\oplus c\)的前缀和.\(\oplus\)表示异或运算. \(n\leq 10^{10}…
题目:https://loj.ac/problem/6053 min_25筛:https://www.cnblogs.com/cjyyb/p/9185093.html 这里把计算 s( n , j ) 需要的“质数部分的贡献”分成两部分算,令 \( g(n,j)=\sum\limits_{i=1}^{n}[i \in P or min_i > p_j]i \) , \( h(n,j)=\sum\limits_{i=1}^{n}[i \in P or min_i > p_j]1 \) ,其中 P…
%%yyb %%zsy 就是实现一下Min-25筛 筛积性函数的操作 首先要得到 $G(M,j)=\sum_{t=j}^{cnt} \sum_{e=1}^{p_t^{e+1}<=M} [\phi(p_t^e)*G([M/(p_t^e)],t+1)+\phi(p_t^{(e+1)})]$​ $+(F(M)-(F(p_{j-1})))$ 先要预处理后面的部分,得到$F(M)$和$F(p_{j-1})$ $F(p_{j-1})$可以直接筛素数的时候前缀和计算一下 $F(M)$就要利用第一步的筛法了 发…
题目:https://loj.ac/problem/6053 参考博客:http://www.cnblogs.com/zhoushuyu/p/9187319.html 算 id 也可以不存下来,因为 \( \left \lfloor \frac{i}{n} \right \rfloor \) 的取值是连续的,当 \( i \leqslant \sqrt{n} \) 时取值就是 \( i \): 而 \( i > \sqrt{n} \) 时,因为 \( i \) 越大,\( \left \lflo…
题目传送门 分析: 对于这道题来说,当\(x\)为质数时: \(~~~~f(x)=x-1+2[x=2]\) 因为除2以外的质数都是奇数,它们与1异或就是减一,然后2就是加一 然后我们先来康康怎么快速求一个子问题: \(~~~~F(n)=\sum_{i=1}^{n}f(i)[i\in Prime]\) 然后就要学学一个叫min25筛的奇妙的东西 对于一个函数f(x): 1.\(f(x)\)可以用多项式表达...(一般都可以吧2333) 2.\(f(x^k)\)可以快速算出(这里的快速是指可以预处理…
刚开始代码无法运行,修改后原书代码可以运行了,可是书本的思想还是错的. 虽然接下来的都是讲错误的思想下的“错误”的修改. 原书缺了窗体控件的代码,虽然在VS下不需要手动写窗体的代码,但是刚开始确实也不会怎么弄窗体 记录窗体拖拽的方法: 首要的一步是新建一个Windows窗体应用程序:文件 --> 新建 --> 项目 --> 选择Windows窗体应用程序: 此时VS界面左侧应当要有“工具箱”,有的话这里面的控件就可以直接拖了,没有的话需要设置 在第一排的菜单栏 -->点“重置窗口布…
Problem 1021: 分蛋糕 Time Limits:  1000 MS   Memory Limits:  65536 KB 64-bit interger IO format:  %lld   Java class name:  Main Description 今天欧文出新品,筱丽学姐请实验室大家吃蛋糕体积为m,mm,m为整数,她将蛋糕平分成了mm块,每块体积为11,但她要求每个人吃nknk块,每种情况下nn相同,且相同的kk的个数小于nn,n≠1,k≠0n≠1,k≠0,即可以从mm…
Case when 的用法,简单Case函数 简单CASE表达式,使用表达式确定返回值. 语法: CASE search_expression WHEN expression1 THEN result1 WHEN expression2 THEN result2 ... WHEN expressionN THEN resultN ELSE default_result 搜索CASE表达式,使用条件确定返回值. 语法: CASE WHEN condition1 THEN result1 WHEN…
[Luogu3768]简单的数学题(莫比乌斯反演,杜教筛) 题面 洛谷 \[求\sum_{i=1}^n\sum_{j=1}^nijgcd(i,j)\] $ n<=10^9$ 题解 很明显的把\(gcd\)提出来 \[\sum_{d=1}^nd\sum_{i=1}^n\sum_{j=1}^nij[gcd(i,j)==d]\] 习惯性的提出来 \[\sum_{d=1}^nd^3\sum_{i=1}^{n/d}\sum_{j=1}^{n/d}ij[gcd(i,j)==1]\] 后面这玩意很明显的来一发…
Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用. 在上面的网站上我们可以进行查询,Python具体都有哪些函数. 我们也可以再交互命令行中来查找函数: >>> help (abs) Help on built-in function abs in module builtins: abs(x, /) Return the absolute value of the argument. help(函数名)是一个能够在交互命令行中查找函数功能的语句. 这个a…
php简单表格函数 代码 <?php //ctrl+shift+j /** * @param unknown $rows * @param unknown $cols * @param string $bgcolor */ function creatTable($rows,$cols,$bgcolor='pink'){ echo "<table border='1' width='80%' bgcolor='{$bgcolor}'>"; //ctrl+shift+j…
python简单的函数定义和用法实例 这篇文章主要介绍了python简单的函数定义和用法,实例分析了Python自定义函数及其使用方法,具有一定参考借鉴价值,需要的朋友可以参考下 具体分析如下: 这里定义了一个温度转换的函数及其用法.     def convertTemp(temp, scale):   if scale == "c":    return (temp - 32.0) * (5.0/9.0)   elif scale == "f":    retu…
一个简单的函数应用,包括自定义函数,lambda函数,列表解析. 1 #!usr/bin/env python3 2 # -*- coding:utf-8 -*- 3 4 #开始定义函数 5 def add(x): 6 x += 3 #等同于x = x + 3,把x的值加3后再赋值给x 7 return x #函数返回值 8 9 #定义lambda函数 10 lam = lambda x : x + 3 #和上面的自定义函数等效以备后用 11 numbers = range(10) #定义一个n…
题意:给一个数 可以写出多少种  连续素数的合 思路:直接线性筛 筛素数 暴力找就行   (素数到n/2就可以停下了,优化一个常数) 其中:线性筛的证明参考:https://blog.csdn.net/nk_test/article/details/46242401 https://blog.csdn.net/qq_40873884/article/details/79124552 https://blog.csdn.net/baoli1008/article/details/50788512…
我们一般写的埃氏筛消耗的时间都是欧拉筛的三倍,但是欧拉筛并不好想(对于我这种蒟蒻) 虽然 -- 我 -- 也可以背过模板,但是写个不会的欧拉筛不如写个简单易懂的埃氏筛 于是就有了优化 这个优化还是比较厉害的,能把埃氏筛的消耗的时间提的跟欧拉筛差不多 以下内容需要先学会埃氏筛 学会的埃氏筛就明白它的原理了吧 #include<bits/stdc++.h> using namespace std; int n, m ,Is_p[10000001]; int main() { cin >>…
题面 LOJ 题解 戳这里 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> using namespace std; #define ll long long #define MAX 222222 #define MOD 1000000007 ll n,Sqr,w[MA…
传送门 题解 \(Min\_25\)筛有毒啊--肝了一个下午才看懂是个什么东西-- \(zsy\)巨巨强无敌-- //minamoto #include<bits/stdc++.h> #define R register #define ll long long #define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i) #define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i) #define go(u) for…
min_25 筛介绍 我们考虑这样一个问题. \[ans=\sum_{i = 1}^nf(i)\\ \] 其中 \(1 \le n \le 10^{10}\) 其中 \(f(i)\) 是一个奇怪的函数.并不像 \(μ(i),φ(i),iφ(i)\)那样具有那么好的性质.但是满足以下条件: 若 \(p\)为质数,则 \(f(p)\)是一个关于 \(p\)的多项式,比如 \(μ(p)=−1,φ(p)=p−1\). 若 \(p\)为质数,\(e\)为正整数,则 \(f(pe)\)可以很快求出.(通常是…
Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3617    Accepted Submission(s): 2279 Problem Description 大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Ci…
作者: 夏至,欢饮转载,也请保留这段申明 http://blog.csdn.net/u011418943/article/details/60139910 一般我们在不同的应用传递数据,比较方便的是用广播和回调函数,当然还有其他方式,这里学学回调函数的使用: 什么是回调函数呢?在C/C++中,因为我们有指针这个东西,所以传递数据什么的,挺方便,把那个指针地址发过来,改一下地址里面的值即可即可:但是Java中是没有指针这个概念的,所以,这个回调函数则是用一个interface 接口和内部类实现的.…
我承认这道很难(对我来说),搞脑子啊,搞了好久,数论刚开始没多久,还不是很强大,思路有点死,主要是我 天赋太差,太菜了,希望多做做有所改善 开始解析: 首先要将在 [ l,u]内的所有素数找出来,还好题目说了u-l 小于 1000 000,不然内存都得暴死了,最常用的方法就是筛法了,当然还有 传说中的 6*n+1 可惜我不会, 开始假设所有范围内的数都是素数,然后讲所有素数的倍数(肯定不是素数)筛掉,经过无数轮的筛选,余下的就是素数,同时要考虑到所有大于2的偶数都不是素数,可以节省空间, 使用筛…
http://www.51nod.com/Challenge/Problem.html#!#problemId=1239 AC代码 #include <bits/stdc++.h> #define pb push_back #define mp make_pair #define fi first #define se second #define all(a) (a).begin(), (a).end() #define fillchar(a, x) memset(a, x, sizeof(…
ssplaysecond的博客(请使用VPN访问): 中国剩余定理: https://ssplaysecond.blogspot.jp/2017/04/blog-post_6.html 欧拉函数: https://ssplaysecond.blogspot.jp/2017/04/blog-post_8.html 莫比乌斯反演 https://ssplaysecond.blogspot.jp/2017/04/blog-post_91.html 狄利克雷卷积与杜教筛 https://ssplayse…