首先把染色變成差分,然後抽象成兩個點\(l, r+1\),連一條有向邊,染色就是方向,要求每個點的字首和\(s \in[-1, 1]\)。
把差為\(1\)的變成\(0\),就把差為\(1\)的部分覆蓋乙個區間(連一條無向邊),這樣就可以全部轉化為差為\(0\)的情況。
發現這是乙個尤拉迴路(圖不保證連通可能有多條):從\(s\)開始,每走一條正向邊相當於給這段區間\(+1\),反向邊相當於\(-1\),因為尤拉路徑最終會回到\(s\),因此所有點覆蓋的和為\(0\)。
所以網路流構造尤拉路即可,方法網上有。
#include #include #include #include using namespace std;
#define file(s) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout)
typedef long long ll;
namespace io
inline void flush ()
inline void putc (char x)
template inline void gi (i &x)
template inline void print (i x)
struct flusher_ }io_flusher_;
}using io :: gi; using io :: putc; using io :: print; using io :: getc;
templatevoid upmax(t &x, t y)
templatevoid upmin(t &x, t y)
int flow = g.maxflow();
if(flow != sum)
else
for(int i=1; i<=n; i++)
if(w[i] == -1) printf("%d ", g.f[eid[i]] ^ 1);
else printf("%d ", w[i]);
putchar('\n');
return 0;
}
等你在清華
高二上學期看到jhq拿了一本書 等你在清華 我那時已對清心生嚮往,便借來看了一會,序寫的非常好,摘抄了下來。全文如下 一直有個期待 用我們力所能及,還每一位在高考邊緣飽受煎熬的高中生朋友以快樂 自由和夢想成真。直到此刻,當我們把這些高等學府優秀學子們的學習心得及心路歷程結集出版成書,我們繃緊的心弦才...
冪等,你造嗎?
冪等在軟體開發中,是乙個非常重要的設計考量點。在實際開發中越來越多的 rest api 被採用,正確的實現冪等,對很多 api 尤其是涉及金融業務的 api 來說非常重要。冪等 idempotency 在實際開發中是指 乙個操作,多次任意執行或一次執行,所產生的結果相同。但實際業務場景中,我們要考慮...
沒有愛情會在原地等你
愛情如同一輛車,上去,下來,所遇到的人,永遠不會相同。你錯過這一輛,以為還會等到剛才的人,其實,那時的人,那時的愛情,已經遠去了。愛要趁早,因為,沒有愛情會在原地等待你。恨要趁晚,因為,能夠相愛一場就是緣分。他說,我們離婚吧。她說,為什麼?那是他們結婚四年之後,他猶豫再三,提出了離婚,如果不是那個年...