Newcoder 华华给月月出题(线筛)题解
题目描述:
Ans=⊕Ni=1(iNmod(109+7))Ans=⊕i=1N(iNmod(109+7))
⊕⊕符号表示异或和,详见样例解释。
虽然月月写了个程序暴力的算出了答案,但是为了确保自己的答案没有错,希望你写个程序帮她验证一下。1≤N≤1.3×107
输入描述:
输入一个正整数N。
输出描述:
输出答案Ans。
样例:
输入 2005117
输出 863466972
链接:https://ac.nowcoder.com/acm/contest/392/C
参考:线性筛法
思路:因为线筛复杂度O(n),直接线筛所有的x^n,然后异或和。
ps:原来我写了这么久的线性筛一直都是埃氏筛,埃氏筛复杂度大概O(n * sqrt n)跪了orz
代码:
#include<set>
#include<map>
#include<stack>
#include<cmath>
#include<queue>
#include<vector>
#include<string>
#include<cstdio>
#include<cstring>
#include<sstream>
#include<iostream>
#include<algorithm>
typedef long long ll;
using namespace std;
const int maxn = 13e6 + ;
const ll MOD = 1e9 + ;
const int INF = 0x3f3f3f3f;
ll pmul(ll a, ll b){
ll ret = ;
while(b){
if(b & ) ret = (ret * a) % MOD;
b >>= ;
a = (a * a) % MOD;
}
return ret;
}
ll fac[maxn];
int prime[maxn], pn;
bool p[maxn];
void init(ll n){
pn = ;
memset(p, false, sizeof(p));
fac[] = ;
for(int i = ; i <= n; i++){
if(!p[i]){
p[i] = true;
prime[pn++] = i;
fac[i] = pmul(i, n);
}
for(int j = ; j < pn && i * prime[j] <= n; j++){
p[i * prime[j]] = true;
fac[i * prime[j]] = fac[i] * fac[prime[j]] % MOD;
if(i % prime[j] == ) break;
}
}
}
int main(){
ll n, ans = ;
scanf("%lld", &n);
init(n);
for(int i = ; i <= n; i++){
ans ^= fac[i];
}
printf("%lld", ans);
return ;
}
Newcoder 华华给月月出题(线筛)题解的更多相关文章
- 牛客小白月赛12 D 月月给华华出题 (欧拉函数,数论,线筛)
链接:https://ac.nowcoder.com/acm/contest/392/D 来源:牛客网 月月给华华出题 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K, ...
- 牛客小白月赛12 C 华华给月月出题 (积性函数,线性筛)
链接:https://ac.nowcoder.com/acm/contest/392/C 来源:牛客网 华华给月月出题 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K, ...
- 牛客小白月赛12 J 月月查华华的手机(序列自动机)
---恢复内容开始--- 题目来源:https://ac.nowcoder.com/acm/contest/392/J 题意: 题目描述 月月和华华一起去吃饭了.期间华华有事出去了一会儿,没有带手机. ...
- 牛客网 牛客小白月赛12 B.华华教月月做数学-A^B mod P-快速幂+快速乘
链接:https://ac.nowcoder.com/acm/contest/392/B来源:牛客网 华华教月月做数学 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其 ...
- E.华华给月月准备礼物
链接:https://ac.nowcoder.com/acm/contest/392/E 题意: 二月中旬虐狗节前夕,华华决定给月月准备一份礼物.为了搭建礼物的底座,华华需要若干根同样长的木棍.华华手 ...
- B.华华教月月做数学
链接:https://ac.nowcoder.com/acm/contest/392/B 题意: 找到了心仪的小姐姐月月后,华华很高兴的和她聊着天.然而月月的作业很多,不能继续陪华华聊天了.华华为了尽 ...
- 牛客小白月赛12 J 月月查华华的手机 (序列自动机模板题)
链接:https://ac.nowcoder.com/acm/contest/392/J 来源:牛客网 题目描述 月月和华华一起去吃饭了.期间华华有事出去了一会儿,没有带手机.月月出于人类最单纯的好奇 ...
- NC23046 华华教月月做数学
NC23046 华华教月月做数学 题目 题目描述 找到了心仪的小姐姐月月后,华华很高兴的和她聊着天.然而月月的作业很多,不能继续陪华华聊天了.华华为了尽快和月月继续聊天,就提出帮她做一部分作业. 月月 ...
- NC23053 月月查华华的手机
NC23053 月月查华华的手机 题目 题目描述 月月和华华一起去吃饭了.期间华华有事出去了一会儿,没有带手机.月月出于人类最单纯的好奇心,打开了华华的手机.哇,她看到了一片的QQ推荐好友,似乎华华还 ...
随机推荐
- 记在Archlinux中安装python的pymssql模块过程中遇到的问题
为什么要安装这个模块?因为要连接SQLServer数据库. 看到可以使用pyodbc这个模块进行连接,但对odbc不熟悉,所以选用了看起来更简单的 pymssql. 直接执行: pip install ...
- uvalive 4288 Cat Vs. Dog
题意: 有若干个观看者,要对节目进行投票,每张票一定让一直猫留下,一只狗下场,或者一只狗留下,一只猫下场. 如果某个观看者希望留下的动物下场了,或者希望下场的动物留下了,那么他就会离开. 给出若干个投 ...
- CS229 - MachineLearning - 12 强化学习笔记
Ng的机器学习课,课程资源:cs229-课件 网易公开课-视频 问题数学模型: 马尔科夫过程五元组{S.a.Psa.γ.R},分别对应 {状态.行为.状态s下做出a行为的概率.常数.回报}. 一 ...
- hive中的with用法
hive 可以通过with查询来提高查询性能,因为先通过with语法将数据查询到内存,然后后面其它查询可以直接使用,这种方法与创建临时表类似但是不需要创建临时表实体表,内存中的子查询结果在会话结束后会 ...
- flask 单个页面多个表单(单视图处理、多视图处理)
单个页面多个表单 除了在单个表单上实现多个提交按钮,有时还需要在单个页面上创建多个表单.比如,在程序的主页上同时添加登录和注册表单.当在同一个页面上添加多个表单时,我们需要解决的问题是在视图函数中判断 ...
- flask 表单
表单 在Web程序中,表单时和用户交互最常见的方式之一.用户注册.登录.撰写文章.编辑设置,无一不用到表单.不过,表单的处理不简单.要创建表单,验证用户输入的内容,向用户显示错误提示,还要获取并保存数 ...
- (Review cs231n)loss function and optimization
分类器需要在识别物体变化时候具有很好的鲁棒性(robus) 线性分类器(linear classifier)理解为模板的匹配,根据数量,表达能力不足,泛化性低:理解为将图片看做在高维度区域 线性分类器 ...
- svnrdump:E175000:SSL is not supported错误的解决
参考博客:https://www.cnblogs.com/jkko123/p/6358461.html 参考博客:https://blog.csdn.net/w171066/article/detai ...
- 文字列大好きいろはちゃんイージー / Iroha Loves Strings (ABC Edition) (优先队列)
题目链接:http://abc042.contest.atcoder.jp/tasks/abc042_b Time limit : 2sec / Memory limit : 256MB Score ...
- python smtplib 发送邮件简单介绍
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式python的smtplib提供了一种很 ...