博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 1089: [SCOI2003]严格n元树
阅读量:4316 次
发布时间:2019-06-06

本文共 1962 字,大约阅读时间需要 6 分钟。

 经典的Dp+前缀和

 

减法没有判断最改为是否为0 WA 了好久。。。

/**************************************************************    Problem: 1089    User: lxy8584099    Language: C++    Result: Accepted    Time:76 ms    Memory:1144 kb****************************************************************/ /*    尝试 long double 能不能水过    看样子是不行的     f i 表示深度不超过i的n元树个数     假设我们已知f[i-1],那么深度不大于i的树就相当于多出了一个根节点,    其每一个儿子(共n个儿子)都是一颗深度不大于i-1的树。    f i =  f i-1 ^n +1    1 表示只有一个节点的情况      答案就是 f n   -   f n-1  */#include
#include
using namespace std;const int N=1e4+50;struct Mat{    int m[N],l;    Mat()    {        memset(m,0,sizeof(m)); l=0;    }    Mat operator + (int b)    {        Mat a=*this;        int p=1;a.m[p]+=b;        while(a.m[p]>=10)        {            int k=a.m[p]/10;            a.m[p]%=10; a.m[++p]+=k;        }        a.l+=5;        while(a.m[a.l]==0) a.l--;        return a;    }    Mat operator - (Mat b)    {        Mat a=*this;        for(int i=1;i<=a.l;i++)        {            a.m[i]-=b.m[i];            if(a.m[i]<0) a.m[i]+=10,a.m[i+1]--;        }        while(a.m[a.l]==0) a.l--;        return a;    }    Mat operator * (Mat b)    {        Mat a=*this,c;        for(int i=1;i<=a.l;i++)        for(int j=1;j<=b.l;j++)        {            c.m[i+j-1]+=a.m[i]*b.m[j];            int k=c.m[i+j-1]/10;            c.m[i+j-1]%=10; c.m[i+j]+=k;        }        c.l=a.l+b.l+5;        while(c.m[c.l]==0) c.l--;        return c;    }    Mat operator ^ (int b)    {        Mat a=*this,c;        c.l=1,c.m[1]=1;        for(;b;b>>=1,a=a*a) if(b&1) c=c*a;        return c;    }    void print()    {        for(int i=l;i>=1;i--) printf("%d",m[i]);printf("\n");    }} f ,f1 ;int n,d;int main() {    scanf("%d%d",&n,&d);    if(d==0) {puts("1");return 0;}     f.l=1,f.m[1]=1;    for(int i=1;i<=d;i++)     {        f=f^n;        f=f+1;        if(i==d-1) f1=f;    }    f=f-f1;    f.print();    return 0;}

 

转载于:https://www.cnblogs.com/lxy8584099/p/10321189.html

你可能感兴趣的文章
程序猿崛起3——这一次,我用行动说话
查看>>
MVC HtmlHelper用法大全
查看>>
SQL分布式查询、跨数据库查询
查看>>
python国内豆瓣源
查看>>
redux、immutablejs和mobx性能对比(三)
查看>>
jQuery实现简单而且很酷的返回顶部链接效果
查看>>
电梯调度程序的UI设计
查看>>
转自 zera php中extends和implements的区别
查看>>
Array.of使用实例
查看>>
【Luogu】P2498拯救小云公主(spfa)
查看>>
如何获取网站icon
查看>>
几种排序写法
查看>>
java 多线程的应用场景
查看>>
dell support
查看>>
转:Maven项目编译后classes文件中没有dao的xml文件以及没有resources中的配置文件的问题解决...
查看>>
MTK android 设置里 "关于手机" 信息参数修改
查看>>
单变量微积分笔记6——线性近似和二阶近似
查看>>
补几天前的读书笔记
查看>>
HDU 1829/POJ 2492 A Bug's Life
查看>>
CKplayer:视频推荐和分享插件设置
查看>>