HDU 4059:The Boss on Mars(数学公式+容斥原理)
http://acm.hdu.edu.cn/showproblem.php?pid=4059
题意:给出一个n,求1~n里面与n互质的数的四次方的和是多少。
思路;不知道1~n的每个数的四次方的求和公式。看的是这篇:http://blog.csdn.net/acm_cxlove/article/details/7434864。
求和公式:(1^4+2^4+……+n^4)=(n*(n+1)*(2n+1)*(3*n*n+3*n-1))/30;
然后先求出1~n的每个数的四次方的求和,然后再减去n的因子的四次方的求和。
把n的因子的质因子找出来,然后使用容斥原理去做。
容斥原理里面有一个点:例如要求所有2的倍数的因子,n是8的话,就有因子2,4,6,8,求这些的四次方的和就可以转化为2 ^ 4 * (1 ^ 4 + 2 ^ 4 + 3 ^ 4 + 4 ^ 4)。就是f_pow(prime[i], 4) * calsum(n / prime[i])。
除以30就是乘以30的逆元,就是f_pow(30, MOD-2);
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int MOD = 1e9 + ;
const int N = 1e5 + ;
// (1^4+2^4+……+n^4)=(n*(n+1)*(2n+1)*(3*n*n+3*n-1))/30;
LL inver, n;
int prime[N], not_prime[N], cnt;
vector<LL> fac; void Biao() {
cnt = ;
for(int i = ; i <= N; i++) {
if(not_prime[i]) continue;
prime[cnt++] = i;
for(int j = * i; j <= N; j += i) not_prime[j] = ;
}
} LL f_pow(LL a, LL b) {
LL ans = ;
a %= MOD, b %= MOD;
while(b) {
if(b & ) ans = ans * a % MOD;
a = a * a % MOD;
b >>= ;
}
return ans % MOD;
} LL calsum(LL n) {
LL ans = n;
ans = ans * ((n + ) % MOD) % MOD;
ans = ans * (( * n + ) % MOD) % MOD;
ans = ans * ((( * n * n % MOD) + ( * n % MOD) - + MOD) % MOD) % MOD;
ans = ans * inver % MOD;
return ans;
} void solve() {
fac.clear();
LL tmp = n;
for(int i = ; i < cnt; i++) {
if(tmp % prime[i] == ) {
fac.push_back(prime[i]);
while(tmp % prime[i] == ) tmp /= prime[i];
}
}
if(tmp > ) fac.push_back(tmp);
LL ans = calsum(n);
int sz = fac.size();
for(int st = ; st < ( << sz); st++) {
int num = , bit = ; LL now = ;
while(( << bit) <= st) {
if(st & ( << bit)) num++, now *= fac[bit];
bit++;
}
LL res = f_pow(now, 4LL) * (calsum(n / now) % MOD) % MOD;
if(num % ) ans = (ans - res + MOD) % MOD;
else ans = (ans + res + MOD) % MOD;
}
printf("%lld\n", ans);
} int main() {
inver = f_pow(30LL, MOD - );
// printf("%lld\n", inver);
Biao();
int t; scanf("%d", &t);
while(t--) {
scanf("%lld", &n);
solve();
}
return ;
}
HDU 4059:The Boss on Mars(数学公式+容斥原理)的更多相关文章
- 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
The Boss on Mars Problem's Link Mean: 给定一个整数n,求1~n中所有与n互质的数的四次方的和.(1<=n<=1e8) analyse: 看似简单,倘若 ...
- 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 4059 The Boss on Mars 容斥
题目链接 求出ai^4+a2^4+......an^4的值, ai为小于n并与n互质的数. 用容斥做, 先求出1^4+2^4+n^4的和的通项公式, 显然是一个5次方程, 然后6个方程6个未知数, 我 ...
- hdu4059 The Boss on Mars(差分+容斥原理)
题意: 求小于n (1 ≤ n ≤ 10^8)的数中,与n互质的数的四次方和. 知识点: 差分: 一阶差分: 设 则 为一阶差分. 二阶差分: n阶差分: 且可推出 性质: 1. ...
- HDU 4059 容斥原理+快速幂+逆元
E - The Boss on Mars Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ...
- The Boss on Mars
The Boss on Mars Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
随机推荐
- Android 动画具体解释Frame动画 (Drawable Animation)
Frame动画像gif画画,通过一些静态的图片,以实现动画效果. Android sdk该AnimationDrawable就是专门针对Frame动画,当然Frame动画也可在java代码或者xml中 ...
- Android 5.0(L) ToolBar(替代ActionBar) 现实(四)
经过三天休息,我回来了,我们继续讨论Toolbar. 在此之前假设您正在步步紧跟下来的序列,然后,你应该注意到MainActivity据说他已被警告.因为他们,我们声明toolbar对象.但一直没有用 ...
- Emgu-WPF学习使用-中值模糊
原文:Emgu-WPF学习使用-中值模糊 实现效果: 实现途径: 前提:Image File-> System.Drawing.Bitmap->Image<Bgr, byte> ...
- 【剑指Offer学习】【面试题4 : 替换空格】
题目: 请实现一个函数,把字符串中的每个空格替换成"%20",例如“We are happy.”,则输出“We%20are%20happy.”. 以下代码都是通过PHP代码实现. ...
- WPF应用无法使用Snoop分析的解决办法
如果WPF程序是以管理员身份启动的,Snoop不是用管理员身份启动,那就不行. 用管理员身份启动snoop,就可以了. 管理员身份启动cmd,然后启动snoop,ok.
- Qt MVC设计模式(五篇)
http://blog.csdn.net/qq_19672579/article/details/46952675http://blog.csdn.net/qq_19672579/article/de ...
- 【WPF】UI虚拟化之------自定义VirtualizingWrapPanel
原文:[WPF]UI虚拟化之------自定义VirtualizingWrapPanel 前言 前几天QA报了一个关于OOM的bug,在排查的过程中发现,ListBox控件中被塞入了过多的Item,而 ...
- 启动组织重整 Marvell追求创新文化
最近接任Marvell技术长的Neil Kim正是该公司亟需的人才——他在今年四月加入后,预计将为Marvell带来正面.积极的改革契机,有机会让该公司彻底改头换面... 迈威尔科技(Marvell) ...
- WPF:通过BitmapSource的CopyPixels和Create方法来切割图片
原文 WPF:通过BitmapSource的CopyPixels和Create方法来切割图片 BitmapSource是WPF图像的最基本类型,它同时提供两个像素相关的方法就是CopyPixels和C ...
- linux自动挂载远程网盘到本地
sudo vim /etc/fstab 添加如下内容 //192.168.1.110/MyFiles /path/to/mount cifs username=adminz,password=pas ...