POJ 1707 Sum of powers(伯努利数)
题目链接:http://poj.org/problem?id=1707
题意:给出n

在M为正整数且尽量小的前提下,使得n的系数均为整数。
思路:

i64 Gcd(i64 x,i64 y)
{
if(y==0) return x;
return Gcd(y,x%y);
}
i64 Lcm(i64 x,i64 y)
{
x=x/Gcd(x,y)*y;
if(x<0) x=-x;
return x;
}
struct fraction
{
i64 a,b;
fraction() {}
fraction(i64 x)
{
a=x; b=1;
}
fraction(i64 x,i64 y)
{
a=x; b=y;
deal();
}
void deal()
{
if(b<0) b=-b,a=-a;
i64 k=Gcd(a,b);
if(k<0) k=-k;
a/=k; b/=k;
}
fraction operator+(fraction p)
{
fraction ans;
ans.b=Lcm(b,p.b);
ans.a=ans.b/b*a+ans.b/p.b*p.a;
ans.deal();
return ans;
}
fraction operator-(fraction p)
{
fraction ans;
ans.b=Lcm(b,p.b);
ans.a=ans.b/b*a-ans.b/p.b*p.a;
ans.deal();
return ans;
}
fraction operator*(fraction p)
{
fraction ans;
ans.a=a*p.a;
ans.b=b*p.b;
ans.deal();
return ans;
}
fraction operator/(fraction p)
{
fraction ans;
ans.a=a*p.b;
ans.b=b*p.a;
ans.deal();
return ans;
}
void print()
{
printf("%lld/%lld\n",a,b);
}
};
fraction B[20];
i64 C[N][N];
void init()
{
int i,j;
for(i=1;i<N;i++)
{
C[i][0]=C[i][i]=1;
for(j=1;j<i;j++) C[i][j]=C[i-1][j-1]+C[i-1][j];
}
B[0]=fraction(1);
for(i=1;i<=20;i++)
{
B[i]=fraction(0);
for(j=0;j<i;j++) B[i]=B[i]-fraction(C[i+1][j])*B[j];
B[i]=B[i]/fraction(C[i+1][i]);
}
}
int n;
fraction a[N];
int main()
{
init();
Rush(n)
{
i64 i,L=1;
for(i=0;i<=n;i++)
{
a[i]=fraction(C[n+1][i])*B[i]*fraction(1,n+1);
L=Lcm(L,a[i].b);
}
printf("%lld ",L);
a[1]=a[1]+fraction(1);
for(i=0;i<=n;i++) printf("%lld ",L/a[i].b*a[i].a);
puts("0");
}
}
POJ 1707 Sum of powers(伯努利数)的更多相关文章
- [伯努利数] poj 1707 Sum of powers
题目链接: http://poj.org/problem?id=1707 Language: Default Sum of powers Time Limit: 1000MS Memory Lim ...
- UVa 766 Sum of powers (伯努利数)
题意: 求 ,要求M尽量小. 析:这其实就是一个伯努利数,伯努利数公式如下: 伯努利数满足条件B0 = 1,并且 也有 几乎就是本题,然后只要把 n 换成 n-1,然后后面就一样了,然后最后再加上一个 ...
- ACM:POJ 2739 Sum of Consecutive Prime Numbers-素数打表-尺取法
POJ 2739 Sum of Consecutive Prime Numbers Time Limit:1000MS Memory Limit:65536KB 64bit IO Fo ...
- [CSAcademy]Sum of Powers
[CSAcademy]Sum of Powers 题目大意: 给定\(n,m,k(n,m,k\le4096)\).一个无序可重集\(A\)为合法的,当且仅当\(|A|=m\)且\(\sum A_i=n ...
- POJ.2739 Sum of Consecutive Prime Numbers(水)
POJ.2739 Sum of Consecutive Prime Numbers(水) 代码总览 #include <cstdio> #include <cstring> # ...
- POJ 2739 Sum of Consecutive Prime Numbers(素数)
POJ 2739 Sum of Consecutive Prime Numbers(素数) http://poj.org/problem? id=2739 题意: 给你一个10000以内的自然数X.然 ...
- Euler's Sum of Powers Conjecture
转帖:Euler's Sum of Powers Conjecture 存不存在四个大于1的整数的五次幂恰好是另一个整数的五次幂? 暴搜:O(n^4) 用dictionary:O(n^3) impor ...
- 【POJ1707】【伯努利数】Sum of powers
Description A young schoolboy would like to calculate the sum for some fixed natural k and different ...
- UVA766 Sum of powers(1到n的自然数幂和 伯努利数)
自然数幂和: (1) 伯努利数的递推式: B0 = 1 (要满足(1)式,求出Bn后将B1改为1 /2) 参考:https://en.wikipedia.org/wiki/Bernoulli_numb ...
随机推荐
- 转:一份基础的嵌入式Linux工程师笔试题
一. 填空题: 1. 一些Linux命令,显示文件,拷贝,删除 Ls cp rm 2. do……while和while……do有什么区别? 3. Linux系统下.ko文件是什么文件?.so文件是什么 ...
- (转) linux目录结构详细介绍
转自:http://yangrong.blog.51cto.com/6945369/1288072 目录 1.树状目录结构图 2./目录 3./etc/目录 4./usr/目录 5./var/目录 6 ...
- Java 线程池框架核心代码分析
前言 多线程编程中,为每个任务分配一个线程是不现实的,线程创建的开销和资源消耗都是很高的.线程池应运而生,成为我们管理线程的利器.Java 通过Executor接口,提供了一种标准的方法将任务的提交过 ...
- 101个MySQL的调节和优化的Tips
MySQL 是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限.这里是101条调节和优化MySQL安装的技巧.一些技巧是针对特定的安装环境的,但这些 ...
- Log4Net学习【一】
如果项目上过线的话,那你一定知道Log是多么重要.为什么说Log重要呢?因为上线项目不允许你调试,你只能通过Log来分析问题.这时打一手好Log的重要性绝不亚于写一手好代码.项目出问题时,你要能拿出L ...
- Useful related java API for Android
Language_suport and Other Language-Oriented API: strings,exceptions, threads, #java.lang.* offers th ...
- Codeforces Round #241 (Div. 2)->B. Art Union
B. Art Union time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- Maven开源中国镜像
mirrors> <mirror> <id>nexus-osc</id> <mirrorOf>central</mirrorOf> ...
- JS内存管理测试
打开调试器,切换到timer,点击左下角的record按钮开始,切换到memory视图,在文档中点击鼠标左右键,看股价走势图 function Allocate(kbs){ this.mem = ne ...
- html添加keyword,description帮助百度收录处理方法,jsp去除空白行方法
1.将网页的title,keyword,description写成include包含文件,例如: top.jsp <%@ page language="java" conte ...