首页 > zoj 3547 The Boss on Mars

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 comment(linker,"/STACK:1024000000,1024000000")
#include 
#include #define LL long long
const LL mod = 1e9 + 7;
#define MAX 10000int len, prime[MAX], num[30];
bool vis[MAX + 5];
LL n, sum, pi;void get_prime(){len = 0;for(int i = 2; i<=MAX; ++i){if(!vis[i]) prime[len++] = i;for(int j = i * i; j <= MAX; j+=i) vis[j] = 1;}
}LL power(LL x, LL y){if(y == 0) return 1;if(y == 1) return x;LL v = power(x, y / 2);v = v * v % mod;if(y % 2 == 1) v = v * x % mod;return v;
}LL cal(LL v){return v * (v  + 1) % mod * (v * 2 + 1) % mod * (v * v * 3 % mod + v * 3 - 1 + mod) % mod * pi % mod;
}void dfs(int cnt, int p, int pos, LL s){if(cnt % 2 == 1) sum = (sum + cal(n / s) * s % mod * s % mod * s % mod * s % mod) % mod;else sum = (sum - cal(n / s) * s % mod * s % mod * s % mod * s % mod + mod) % mod;for(int i = pos; i < p; ++i)dfs(cnt + 1, p, i + 1, s * num[i] % mod);
}int main ()
{//freopen ("in.txt", "r", stdin);get_prime();//for(int i = 0; i < len; ++i) printf("%d ", prime[i]);pi = power(30, mod - 2);int t;scanf ("%d", &t);while (t--){int x, p = 0;scanf("%d", &x);n = x;sum = cal(n);//printf("%d
", n);for(int i = 0; i < len; ++i){int v = prime[i];if(v > x) break;if(x % v == 0) num[p++] = v;while(x % v ==0) x /= v;}if(x > 1) num[p++] = x;//for(int i = 0; i < p; ++i) printf("%d ", num[i]);for (int i = 0; i < p; ++i)dfs(0, p, i + 1, (LL)num[i]);printf("%lld
", sum);}return 0;
}



 

 

更多相关:

  •         Apache POI是一个开源的利用Java读写Excel,WORD等微软OLE2组件文档的项目。        我的需求是对Excel的数据进行导入或将数据以Excel的形式导出。先上简单的测试代码:package com.xing.studyTest.poi;import java.io.FileInputSt...

  • 要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。 要取得a到b之间的...

  • 利用本征图像分解(Intrinsic Image Decomposition)算法,将图像分解为shading(illumination) image 和 reflectance(albedo) image,计算图像的reflectance image。 Reflectance Image 是指在变化的光照条件下能够维持不变的图像部分...

  • 题目:面试题39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 解题: cl...

  • 题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树:      5     /    2   6   /  1   3示例 1: 输入: [1,6,3,2,5] 输出...

  • L1-056 猜数字 (20 分) 一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。 输入格式: 输入在第一行给出一个正整数N(≤104)。随后 N 行,每行给出一个玩家的名字(由不超过8个英文字母组成的字符串)和其猜的正整数(≤ 100)。 输出格式: 在一行中...

  • 达哥送分给我我都不要,感觉自己挺牛批。 $type=0:$ 跟visit那题类似,枚举横向移动的步数直接推公式: $ans=sum C_n^i imes C_i^{frac{i}{2}} imes C_{n-i}^{frac{n-i}{2}},i\% 2=0$ $type=1:$ 因为不能触碰负半轴,所以可以把右移看成...

  • 题目链接 题意:给你三个数n,m,k;让你构造出一个nm的矩阵,矩阵元素只有两个值(1,-1),且满足每行每列的乘积为k,问你多少个矩阵。 解法:首先,如果n,m奇偶不同,且k=-1时,必然无解: 设n为奇数,m为偶数,且首先要满足每行乘积为-1,那么每行必然有奇数个-1,那么必然会存在有偶数个-1.。满足每列乘积为-1,那么每列必...

  • Description 有 n 种数字,第 i 种数字是 ai、有 bi 个,权值是 ci。 若两个数字 ai、aj 满足,ai 是 aj 的倍数,且 ai/aj 是一个质数, 那么这两个数字可以配对,并获得 ci×cj 的价值。 一个数字只能参与一次配对,可以不参与配对。 在获得的价值总和不小于 0 的前提下,求最多进行多少次配对...

  • 快速幂       1 #include 2 #include 3 #include 4 #define LL long long 5 using namespace std; 6 7 LL Pow(LL a, LL b) 8 { 9 LL an...