CF 209 Div2 (C) 快速幂 取分子最小的公约数
来源:互联网 发布:编程赚钱的网站 编辑:程序博客网 时间:2024/05/24 06:15
#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>#include <string>#include <vector>#include <queue> //CF 209 Div2 (C) 快速幂 取分子分母最小的公约数#define LL long long #define N 100010using namespace std;const LL mod=1000000007; LL x, a[N]; LL f(LL k){LL ans=1, s=x;while(k){if(k&1){ans*=s;ans%=mod;}s=s*s;s%=mod;k>>=1;}return ans;}int main(){int n, t;LL s, h, k;while(scanf("%d%I64d", &n, &x)!=EOF){for(t=0, s=0; t<n; ++t){scanf("%I64d", a+t);s+=a[t];}for(t=0; t<n; ++t)a[t]=s-a[t]; //分子为a[t],分母为ssort(a, a+n);h=a[0];t=1;k=1; //相同分子的个数while(t<n){if(h==a[t]){k++;t++;}else {if(k%x==0) //换算{h++; //一个个加上去,防止超过k=k/x; //k除后表示有多少个和h相同的数}else break; //一旦不能整除则此时h已经是最小}}while(k%x==0){h++;k=k/x;}h=min(h, s); //分子分母作比较printf("%I64d\n", f(h));}return 0;}
0 0
- CF 209 Div2 (C) 快速幂 取分子最小的公约数
- CF 209 Div2 (C) 快速幂 求分子(一堆数相加)和分母的最大公约数
- CF 191 div2 C
- CF 143 div2 C
- CF-div2-192-C
- CF 188 (div2 C)
- cf 208 div2 C
- CF div2(225) C
- CF #284 div2 C
- CF 349div2 C
- CF div2 C
- cf/Codeforces Round #373 div1-C/div2-E Sasha and Array 线段树 + 维护矩阵快速幂
- CF 174(div2) C
- CF 171 (div2)C
- CF#146 div2 C(数论)
- CF Div2-206-C题
- CF div2 231 C(贪心)
- cf div2(262)c题
- backbone实用,让backbone更合后端开发人员的心意
- js页面之间传参方式集合
- oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包
- 最长有效括号长度(from pongo)
- android NDK配置
- CF 209 Div2 (C) 快速幂 取分子最小的公约数
- Java笔记
- 关于error:Cannot assign to 'self' outside of a method in the init family
- Core Java 基础篇1
- struts2+jquery+json 实现ajax请求,对象传值
- 测试 java Map 所有遍历方法的效率
- LeetCode (T)
- 新概念英语第三册课文
- Here I put nontrivial MOLPRO scripts, which I found useful for me and other: