[hdu6578]Blank
2024-09-08 19:26:46
状态f[i][j][k][l]表示前i个数,四种数的最后一次出现的位置分别是i、j、k和l(i>j>k>l),判断所有第右端点为i的区间是否满足此要求(不满足重置为0),考虑第i+1个位置填什么,转移到下一个位置上即可。
这样的时间复杂度看似是$o(Tn^{4})$,实际上由于枚举只需要比上一个数小就行了,还要除以24;空间复杂度通过滚动可以压到$o(n^{3})$,可以卡过去。
1 #include<bits/stdc++.h>
2 using namespace std;
3 #define mod 998244353
4 int t,n,m,x,y,z,ans,ll[105][5],rr[105][5],f[2][105][105][105];
5 void add(int &x,int y){
6 x+=y;
7 if (x>=mod)x-=mod;
8 }
9 int calc(int a,int b,int c,int d,int e){
10 return (e<=a)+(e<=b)+(e<=c)+(e<=d);
11 }
12 int main(){
13 scanf("%d",&t);
14 while (t--){
15 scanf("%d%d",&n,&m);
16 memset(ll,0x3f,sizeof(ll));
17 memset(rr,-1,sizeof(rr));
18 for(int i=1;i<=m;i++){
19 scanf("%d%d%d",&x,&y,&z);
20 ll[y][z]=min(ll[y][z],x);
21 rr[y][z]=max(rr[y][z],x);
22 }
23 memset(f,0,sizeof(f));
24 f[0][0][0][0]=1;
25 ans=0;
26 for(int i=1,p=1;i<=n;i++,p^=1){
27 for(int j=0;(!j)||(j<i);j++)
28 for(int k=0;(!k)||(k<j);k++)
29 for(int l=0;(!l)||(l<k);l++){
30 x=f[p^1][j][k][l];
31 if (x){
32 add(f[p][j][k][l],x);
33 add(f[p][i-1][k][l],x);
34 add(f[p][i-1][j][l],x);
35 add(f[p][i-1][j][k],x);
36 }
37 f[p^1][j][k][l]=0;
38 }
39 for(int j=0;j<i;j++)
40 for(int k=0;(!k)||(k<j);k++)
41 for(int l=0;(!l)||(l<k);l++){
42 for(int q=1;q<=4;q++)
43 if ((calc(i,j,k,l,ll[i][q])>q)||(calc(i,j,k,l,rr[i][q])<q)){
44 f[p][j][k][l]=0;
45 break;
46 }
47 if (i==n)add(ans,f[p][j][k][l]);
48 }
49 }
50 printf("%d\n",ans);
51 }
52 }
最新文章
- JavaScript作用域
- MacTalk阅读有感
- CSS布局(二)
- 如何解决在Ue4编辑器中查看中文注释为乱码的情况
- Another app is currently holding the yum lock; waiting for it to exit...
- Aspect Oriented Programming (AOP)
- Extjs 4.2 Grid增删改及后台交互(Java)
- CK方程
- hysdk代码解析
- Android学习路线图
- Jquery列表中的导航菜单的应用
- HDU 1711 Number Sequence(kmp)
- oc学习之对象在内存的位置
- 利用python生成交换机的VRF配置文件
- JDBC、DBUtils
- Python3学习笔记(urllib模块的使用)
- C#基础知识总结(一)
- Django ORM模型:想说爱你不容易
- IIC AT24C02读写数据的一点小体会
- ubuntu 使用命令行登录oracle
热门文章
- 手把手教你 Docker部署可视化工具Grafana
- 洛谷4895 独钓寒江雪 (树哈希+dp+组合)
- 【数据结构与算法Python版学习笔记】图——拓扑排序 Topological Sort
- 【Linux命令063】Linux非常简单常用的入门命令
- the Agiles Scrum Meeting 3
- 洛谷 P2221 [HAOI2012]高速公路
- picGo+gitee搭建Obsidian图床,实现高效写作
- cf13C Sequence(DP)
- 转移指令原理和Inline Hook
- &#128293;完美解决ESlint+Prettier各项配置冲突的语法报错问题(新手向)