zoukankan      html  css  js  c++  java
  • [HNOI2010]CHORUS 合唱队

    题面

    Bzoj

    Sol

    简单(DP)

    # include <bits/stdc++.h>
    # define IL inline
    # define RG register
    # define Fill(a, b) memset(a, b, sizeof(a))
    using namespace std;
    typedef long long ll;
    const int _(1005);
    const int Zsy(19650827);
    
    IL ll Input(){
        RG char c = getchar(); RG ll x = 0, z = 1;
        for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1;
        for(; c >= '0' && c <= '9'; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);
        return x * z;
    }
    
    int n, a[_], f[2][_][_];
    
    IL void Up(RG int &x, RG int y){
    	x += y;
    	if(x >= Zsy) x -= Zsy;
    }
    
    int main(RG int argc, RG char* argv[]){
    	n = Input();
    	for(RG int i = 1; i <= n; ++i) a[i] = Input(), f[0][i][i] = 1;
    	for(RG int i = 1; i < n; ++i)
    		for(RG int l = 1; l + i <= n; ++l){
    			RG int r = l + i;
    			if(a[l] < a[l + 1]) Up(f[0][l][r], f[0][l + 1][r]);
    			if(a[l] < a[r]) Up(f[0][l][r], f[1][l + 1][r]);
    			if(a[r - 1] < a[r]) Up(f[1][l][r], f[1][l][r - 1]);
    			if(a[l] < a[r]) Up(f[1][l][r], f[0][l][r - 1]);
    		}
    	printf("%d
    ", (f[0][1][n] + f[1][1][n]) % Zsy);
    	return 0;
    }
    
    
  • 相关阅读:
    TestNG
    K近邻算法
    Python解决乱码问题
    Log4J 配置
    多线程死锁
    hadooplzo安装出错的解决方法
    B树
    设计模式
    整数序列化
    Maven
  • 原文地址:https://www.cnblogs.com/cjoieryl/p/8406224.html
Copyright © 2011-2022 走看看