zoukankan      html  css  js  c++  java
  • 洛谷P3205合唱队-题解

    原题:

    思路:

    区间动规处理有一个十分明显但你他妈就没发现的特征:大区间包含小区间,大范围解包含小范围解

    这个题符合这个特征,所以是区间动规

    f[i][j][0]表示的是第i人从左边进来的方案数

    f[i][j][1]表示的是第j人从右边进来的方案数

    假设第三维是0,则前面那个一定比他高,前面的人就必然在i+1或是j

    1则前面一定比他矮,必然在i或是j-1

    详见代码

    实际上是十分显然的推理

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    int n;
    int a[1005];
    int f[1005][1005][2];
    int main()
    {
        cin >> n;
        for(int i=1;i<=n;i++)
            cin >> a[i];
        for(int i=1;i<=n;i++)
            f[i][i][0]=1;
        for(int l=2;l<=n;l++)
            for(int i=1;i+l-1<=n;i++)
            {
                int j=i+l-1;
                if(a[i]<a[i+1])
                    f[i][j][0]+=f[i+1][j][0];
                if(a[i]<a[j])
                    f[i][j][0]+=f[i+1][j][1];
                if(a[j]>a[i])
                    f[i][j][1]+=f[i][j-1][0];
                if(a[j]>a[j-1])
                    f[i][j][1]+=f[i][j-1][1];
                f[i][j][0]%=19650827;
    			f[i][j][1]%=19650827;
            }
        cout << (f[1][n][0]+f[1][n][1])%19650827 << endl;
        return 0;
    }
    

      

  • 相关阅读:
    判定一个APP是否可以上线?
    即时聊天-环信
    类目延展协议
    一个sql的优化
    多线程编程
    sql小总结
    人生七问
    js之按键总结
    搭建框架日志记录
    jquery函数
  • 原文地址:https://www.cnblogs.com/lujin49/p/13554480.html
Copyright © 2011-2022 走看看