ACDream - Power Sum
先上题目:
Power Sum
Problem Description
Input
第一行一个数T( <= 10),表示数据总数
然后每行给出3个数n,m,p(1 <= n <= m <= 10^18, 1 <= p <= 10^6, p是质数
Output
Sample Input
2
1 1 11
3 2 11
Sample Output
1
3
Hint
#include <cstdio>
#include <cstring>
#include <iostream>
#define LL long long
#define MAX 1000002
using namespace std; LL n,m,p,ti; bool f[MAX];
LL mm[MAX];
LL ans,rr,r; LL Fast_Mod(LL i,LL t){
LL a = ;
while(t){
if(t&) a = i*a%p;
i = (i%p)*(i%p)%p;
t>>=;
}
return a;
} void solve1(){
ans=;
memset(f,,sizeof(f));
for(int i=;i<=p;i++) mm[i]=;
LL u;
f[]=;
for(LL i=;i<=p;i++){
if(!f[i]){
mm[i] = Fast_Mod(i,m);
for(LL j=i+i;j<=p;j+=i){
f[j]=;
u = j;
while(u%i==){
u/=i;
mm[j]=mm[j]*mm[i]%p;
}
}
}
ans = (ans + mm[i])%p;
if(i<=r) rr=ans;
}
} void solve2(){
ans=;
memset(f,,sizeof(f));
for(int i=;i<=r;i++) mm[i]=;
LL u;
f[]=;
for(LL i=;i<=r;i++){
if(!f[i]){
mm[i] = Fast_Mod(i,m);
for(LL j=i+i;j<=r;j+=i){
f[j]=;
u = j;
while(u%i==){
u/=i;
mm[j]=mm[j]*mm[i]%p;
}
}
}
ans = (ans + mm[i])%p;
}
} int main()
{
int t;
//freopen("data.txt","r",stdin);
scanf("%d",&t);
while(t--){
scanf("%lld %lld %lld",&n,&m,&p);
ti = n/p;
r = n%p;
rr=;
if(ti!=){
solve1();
ans = (ans*ti)%p;
ans = (ans+rr)%p;
}else{
solve2();
}
printf("%lld\n",ans);
}
return ;
}
Power Sum
ACDream - Power Sum的更多相关文章
- Power Sum 竟然用原根来求
Power Sum Time Limit: 20000/10000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) SubmitS ...
- acdream Divide Sum
Divide Sum Time Limit: 2000/1000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others) SubmitSta ...
- ACdream: Sum
Sum Time Limit: 2000/1000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others) SubmitStatisticN ...
- acdream 1431 Sum vs Product
Sum vs Product Time Limit: 4000/2000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others) Submi ...
- ACdream 1431——Sum vs Product——————【dfs+剪枝】
Sum vs Product Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) S ...
- ACDream - Lowbit Sum
先上题目: C - Lowbit Sum Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others ...
- hdu3208 Power of Integer
/** 题目:H - Power of Integer 链接:https://vjudge.net/contest/152887#problem/H 题意:给出区间[a, b],问你区间[a, b]所 ...
- 加州大学伯克利分校Stat2.3x Inference 统计推断学习笔记: FINAL
Stat2.3x Inference(统计推断)课程由加州大学伯克利分校(University of California, Berkeley)于2014年在edX平台讲授. PDF笔记下载(Acad ...
- JavaScript基础--简单功能的计算器(十一)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- 解析HTTP协议六种请求方法
标准Http协议支持六种请求方法,即: 1,GET 2,HEAD 3,PUT 4,DELETE 5,POST 6,OPTIONS 但其实我们大部分情况下只用到了GET和POST.如果想设计一个符合RE ...
- luogu3084 Photo 单调队列优化DP
题目大意 农夫约翰决定给站在一条线上的N(1 <= N <= 200,000)头奶牛制作一张全家福照片,N头奶牛编号1到N.于是约翰拍摄了M(1 <= M <= 100,000 ...
- luogu1273 有限电视网
题目大意 有一棵有根树,每个结点有一个收益,每条边有一个花费.如果要选择一个叶子结点,则根节点到该叶子结点的路径上的所有结点都必须被选择.求当总收益大于等于总花费的情况下,最多能选择多少个叶子结点. ...
- iOS开发之KVC全解
一 KVC的基本概念 1.KVC是Key Value Coding的缩写,意思是键值编码. 在iOS中,提供了一种方法通过使用属性的名称(也就是Key)来间接访问对象属性的方法,这个方法可以不通过g ...
- sql小计合计
转自:http://www.jb51.net/article/18860.htm 这里介绍sql server2005里面的一个使用实例: CREATE TABLE tb(province nvarc ...
- 浅讲ajax
1.ajax入门案例 1.1 搭建Web环境 ajax对于各位来说,应该都不陌生,正因为ajax的产生,导致前台页面和服务器之间的数据传输变得非常容易,同时还可以实现页面的局部刷新.通过在后台与服务器 ...
- struts2OGNL表达式(三)
OGNL表达式 OGNL对象试图导航语言.${user.addr.name}这种写法就叫对象试图导航.Struts框架使用OGNL作为默认的表达式语言 OGNL不仅仅可以试图导航,支持比EL表达式更加 ...
- 复习HTML+CSS(8)
n 普通框架 框架技术:将一个浏览器划分成若干个小窗口,每个小窗口显示一个独立的网页. 框架集合框架页 u 框架集<frameset>:主要用来划分窗口的. u 框架页<fra ...
- vue-cli脚手架安装过程(精简版)
1:打开node的控制台,并找到对应的文件夹 2:检查node的版本 node -v 3:检查npm的版本 npm -v 4:检查cnpm的版本 cnpm -v 5:安装全局及脚手架 cnpm ins ...
- Android嵌入式(初稿)--路漫漫其修远兮,吾将上下而求索