zoukankan      html  css  js  c++  java
  • 20201006国庆day4

    T1:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=25010;
    const int K=30;
    const int MOD=1e9+7;
    int f[N][K][K][2],g[N][K][K][2],n,k;
    int R[N][K],L[N][K],tmp[K][2],pos[N],h[N];
    void update(int &x,int y) {
    	x+=y;
    	if(x>=MOD)x-=MOD;
    }
    void work(int f[N][K][K][2],int L[N][K]) {
    	L[0][1]=0;
    	for(int i=1; i<=n; i++) {
    		int cnt=0,j=1;
    		for(; j<=k+1&&j<=i&&L[i-1][j]>=h[i]; L[i][++cnt]=L[i-1][j++]);
    		if(cnt<=k+1)L[i][++cnt]=h[i],pos[i]=cnt;
    		for(; j<=k+1&&j<=i&&cnt<=k+1; L[i][++cnt]=L[i-1][j++]);
    	}
    	f[0][1][0][0]=1;
    	for(int i=0; i<n; i++)
    		for(int x=1; x<=k+1; x++)
    			if(x<=i+1)
    				for(int j=0; j<=k; j++)
    					for(int tag=0; tag<2; tag++) {
    						if(L[i][x]<h[i+1]) {
    							update(f[i+1][pos[i+1]][j][tag],f[i][x][j][tag]);
    							if(j<k)update(f[i+1][x+1][j+1][tag^(L[i][x]&1)],f[i][x][j][tag]);
    						}
    						else {
    							update(f[i+1][x][j][tag^((L[i][x]-h[i+1])&1)],f[i][x][j][tag]);
    							if(j<k)update(f[i+1][x][j+1][tag^(L[i][x]&1)],f[i][x][j][tag]);
    						}
    					}
    }
    int main() {
    	scanf("%d%d",&n,&k);
    	for(int i=1; i<=n; i++)scanf("%d",&h[i]);
    	work(f,L);
    	reverse(h+1,h+n+1);//反转字符串
    	work(g,R);
    	int ans=0;
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=k+1;j++)
    			for(int tag=1;tag<=2;tag++)
    				tmp[j-1][tag-1]=0;
    		for(int x=1;x<=k+1;x++)
    			if(x<=n-i+1&&L[n-i][x]<h[i])
    				for(int j=1;j<=k+1;j++)
    					for(int tag=1;tag<=2;tag++)
    						update(tmp[j-1][tag-1],f[n-i][x][j-1][tag-1]);
    		for(int x=1;x<=k+1;x++)
    			if(x<=i&&R[i-1][x]<=h[i])
    				for(int j=1;j<=k+1;j++)
    					for(int tag=1;tag<=2;tag++)
    						update(ans,1ll*g[i-1][x][j-1][tag-1]*tmp[k-(j-1)][tag-1]%MOD);
    	}
    	printf("%d
    ",ans);
    	return 0;
    }
    
  • 相关阅读:
    6.2笔记-DQL语句查询数据库
    6.1课堂笔记—DML(数据操作语言),DQL查询语句
    5月31日上课笔记-Mysql简介
    5月25日-js操作DOM遍历子节点
    5月24日上课笔记-js操作DOM
    5月23日笔记-js绑定事件、解绑事件、复合事件
    嗯,很好,就这样。
    Spring AOP 编程
    Spring IOC 工厂
    Spring 与 Mybatis 的事务管理
  • 原文地址:https://www.cnblogs.com/zdxx/p/13773660.html
Copyright © 2011-2022 走看看