基礎但是很重要的2 sat POJ 3678

2022-05-01 19:33:10 字數 1465 閱讀 9950

題目大意:就是給你n個點,m條邊,每個點都可以取值為0或者1,邊上都會有乙個符號op(op=xor or and三種)和乙個權值c。然後問你如何選擇每個點的值,才能讓所有點都滿足x[i] op x[j] = c

思路:這題學會了好多東西哇,至少我明白了xor,or,and這些關係如何建圖拉

//

看看會不會爆int!陣列會不會少了一維!

//取物問題一定要小心先手勝利的條件

#include#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#pragma comment(linker,"/stack:102400000,102400000")

#define ll long long

#define all(a) a.begin(), a.end()

#define pb push_back

#define mk make_pair

#define fi first

#define se second

#define haha printf("haha\n")

const

int maxn = 10000 + 5

;struct

tarjan

void add_edge(int x, int

y)

void dfs(int

u)

else

if (!sccno[v])

}if (low[u] ==pre[u])

}return

; }

bool solve()

for (int i = 0; i < 2 * n; i += 2)

return

true

; }

};tarjan tar;

intn, m;

intmain()

else

}else

if (ch[0] == 'o'

)

else

}else

if (ch[0] == 'x'

)

else}}

if (tar.solve()) puts("

yes"

);

else puts("no"

); }

return0;

}

view code

具體可以看這個部落格:

插入鍊錶的注意點(很基礎但是很重要)

於嚴蔚敏的資料結構鍊錶插入 status listinsert.sq sqlist l,int i,elemtype e q l.elem i 1 q 為插入位置 for p l.elem l.length 1 p q p q e 插入e的值 l.length 表長增1 return ok 如果為原...

J2ME中很重要的兩個配置

1 j2me中很重要的兩個配置 1 cldc connected limited device configuration 2 cdc connected device configuration 2 怎麼區分這兩個配置?根據裝置的硬體效能來區分。比如處理器和記憶體容量。3 兩種配置的具體硬體引數?...

UI 新人容易忽略,但很重要的3個知識點

客戶端 伺服器後台功能的實現主要是由後台開發工程師負責。內容管理系統 舉兩個例子 有一些欄位是可以根據設計師自身設計的要求來定義的,比如同樣乙個商品的標籤的字段,你可以用純文字的方式,也可以用圖示的形式,當設計稿確定之後,這些欄位的具體要求都需要梳理出來。比如我這個欄位是文字的形式還是的形式,如果是...