zoukankan      html  css  js  c++  java
  • 洛谷 P2401 不等数列 题解

    题面

    显然,nn个位置可以选择,我们先来考虑两边的位置。

    如果插入到最左边,会造成新的序列比原来多一个大于号

    如果插入到最右边,会造成新的序列比原来多一个小于号

    如果插入到大于号的位置,删去一个大于号,多一个大于号一个小于号,也就是多一个小于号

    如果插入到小于号的位置,删去一个小于号,多一个大于号一个小于号,也就是多一个大于号

    那么显然:

    f[i+1][j]=(f[i+1][j]+(f[i][j]*(j+1)))%p;
    f[i+1][j+1]=(f[i+1][j+1]+(f[i][j]*(i-j)))%p;

    #include <bits/stdc++.h>
    #define p 2015;
    using namespace std;
    long long f[1010][1010];
    int main()
    {
        int n,m;
        cin>>n>>m;
        f[0][0]=1;
        for(int i=0;i<=n;i++){
            for(int j=0;j<=m;j++){
                f[i+1][j]=(f[i+1][j]+(f[i][j]*(j+1)))%p;
                f[i+1][j+1]=(f[i+1][j+1]+(f[i][j]*(i-j)))%p;
            }
        }
        cout<<f[n][m]%p;
    }
  • 相关阅读:
    洛谷 P2958 [USACO09OCT]木瓜的丛林Papaya Jungle
    洛谷 P1400 塔
    10-2 集合之List
    主从数据库
    【单元测试】
    Pen Editor
    appendGrid
    动画
    JavaScript框架设计 第14章 动画引擎
    >>>
  • 原文地址:https://www.cnblogs.com/kamimxr/p/11459738.html
Copyright © 2011-2022 走看看