The Boss on Mars
The Boss on Mars
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2327 Accepted Submission(s):
718
Company on Mars), and it’s owned by a younger boss.
Due to no moons
around Mars, the employees can only get the salaries per-year. There are n
employees in ACM, and it’s time for them to get salaries from their boss. All
employees are numbered from 1 to n. With the unknown reasons, if the employee’s
work number is k, he can get k^4 Mars dollars this year. So the employees
working for the ACM are very rich.
Because the number of employees is so
large that the boss of ACM must distribute too much money, he wants to fire the
people whose work number is co-prime with n next year. Now the boss wants to
know how much he will save after the dismissal.
number of test cases. (1 ≤ T ≤ 1000) Each test case, there is only one integer
n, indicating the number of employees in ACM. (1 ≤ n ≤ 10^8)
money the boss can save. Because the answer is so large, please module the
answer with 1,000,000,007.
4
5
354
Case1: sum=1+3*3*3*3=82
Case2: sum=1+2*2*2*2+3*3*3*3+4*4*4*4=354
http://acm.hdu.edu.cn/showproblem.php?pid=4059///这题主要是公式问题,然后稍微对容斥原理计算个数,改为mult的特殊利用即可;#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#include<queue>using namespace std;///1~n这n个数的4次方和:n*(n+1)*(6*n*n*n+9*n*n+n-1)/30; 这里百度的公式;typedef long long ll;const ll N = 1e6+5;const ll mod = 1e9+7;ll n, ans;ll get4mult(ll mult){ return mult*mult%mod*mult%mod*mult%mod;}ll extgcd(ll a,ll b,ll &x,ll &y){ if(b==0){ x = 1, y = 0; return a; } ll d = extgcd(b,a%b,x,y); ll t = x; x = y; y = t-a/b*y; return d;}ll inverse(ll t){ ll x, y; ll d = extgcd(t,mod,x,y); return (x%mod+mod)%mod;}ll calu(ll n){ return n*(n+1)%mod*(6*n*n%mod*n%mod+9*n*n%mod+n-1)%mod*inverse(30)%mod;}ll rongchi(ll n){ ll m = n; vector<ll> v; for(ll i = 2; i*i <= m; i++){ if(m%i==0){ v.push_back(i); while(m%i==0) m/=i; } } if(m>1) v.push_back(m); ll len = v.size(); for(ll i = 1; i < (1<<len); i++){ ll mult = 1, ones = 0; for(ll j = 0; j < len; j++){ if(i&(1<<j)){ ones++; mult = mult*v[j]; } } if(ones%2) {/// 变成了 - 因为假设是原来的容斥,那么cnt指的是不互质的个数,是要被剪掉的; ///而本题:也是要减掉,但是不是计算个数,而是对每一个过程有作用,减去:减变为了加,加变为了减; ans = ans-get4mult(mult)*calu(n/mult); ans = (ans%mod+mod)%mod; }else/// 变成了 + { ans = ans+get4mult(mult)*calu(n/mult); ans = (ans%mod+mod)%mod; } } v.clear(); return ans;}int main(){ ll T; cin>>T; while(T--) { cin>>n; ans = calu(n); printf("%lld\n",rongchi(n)); } return 0;}The Boss on Mars的更多相关文章
- hdu4059 The Boss on Mars(差分+容斥原理)
题意: 求小于n (1 ≤ n ≤ 10^8)的数中,与n互质的数的四次方和. 知识点: 差分: 一阶差分: 设 则 为一阶差分. 二阶差分: n阶差分: 且可推出 性质: 1. ...
- HDU 4059 The Boss on Mars 容斥原理
The Boss on Mars Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdu4059 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 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) ...
- hdu4059 The Boss on Mars 容斥原理
On Mars, there is a huge company called ACM (A huge Company on Mars), and it’s owned by a younger bo ...
- zoj 3547 The Boss on Mars
需要用到概率论的容斥定理以及计算1 ^ 4 + 2 ^ 4 + ……+ n ^ 4的计算公式1^4+2^4+……+n^4=n(n+1)(2n+1)(3n^2+3n-1)/30 #pragma comm ...
随机推荐
- HDU oj password
#include<stdio.h> #include<string.h> main() { int m; scanf("%d",&m); ch ...
- 2017.12.11SimpleDateFormat的线程安全性讨论
转载来自:http://blog.csdn.net/zxh87/article/details/19414885 1.结论 DateFormat和SimpleDateFormat都不是线程安全的.在多 ...
- SQL多表连接查询(具体实例)
本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student 截图例如以下: 表2:course 截图例如以下: (此时这样建表仅仅是为了演示连接SQL语句.当然实际开发中我们 ...
- Android技术——在Android中的随意视图中找控件
1.在非常多情况下,我们可能不知道控件的id,可是我们却希望在包括这个控件的视图中找到它,能够採用例如以下做法: 例:在Activity的根视图中找出当中全部的Button控件 private voi ...
- 云计算之路-试用Azure:一次失败的SQL Server向SQL Azure的迁移尝试
如果数据库用的是SQL Server,那SQL Azure无疑是最吸引人的地方之一.在测试了虚拟机磁盘IO之后,我们迫不急待地进行了SQL Azure的测试. (一) 首先进入manage.windo ...
- mysql结构相同的三张表查询一条记录\将一张表中的数据插入另外一张表
将一张表中的数据插入另外一张表 1.两张表结构相同 insert into 表1名称 select * from 表2名称 2.两张结构不相同的表 insert into 表1名称(列名1,列名2,列 ...
- sublime HtmlPrettify
用sublime都快一年多了,终于找到一款称心如意的format工具,可以同时格式化 html css js. HTML-CSS-JS Prettify 如果安装的时候出现问题,多调试调试,改改参数
- 移动端(阿里rem)布局
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 算法笔记_113:算法集训之代码填空题集一(Java)
目录 1 报数游戏 2 不连续处断开 3 猜数字游戏 4 串的反转 5 串中找数字 6 递归连续数 7 复制网站内容 8 股票的风险 9 基因牛的繁殖 10 括号的匹配 1 报数游戏 有n个孩子 ...
- FIFO、LRU、LFU的含义和原理(转)
题目:请简要介绍FIFO.LRU.LFU的含义和原理 含义: FIFO:First In First Out,先进先出LRU:Least Recently Used,最近最少使用 LFU:Leas ...