跳至内容
CVBB ACM Team
用户工具
注册
登录
站点工具
搜索
工具
显示页面
修订记录
Copy this page
导出 PDF
反向链接
最近更改
媒体管理器
网站地图
注册
登录
>
最近更改
媒体管理器
网站地图
您在这里:
front_page
»
2020-2021
»
teams
»
wangzai_milk
»
hdu6578
2020-2021:teams:wangzai_milk:hdu6578
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
[[http://acm.hdu.edu.cn/showproblem.php?pid=6578|HDU6578]] <code cpp> #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<algorithm> #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<o2.r;} int main() { int T=read(); while(T--) { memset(f,0,sizeof(f)); n=read(),m=read(),res=0; for(int i=1;i<=m;i++)c[i].l=read(),c[i].r=read(),c[i].x=read(); sort(c+1,c+1+m,cmp); f[0][0][0][0]=1; int p=1,r=0; for(int i=0;i<=n;i++,r^=1) { for(int j=0;j<=i;j++) for(int k=0;k<=j;k++) for(int l=0;l<=k;l++) { int t=p; while(t<=m&&c[t].r==i) { int num=(j>=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; } </code>
2020-2021/teams/wangzai_milk/hdu6578.txt
· 最后更改: 2020/05/18 18:13 由
zars19
页面工具
显示页面
修订记录
反向链接
Copy this page
导出 PDF
回到顶部