• 链接列Uva 6176 Faulhaber's Triangle


    PS:今天上午,非常郁闷,有很多单简基础的问题搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!

        目题链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4187

        题意:求多项幂和的对应系数,由于目题已给出公式,所以较单简。

        关键是每一行第一列的值,只要用其余行的分数相加,1减去其和便可。

        求 a/b + c/d 的和,可以化为:(a*d + b * c)/ (b*d),然后再约分便可。

        求分数的差和求分数的和是一样的思绪。

        本题即利用这个思绪:

        每日一道理
    只有启程,才会到达理想和目的地,只有拼搏,才会获得辉煌的成功,只有播种,才会有收获。只有追求,才会品味堂堂正正的人。
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    #include <stdlib.h>
    #include <algorithm>
    using namespace std;
    
    #define LL long long
    #define Maxn 405
    LL f[Maxn][Maxn],g[Maxn][Maxn];
    LL d;
    
    LL gcd(LL a,LL b)
    {
        if(b == 0) return a;
        return gcd(b,a%b);
    }
    void init()
    {
        memset(f,0,sizeof(f));
        memset(g,0,sizeof(g));
        f[0][1] = g[0][1] = 1;
        LL fz,fm;
        for(int i=1;i<=400;i++)
        {
            fz = 0,fm = 1;
            for(int j=2;j<=i+1;j++)
            {
                f[i][j] = i * f[i-1][j-1];
                g[i][j] = j * g[i-1][j-1];
                d = gcd(f[i][j],g[i][j]);
                if(d!=0)
                {
                    f[i][j] /= d;
                    g[i][j] /= d;
                }
                fz = fz * g[i][j] + fm * f[i][j];
                fm *= g[i][j];
                d = gcd(fz,fm);
                if(d!=0)
                {
                    fz /= d;
                    fm /= d;
                }
            }
            f[i][1] = fm - fz;
            g[i][1] = fm;
        }
    }
    int main()
    {
    #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
        //freopen("out.txt","w",stdout);
    #endif
        init();
        int p;
        int m,r,c;
        scanf(" %d",&p);
        while(p--)
        {
            scanf(" %d %d %d",&m,&r,&c);
            printf("%d ",m);
            if(f[r][c] == 0) printf("0\n");
            else if(f[r][c] % g[r][c] == 0) printf("%lld\n",f[r][c]/g[r][c]);
            else if(g[r][c] < 0) printf("%lld/%lld\n",-f[r][c],-g[r][c]);
            else printf("%lld/%lld\n",f[r][c],g[r][c]);
        }
        return 0;
    }

    文章结束给大家分享下程序员的一些笑话语录: 打赌
    飞机上,一位工程师和一位程序员坐在一起。程序员问工程师是否乐意和他一起玩一种有趣的游戏。工程师想睡觉,于是他很有礼貌地拒绝了,转身要睡觉。程序员坚持要玩并解释说这是一个非常有趣的游戏:"我问你一个问题,如果你不知道答案,我付你5美元。然后你问我一个问题,如果我答不上来,我付你5美元。"然而,工程师又很有礼貌地拒绝了,又要去睡觉。  程序员这时有些着急了,他说:"好吧,如果你不知道答案,你付5美元;如果我不知道答案,我付50美元。"果然,这的确起了作用,工程师答应了。程序员就问:"从地球到月球有多远?"工程师一句话也没有说,给了程序员5美元。  现在轮到工程师了,他问程序员:"什么上山时有三条腿,下山却有四条腿?"程序员很吃惊地看着工程师,拿出他的便携式电脑,查找里面的资料,过了半个小时,他叫醒工程师并给了工程师50美元。工程师很礼貌地接过钱又要去睡觉。程序员有些恼怒,问:"那么答案是什么呢?"工程师什么也没有说,掏出钱包,拿出5美元给程序员,转身就去睡觉了。

  • 相关阅读:
    功能测试--电梯测试项
    进程
    基于UDP协议的socket编程
    自定义报头解决粘包问题
    基于TCP协议的socket编程
    python3 中encode 和decode的使用方法。
    反射---hasattr、getattr、setattr、delattr
    摘要算法---hashlib模块下MD5和SHA的使用
    日志模块---logging
    staticmethod、classmethod的使用
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3052219.html
Copyright © 2020-2023  润新知