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

Problem Description
On Mars, there is a huge company called ACM (A huge
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.

 
Input
The first line contains an integer T indicating the
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)
 
Output
For each test case, output an integer indicating the
money the boss can save. Because the answer is so large, please module the
answer with 1,000,000,007.
 
Sample Input
2
4
5
 
Sample Output
82
354

Hint

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的更多相关文章

  1. hdu4059 The Boss on Mars(差分+容斥原理)

    题意: 求小于n (1 ≤ n ≤ 10^8)的数中,与n互质的数的四次方和. 知识点: 差分: 一阶差分: 设  则    为一阶差分. 二阶差分: n阶差分:     且可推出    性质: 1. ...

  2. HDU 4059 The Boss on Mars 容斥原理

    The Boss on Mars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  3. hdu4059 The Boss on Mars

    The Boss on Mars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. HDU 4059 The Boss on Mars(容斥原理 + 四次方求和)

    传送门 The Boss on Mars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  5. 数论 + 容斥 - HDU 4059 The Boss on Mars

    The Boss on Mars Problem's Link Mean: 给定一个整数n,求1~n中所有与n互质的数的四次方的和.(1<=n<=1e8) analyse: 看似简单,倘若 ...

  6. HDU 4059 The Boss on Mars(容斥原理)

    The Boss on Mars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  7. hdu 4059 The Boss on Mars

    The Boss on Mars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  8. 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 ...

  9. 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 ...

随机推荐

  1. [OpenCV]实验1.1:图像加载、显示

    实验要求:利用图像库的功能,实现从文件加载图像,并在窗口中进行显示的功能:利用常见的图像文件格式(.jpg;.png;.bmp; .gif)进行测试 实验原理:图片读取到程序中是以Mat结构存储的,在 ...

  2. 使用ant运行testng的testng.xml并且使用testng-results.xsl美化结果

    先看build.xml <?xml version="1.0" encoding="UTF-8"?> <project basedir=&qu ...

  3. mysql有关问题之:the security settings could not be applied to

    mysql问题之:the security settings could not be applied to 转自:http://www.myexception.cn/mysql/503556.htm ...

  4. Mybatis使用Redis二级缓存

    在Mybatis中允许开发者自定义自己的缓存,本文将使用Redis作为Mybatis的二级缓存.在Mybatis中定义二级缓存,需要如下配置: 1. MyBatis支持二级缓存的总开关:全局配置变量参 ...

  5. idea中git从码云克隆项目到本地

    1.首先需要在操作系统上安装Git分布式管理系统 此处自行百度............. 2.在Intellij IDEA中配置Git 打开Settings(File-->Settings) - ...

  6. hookup_2.10-0.2.3.jar包下载

    hookup_2.10-0.2.3.jar包下载地址,自己也做一个记录.同一时候也给须要的朋友提供一个方便,希望对大家有所帮助.下载地址:http://www.59biye.com/jar/cont/ ...

  7. vue 的 生命周期

    图示: 解析: 那么下面我们来进行测试一下 <section id="app-8"> {{data}} </section> var myVue=new V ...

  8. MAC OS X Yosemite的PyQt4配置记录

    MAC OS X Yosemite的PyQt4配置记录 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系 ...

  9. 一次vm 虚拟机时间倒流而导致的oracle 数据库启动故障

    一次vm 虚拟机时间倒流而导致的oracle 数据库启动故障 本文是原创文章.若转载请注明出处: http://blog.csdn.net/msdnchina/article/details/3878 ...

  10. 【Linux】通过传入变量进行数学运算

    一个简单的sum求和 #! /bin/bash ## For get the sum of tow numbers ## Writen by Qinys ## Date:2018-06-26 a=1 ...