关于 一扶苏一 的题解
查看原帖
关于 一扶苏一 的题解
450743
XOOR楼主2024/10/8 17:51
for(rg int i=2;i<=all;++i) {
	for(rg int s0=i-1;s0;s0=(s0-1)&i) if((gorf[s0]|i) == gorf[s0]) {
for(rg int i=2;i<=all;++i) {
	for(rg int s0=(i-1)&i;s0;s0=(s0-1)&i) if((gorf[s0]|i) == gorf[s0]) {

这里为什么不是 s0=(i-1)&i 而写成 s0=i-1

是否是因为

for(rg int s0=i-1;s0;s0=(s0-1)&i) if((gorf[s0]|i) == gorf[s0]) {
int _sum=0;
int ss=s0^i;
for(rg int k=0;k<n;++k) if((1<<k)&ss) {
	int _temp=INF;
	for(rg int h=0;h<n;++h) if((1<<h)&s0) {
		_temp=mmin(_temp,dis[h][k]);
	}
	_sum+=_temp;
}

中需要判断能否从 s0s0 每个点一步转移到 ii 状态呢?

如果有 s0⊈is0\not\sube is0s0 中点一步能够转移到 ii 状态是不是就寄了,还是说后面代码有些地方保证了,求教

2024/10/8 17:51
加载中...