T1 [HAOI2016]放棋子

https://daniu.luogu.org/problem/show?pid=3182

障碍交换行不影响

所以第i列有障碍的行换到第i行

然后错排公式

本校自测要写压位高精,不写了。。。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct node
{
    int len;
    int num[401];
    void clear()
    {
        len=0;
        memset(num,0,sizeof(num));
    }
    void operator = (int a)
    {
        len=0;
        while(a) len++,num[len]=a%10,a/=10;
    }
    void operator = (node a)
    {
        len=a.len;
        for(int i=1;i<=len;i++) num[i]=a.num[i];
    }
    node operator + (node a)
    {
        node c; c.clear();
        memset(c.num,0,sizeof(c.num));
        int L=max(a.len,len);
        c.len=L;
        for(int i=1;i<=L;i++) c.num[i]=num[i]+a.num[i];
        for(int i=1;i<=L;i++)
            if(c.num[i]>9) c.num[i+1]+=c.num[i]/10,c.num[i]%=10;
        if(c.num[L+1]) c.len++;
        while(c.num[c.len]>9) c.num[c.len+1]=c.num[c.len]/10,c.num[c.len]%=10,len++;
        if(c.num[c.len+1]) c.len++;
        return c;
    }
    node operator * (int a)
    {
        node c; c.clear();
        int L;
        c.len=L=len;
        for(int i=1;i<=L;i++) c.num[i]=num[i]*a;
        for(int i=1;i<=L;i++)
            if(c.num[i]>9) c.num[i+1]+=c.num[i]/10,c.num[i]%=10;
        if(c.num[L+1]) c.len++;
        while(c.num[c.len]>9) c.num[c.len+1]=c.num[c.len]/10,c.num[c.len]%=10,len++;
        if(c.num[c.len+1]) c.len++;
        return c;
    }
    void print()
    {
        for(int i=len;i;i--) printf("%d",num[i]);
    }
};
node f[201];
int main()
{
//    freopen("firstmeet.in","r",stdin);
//    freopen("firstmeet.out","w",stdout);
    int n;
    scanf("%d",&n);
    f[1]=0,f[2]=1,f[3]=2;
    for(int i=4;i<=n;i++)     
    {
        f[i].clear();
        f[i]=(f[i-1]+f[i-2])*(i-1);
    }
    f[n].print();
}
View Code

相关文章:

  • 2021-11-11
  • 2022-01-10
  • 2021-12-06
  • 2022-02-02
  • 2021-11-27
  • 2021-11-08
  • 2021-10-11
  • 2022-02-04
猜你喜欢
  • 2021-06-19
  • 2022-12-23
  • 2022-01-18
  • 2021-10-24
  • 2021-12-12
  • 2021-10-05
  • 2021-10-02
相关资源
相似解决方案