zoukankan      html  css  js  c++  java
  • bzoj 1485: [HNOI2009]有趣的数列

    卡特兰数(貌似和卡常数有什么py交易)

    黄学长是用DP,输出看的。。然而本蒟蒻只知道有卡特兰数这个名字。。(其实,,这个sb  DP能不能写出来还不一定。。)

    公式好多,百度一下。。(看起来最初的定义式特别像卷积的样子,然而并不是。。)

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<map>
     5 #include<queue>
     6 #define N 1000005
     7 #define inf 1000000000
     8 #define LL long long
     9 using namespace std;
    10 const int mod=1000000007;
    11 LL ans=1;
    12 int n,P,cnt;
    13 int prime[1000005],mn[2000005],num[2000005];
    14 bool del[2000005];
    15 void get_prime()
    16 {
    17     for (int i=2; i<=2*n; i++)
    18     {
    19         if (!del[i]) prime[++cnt]=i,mn[i]=cnt;
    20         for (int j=1; prime[j]*i<=2*n && j<=cnt; j++)
    21         {
    22             del[prime[j]*i]=1; mn[prime[j]*i]=j;
    23             if (i%prime[j]==0) break;
    24         }
    25     }
    26 }
    27 void add(int x, int f)
    28 {
    29     while (x!=1)
    30     {
    31         num[mn[x]]+=f;
    32         x/=prime[mn[x]];
    33     }
    34 }
    35 int main()
    36 {
    37     scanf("%d %d",&n,&P); get_prime();
    38     for (int i=2*n; i>n+1; i--) add(i,1);
    39     for (int i=1; i<=n; i++) add(i,-1);
    40     for (int i=1; i<=cnt; i++)
    41         while (num[i]--) ans=(ans*prime[i])%P;
    42     printf("%d
    ",ans);
    43     return 0;
    44 }
  • 相关阅读:
    数据汇总计算和分析的反思
    排名算法计算
    仿Spring读取配置文件实现方案
    xml 配置文件规范 校验
    批量插入数据(基于Mybatis的实现-Oracle)
    shallow copy 和 deep copy 的示例
    引用对象的使用和易产生bug的示例
    codis安装手册
    Redis安装手册
    map和list遍历基础
  • 原文地址:https://www.cnblogs.com/ccd2333/p/6498518.html
Copyright © 2011-2022 走看看