zoukankan      html  css  js  c++  java
  • HDU 6578

    #include<bits/stdc++.h>
    const int maxn = 101;
    const int mod = 998244353;
    typedef long long ll;
    inline void reduce(int & x){ x += x >> 31 & mod; }
    int f[maxn][maxn][maxn];
    int g[maxn][maxn][maxn];
    int t,n,m;
    struct T{ int l,x; };
    std::vector<T> v[maxn];
    int main(){
    	std::ios::sync_with_stdio(false),std::cin.tie(0);
    	std::cin >> t;
    	while(t --){
    		std::cin >> n >> m; int o = 1;
    		for(int i=1;i<=n;++i) v[i].clear();
    		for(int i=1,l,r,x;i<=m;++i){
    			std::cin >> l >> r >> x;
    			o &= x <= r - l + 1;
    			if(l != r) v[r].push_back((T){l,x});
    		}
    		if(!o){
    			std::cout << 0 << '
    ';
    			continue;
    		}
    		***f = 4;
    		for(int i=2;i<=n;++i){
    			for(int j=0;j<=i;++j) for(int k=j;k<=i;++k) for(int l=k;l<=n;++l) {
    				reduce(g[j][k][i-1] += f[j][k][l] - mod);
    				reduce(g[j][l][i-1] += f[j][k][l] - mod);
    				reduce(g[k][l][i-1] += f[j][k][l] - mod);
    				reduce(g[j][k][l] += f[j][k][l] - mod);
    			}
    			for(T t : v[i]) for(int j=0;j<=i;++j) for(int k=j;k<=i;++k) for(int l=k;l<=n;++l)
    				if((t.l <= j) + (t.l <= k) + (t.l <= l) + 1 != t.x) 
    					g[j][k][l] = 0;
    			for(int j=0;j<=i;++j) for(int k=j;k<=i;++k) for(int l=k;l<=n;++l) 
    				f[j][k][l] = g[j][k][l],g[j][k][l] = 0;
    		}
    		int ans = 0;
    		for(int i=0;i<=n;++i) for(int j=0;j<=n;++j) for(int k=0;k<=n;++k) {
    			reduce(ans += f[i][j][k] - mod);
    			f[i][j][k] = g[i][j][k] = 0;
    		}
    		std::cout << ans << '
    ';
    	}
    }
    
    
  • 相关阅读:
    使用PDO连接数据库
    ES6 promise
    弹框小三角
    封装弹窗功能
    css3 省略号
    使mac支持NTFS读写问题
    Vue 打包 build 前需要修改哪些配置和路径
    eslint配置大全
    在elementUI中使用 el-autocomplete 实现远程搜索的下拉框
    element-UI table自定义表头
  • 原文地址:https://www.cnblogs.com/skip1978/p/11431397.html
Copyright © 2011-2022 走看看