[[http://acm.hdu.edu.cn/showproblem.php?pid=6578|HDU6578]] #include #include #include #include #include #include #define Mod 998244353 #define LL long long using namespace std; const int N=105; int n,m; LL f[2][N][N][N],res; int read() { int x=0,f=1;char c=getchar(); while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return x*f; } struct Node{int l,r,x;}c[105]; bool cmp(Node o1,Node o2){return o1.r=c[t].l)+(k>=c[t].l)+(l>=c[t].l)+1; if(num!=c[t].x)f[r][j][k][l]=0; t++; } } while(p<=m&&c[p].r<=i)p++; for(int j=0;j<=i;j++) for(int k=0;k<=j;k++) for(int l=0;l<=k;l++) { f[r^1][i][j][k]=(f[r^1][i][j][k]+f[r][j][k][l])%Mod; f[r^1][j][k][l]=(f[r^1][j][k][l]+f[r][j][k][l])%Mod; f[r^1][i][k][l]=(f[r^1][i][k][l]+f[r][j][k][l])%Mod; f[r^1][i][j][l]=(f[r^1][i][j][l]+f[r][j][k][l])%Mod; } for(int j=0;j<=i;j++) for(int k=0;k<=j;k++) for(int l=0;l<=k;l++) { if(i==n)res=(res+f[r][j][k][l])%Mod; f[r][j][k][l]=0; } } printf("%lld\n",res%Mod); } return 0; }