很簽到題
操作2先假設全部為黑,那麼變成了每選乙個點便會取反相連的邊
如果能暴力搞出所有環就可以高斯消元判斷,也許能過40
對原圖建dfs樹,發現只需要保留返祖邊加上對應路徑的環即可,任何的環都可以通過這些環異或得到,於是環的個數變為m級別,高斯消元o(m^3)可以70
設返祖邊(u,v,w)的選擇情況0/1為s,那麼有w=u xor v xor s,移一下變成s=u xor v xor w
uv是未知數,w是常量,把s代到邊裡即可把規模變為n,字首和+bitset解決
時間複雜度\(o(n^3/\omega)\)
#include #define fo(a,b,c) for (a=b; a<=c; a++)
#define fd(a,b,c) for (a=b; a>=c; a--)
#define ll long long
//#define file
using namespace std;
int a[90001][3],ls[301],d[301],c[301],t,n,m,i,j,k,l,len;
bitset<301> b[301],f[301],b;
bool bz[301];
void new(int x,int y,int z)
void dfs(int fa,int t)
} printf("yes\n");
}int main()
fclose(stdin);
fclose(stdout);
return 0;
}
UOJ 192 UR 14 最強跳蚤
題目鏈結 暑期課第二天 樹上問題高階 具體內容看筆記部落格吧 題意n個節點的樹t 邊有邊權w 求滿足 u,v 上所有邊權乘積為完全平方數的路徑有多少條 看到 所有邊權乘積為完全平方數 想到完全平方數的特殊性 就是分解質因數後 質因數指數都為偶數 然後就想到分解邊權質因數 判質路徑邊權奇偶性 後者由於...
UOJ 192 UR 14 最強跳蚤
這道題本來不想寫部落格的 但是鑑於自己犯了低階錯誤,還是寫篇部落格記載一下。一開始我的想法和題解裡面的演算法而比較類似,也是先分解質因數,然後用質因子是否出現偶數次來判斷當前這個數是否是完全平方數 然而這樣並不能ac,於是我去翻了題解 get 了乙個新做法,就是給每個出現過的質因子賦乙個 0,2 的...
UOJ513 清掃銀河(高斯消元)
首先轉化一波 對於1操作,我們求原圖的生成樹,然後對於每條非樹邊記下它和樹邊形成的環,這樣的操作共有 m n 1 個 對於2操作,我們考慮對於 n 個結點,把和這個結點相連的邊狀態反轉。不難發現任何操作序列都可以拆成這 m 1 個操作,且顯然每個操作最多進行一次,所以只用考慮這 m 1 個操作就可以...