• 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 << '
    ';
    	}
    }
    
    
  • 相关阅读:
    Xpath 和Css Selector使用
    JS 基础
    python中requests.session的妙用
    HTML基础之DOM
    吃着火锅唱着歌学会Docker
    SAAS方法论
    Python操作MySQL
    Flask中session实现原理
    人的成长永远不会大于自己的思想
    Serializers 序列化组件
  • 原文地址:https://www.cnblogs.com/skip1978/p/11431397.html
Copyright © 2020-2023  润新知