hdu 4059 The Boss on Mars 容斥
求出ai^4+a2^4+......an^4的值, ai为小于n并与n互质的数。
用容斥做, 先求出1^4+2^4+n^4的和的通项公式, 显然是一个5次方程, 然后6个方程6个未知数, 我gauss消元解的(雾
然后筛出n所以的因子, 容斥就好。
容斥的时候, 每一个数的贡献是x^4 * getSum(x), getSum就是上面求出的通项公式。
#include <iostream>
#include <vector>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <map>
#include <set>
#include <string>
#include <queue>
#include <stack>
#include <bitset>
using namespace std;
#define pb(x) push_back(x)
#define ll long long
#define mk(x, y) make_pair(x, y)
#define lson l, m, rt<<1
#define mem(a) memset(a, 0, sizeof(a))
#define rson m+1, r, rt<<1|1
#define mem1(a) memset(a, -1, sizeof(a))
#define mem2(a) memset(a, 0x3f, sizeof(a))
#define rep(i, n, a) for(int i = a; i<n; i++)
#define fi first
#define se second
typedef pair<int, int> pll;
const double PI = acos(-1.0);
const double eps = 1e-;
const int mod = 1e9+;
const int inf = ;
const int dir[][] = { {-, }, {, }, {, -}, {, } };
vector <int> p;
ll pow(ll a, int b) {
ll ret = ;
while(b) {
if(b&)
ret = ret*a%mod;
a = a*a%mod;
b>>=;
}
return ret;
}
ll getsum(ll n) {
ll ret = *pow(n, )+*pow(n, )+*pow(n, )-n;
ret %= mod;
ll inv = pow(30LL, mod-)%mod;
return ret*inv%mod;
}
void getFactor(ll n) {
p.clear();
for(int i = ; i*i<=n; i++) {
if(n%i==) {
p.pb(i);
while(n%i==)
n/=i;
}
}
if(n>)
p.pb(n);
}
int main()
{
int t;
ll n;
cin>>t;
while(t--) {
cin>>n;
ll sum = getsum(n), d = ;
getFactor(n);
int num = p.size();
for(int i = ; i<(<<num); i++) {
ll multi = , one = ;
for(int j = ; j<num; j++) {
if((<<j)&i) {
one++;
multi = multi*p[j]%mod;
}
}
ll tmp = pow(multi, )%mod;
tmp*=getsum(n/multi);
tmp%=mod;
if(one&)
d += tmp;
else
d -= tmp;
d = (d+mod)%mod;
}
cout<<(sum-d+mod)%mod<<endl;
}
return ;
}
hdu 4059 The Boss on Mars 容斥的更多相关文章
- 数论 + 容斥 - HDU 4059 The Boss on Mars
The Boss on Mars Problem's Link Mean: 给定一个整数n,求1~n中所有与n互质的数的四次方的和.(1<=n<=1e8) analyse: 看似简单,倘若 ...
- hdu 4059 The Boss on Mars
The Boss on Mars Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 4059 The Boss on Mars 容斥原理
The Boss on Mars Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 4059 The Boss on Mars(容斥原理 + 四次方求和)
传送门 The Boss on Mars Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- HDU 4059 The Boss on Mars(容斥原理)
The Boss on Mars Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdu 4059 The Boss on Mars(纳入和排除)
http://acm.hdu.edu.cn/showproblem.php?pid=4059 定义S = 1^4 + 2^4 + 3^4+.....+n^4.如今减去与n互质的数的4次方.问共降低了多 ...
- hdu 5792(树状数组,容斥) World is Exploding
hdu 5792 要找的无非就是一个上升的仅有两个的序列和一个下降的仅有两个的序列,按照容斥的思想,肯定就是所有的上升的乘以所有的下降的,然后再减去重复的情况. 先用树状数组求出lx[i](在第 i ...
- HDU 5794 A Simple Chess (容斥+DP+Lucas)
A Simple Chess 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5794 Description There is a n×m board ...
- HDU 1695 GCD 欧拉函数+容斥定理 || 莫比乌斯反演
GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
随机推荐
- VS2012JSON自动生成对应的类
一.复制JSON数据如图 {Key:"aaaa",Value:"bbbb"} 二.点击以下操作
- HDU 5256 - 序列变换 ,树状数组+离散化 ,二分法
Problem Description 我们有一个数列A1,A2...An,你现在要求修改数量最少的元素,使得这个数列严格递增.其中无论是修改前还是修改后,每个元素都必须是整数.请输出最少需要修改多少 ...
- javascript中的with
with语句主要用来对一个对象操作多个属性,使代码简洁易读. 语法: with(object) statements object是新的默认对象,statements是一个或多个语句 例如: var ...
- Less2css error 终极解决方案
使用sublime Text3 的时候,安装less2Css后,和很多人一样以为大功告成,开始要运行编译less文件,结果开始发现 于是乎开始搜索问题和解决方案,然后就有了下面的解决方案1 方案1:通 ...
- MySQL操作类的封装(PHP)
<?php class mysql{ /** * 报错函数 * * @param string $error */ function err($error){ die("对不起,您的操 ...
- PHPStrom上传文件报502错误原因
PhpStorm是一个轻量级且便捷的PHP IDE,其自身拥有apache类似的编译器,能够在无Apache的情况下运行,很适合初学PHPStrom的朋友. 但是我发现了一个问题,那就是用PHPStr ...
- 用python实现文件读取和内容替换
infile = open("D:/test.txt", "r") #打开文件 outfile = open("D:/pp2.txt", & ...
- javascript圆形排列
显示效果如下: 需要用到的知识: 等于半径长的圆弧所对的圆心角叫做1弧度的角,用符号rad表示,读作弧度.用弧度作单位来度量角的制度叫做弧度制.另外一种度量角的方法是角度制.弧度制的精髓就在于统一了度 ...
- Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法
Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法 最近由于老师要求要在Ubuntu下QT上进程多线程服务器的开发,虽然只是单纯的调用qt的network模块,但是为了避免麻烦,我 ...
- 解决Easyui1.3.3 IE8兼容性问题
事先声明:项目在Firefox和Chrome上完美运行,在MSIE9.MSIE10上基本没问题,但是放在MSIE8上面运行问题就出来了.登录系统后,系统页面跳动,导致系统无法使用:我使用的是Easyu ...