网络流救救孩子吧呜呜呜

P4013 数字梯形问题

top表示的是正方形的编号
by issue_is_fw @ 2020-08-18 23:32:27


感觉思路没啥问题 但你的top向外连边了吗(雾
by 清平乐 @ 2020-08-19 08:20:32


感觉你的代码连出来的图长这样了 ![](https://cdn.luogu.com.cn/upload/image_hosting/ehwyfv0t.png)
by 清平乐 @ 2020-08-19 08:25:30


@[清平乐](/user/224358) 啊,这句就是向外连边呀 ``` add(top,xia,1,0); ``` 因为每行最左边的格子去正下方是没有正方形限制的 所以只需要 ``` if( j==1 ) { add(now,xia,1,a[i+1][j] );//去下一行最左边没限制 add(now,++top,1,a[i+1][j+1] ); //去右下方有限制,新开一个正方形 } ``` 每行最右边去右下方没限制(因为最右边了),去左下方有限制 ``` else if( j==m+i-1 ) { add(now,top,1,a[i+1][j]);//左下连正方形 add(now,xia+1,1,a[i+1][j+1] );//右下没限制 } ``` 每行中间的格子走左下或右下都有限制,并且是连接不同的正方形 ``` else { add(now,top,1,a[i+1][j] );//去左下有限制 add(top,xia,1,0);//这个正方形已经连完了,可以向下一行的节点连边 add(now,++top,1,a[i+1][j+1] );//去右下有限制,新开正方形 } ```
by issue_is_fw @ 2020-08-19 09:31:15


@[清平乐](/user/224358) 你看看是不是这样,可能是我错了$(;´༎ຶД༎ຶ`)$
by issue_is_fw @ 2020-08-19 09:33:06


|