2017 10 22 方格染色 失敗總結

2021-08-09 15:35:40 字數 2562 閱讀 8779

詳細題解網上有好多。。

一開始想用乙個並查集維護  確定關係

乙個並查集維護相等關係

但會出現一些無解判不出來(原因未知)

所以就只能寫加權並查集,記錄每個點和他根節點的相等關係:0相等 1不等

然後原點選0還是1影響方塊 1 0

已填的數影響方塊 1 0

座標影響 方塊 1 0

統一一下就可以了

注:1、分清變數!!!

2、分清變數!!!

3、分清變數!!!

ac**:

#include#includeusing namespace std;

#define p 1000000000

int fu[2000005],g[2000005],ans,n,m,k,i,j,a[2000005],b[2000005],c[2000005];

bool sy[3];

int find(int o)

int calc()

} return daan;

}int main()

if((a[i]&1)==0&&(b[i]&1)==0)c[i]^=1;

b[i]+=n;

} if(sy[1])ans=calc();

//cout<1 && b[i]>n+1) c[i]^=1;

} ans+=calc();

} printf("%d",ans%p);

}

90分莫名wa**:

#include#includeusing namespace std;

#define p 1000000000

#define ll long long

int n,m,i,fu[2000006],fu2[2000006],cnt,a[2000006],b[2000006],c[2000006],k,j,bt[2000006];

bool cx[2000006];

ll ans;

ll ksm(ll a,ll b)

return ans;

}int find(int o)

int find2(int o)

int main()

for(i=1;i<=n+m;i++)fu[i]=fu2[i]=i;//fu

fu2[1]=fu2[1+n];

fu[1]=fu[1+n];

int lin=-1;

for(i=1;i<=k;i++)

else if(a[i]==1&&b[i]==1)

b[i]+=n;

}

//1,1為 0

if(lin!=1)else

else bt[a[i]]=b[i];

if(bt[b[i]]>0)

else bt[b[i]]=a[i];

}}else

if((a[i]&1)==0&&((b[i]-n)&1)==0)//^=1

else

else bt[a[i]]=b[i];

if(bt[b[i]]>0)

else bt[b[i]]=a[i]; }}

else

else

else bt[a[i]]=b[i];

if(bt[b[i]]>0)

else bt[b[i]]=a[i];

} }}

bool ky=1;

for(i=1;i<=n+m;i++)

}cnt=-1;

for(i=1;i<=n+m;i++)

}if(ky==1)ans=ksm(2,cnt);

} // cout<0)

else bt[a[i]]=b[i];

if(bt[b[i]]>0)

else bt[b[i]]=a[i];

}}else

if((a[i]&1)==0&&((b[i]-n)&1)==0)//^=1

else

else bt[a[i]]=b[i];

if(bt[b[i]]>0)

else bt[b[i]]=a[i]; } }

else

else

else bt[a[i]]=b[i];

if(bt[b[i]]>0)

else bt[b[i]]=a[i];

} }}

bool ky=1;

for(i=1;i<=n+m;i++)

}cnt=-1;

for(i=1;i<=n+m;i++)

}if(ky==1)ans+=ksm(2,cnt),ans%=p;

} printf("%lld",ans);

}

BZOJ2303 Apio2011 方格染色

sam和他的妹妹sara有乙個包含n m個方格的 她們想要將其的每個方格都染成紅色或藍色。出於個人喜好,他們想要 中每個2 2的方形區 域都包含奇數個 1 個或 3 個 紅色方格。例如,右 圖是乙個合法的 染色方案 在列印稿中,深色代 表藍色,淺色代表紅色 可是昨天晚上,有人已經給 中的一些方格染上...

bzoj 2303 Apio2011 方格染色

傳送門 sam和他的妹妹sara有乙個包含n m個方格的 她們想要將其的每個方格都染成紅色或藍色。出於個人喜好,他們想要 中每個2 2的方形區域都包含奇數個 1 個或 3 個 紅色方格。例如,右圖是乙個合法的 染色方案 在列印稿中,深色代表藍色,淺色代表紅色 可是昨天晚上,有人已經給 中的一些方格染...

bzoj 2303 Apio2011 方格染色

很神奇的思路,膜一發大佬 設s i,j a i j a i 1 j a i j 1 a i 1 j 1 那麼將s 1,1 s 1,2 s 1,j s 2,1 s 2,j s i,j 展開,對於i相同的一行 如s 1,1 s 1,2 s 1,j 我們可以先然看出其結果為開頭的a i 1 a i j 同...