洛谷 U141384 電路

2022-03-20 00:31:24 字數 2810 閱讀 4063

洛谷傳送門

seawayseawa**y是熱愛學習的好孩子。

有一天,seawayseawa**y正在向他的物理老師lsplsp討教物理。ll老師向他介紹了一種神奇的電路,邏輯電路:

ll老師說:邏輯電路是一種離散訊號的傳遞和處理、以二進位制為原理、實現數碼訊號邏輯運算和操作的電路。分組合邏輯電路時序邏輯電路。前者由最基本的「與門」電路、「或門」電路和「非門」電路組成,其輸出值僅依賴於其輸入變數的當前值,與輸入變數的過去值無關——即不具記憶和儲存功能;後者也由上述基本邏輯閘電路組成,但存在反饋迴路——它的輸出值不僅依賴於輸入變數的當前值,也依賴於輸入變數的過去值。邏輯電路廣泛應用於計算機、數字控制、通訊、自動化和儀表等方面。

比如,下圖就是一張邏輯電路的電路圖:

seawayseawa**y瞪大了眼睛:太奇妙啦!突然,他的腦中靈光一閃,想到了乙個問題......

seawayseawa**y把任何一套邏輯電路都歸為五種基本元件和若干導線。其中,五種基本原件分別是與門(\textand),或門(\textor),非門(\textnot),異或門(\textxor)和終端(\textin)。除終端之外,每個原件有兩個入端和乙個出端,其作用是把兩個入端進入的訊號進行邏輯運算,邏輯運算種類和原件種類相同,然後將結果訊號輸出給出端。訊號只有0/10/1兩種。終端比較特殊,它自帶一種可變訊號且只有乙個出端,顯然,它會把這個訊號直接輸出給出端。

按照題目背景的描述,顯然地,按這種形式、用原件和導線組合成的邏輯電路屬於組合邏輯電路。我們限制:整個電路最終只能有乙個出端。顯然地,如果所有終端的訊號被唯一確定,那麼整個電路的出端所輸出的訊號也會被唯一確定。

現在,seawayseawa**y的問題是:對於乙個給定的組合邏輯電路,每次只改變其中的乙個終端的自帶訊號後,整個電路的出端訊號會輸出什麼訊號。

從檔案circuit.incircuit.i**n中讀入資料。

第一行包含乙個整數nn。表示原件數量。原件從1-n1−n編號。我們令11號原件的出端為整個電路的出端。資料保證11號原件不會為終端,所有原件都在同乙個邏輯電路中。

接下來nn行,每一行描述乙個原件,描述規則如下:

首先是乙個字串optopt,為\textand,or,xor,not,in,表示原件種類。

如果原件不為終端,那麼接下來兩個整數s1,s2s1,s2,表示當前原件的入端所鏈結的原件編號。

如果原件為終端,那麼接下來乙個整數p\in[0,1]p∈[0,1],表示終端的初始自帶訊號種類。

輸出到檔案circuit.outcircuit.out中。

乙個0/10/1串,從左到右的每一位表示按編號順序依次改變每個終端的自帶訊號後,終端輸出訊號的種類。

這題我覺得差不多真夠我吹一陣子。

題面出奇的精美,愛了愛了。

反差萌->學弟。

好像還是給了30pts的暴力吧。\(o(n^2)\)的。聽學長說優化優化暴力可以打\(o(n^2/32)\)的,好像是用bitset玄學優化優化,不太懂。

然後70分是隨機資料,不會出現鏈卡你,所以這時列舉路徑,跑不滿\(o(n\log n)\),非常可觀。

不難發現:如果乙個葉子節點被更改影響到,那麼可以肯定的是,這個葉子節點到根節點的鏈(這個鏈是唯一的)的所有值都會被取反。那麼我們來看這些操作,當操作為非或者異或的時候,那麼這個節點的值會被取反(任意乙個兒子被修改即可)。反之,如果操作為與或或,必須兩個兒子的值都被修改,才能被取反。 但是這道題一次只修改乙個葉子節點,所以不存在這種情況。

所以在每個點打乙個標記陣列,表示這個點會不會隨著兒子節點的權值變化而變化,然後維護乙個標記陣列,從上到下深搜表示這個變化會不會使得父親節點有變化。然後下傳這個標記,最後輸出對應的答案就好,整個複雜度是\(o(n)\)的。

**:

#include#include#includeusing namespace std;

const int maxn=1e6+10;

int n,ans[maxn],opt[maxn],son[maxn][2],val[maxn];

bool v[maxn];

int turn(char s)

int dfs1(int u)

void dfs2(int u)

}v[0]=0;

if(son[u][0])

dfs2(son[u][0]);

if(son[u][1])

dfs2(son[u][1]);

}int main()

dfs1(1);

v[1]=1;

dfs2(1);

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

if(opt[i]==1)

printf("%d",val[1]^v[i]);

return 0;

}

洛谷 U6931 燈光

明天就是校園活動了,小明作為場地的負責人,將一切都布置好了。但是在活動的前幾天,校園裡的燈卻都壞掉了,無奈之下,只好再去買一批燈。但是很遺憾的是,廠家看馬上要過年了,就沒有在進貨了,現在只剩下n個發光值不同的燈,作為負責人,你需要,想辦法配出合適的燈。廠家有n盞剩下的燈,小明需要m盞燈,因為活動舉辦...

改數 洛谷 U5398

又是一年noip,科學館的五樓 我們看下這道題,我們來模擬一下 2,3,5,7,12 這其實就是乙個a i 1 a i i的序列 那熟悉的凌波教鞭,熟悉的憨厚的聲音,那熟悉的.哦,還有那熟悉的來自未來某位神牛的發言 老師,好像有個數寫錯了 給出乙個長度為n的整數序列a,你能改動最少的數,使之滿足a ...

救命(洛谷 U4525)

xs中學的校長積勞成疾,最終由於無聊而臥病在沙發。需要藥 pi 水 gu 拯救他的生活。現在有n種藥水,編號分別為1.n,能拯救校長的藥水編號為n 每個藥水都可以購買到,但有的 很便宜,有的很貴。你還知道m種神奇的合成方法,可以將某些不同的藥水合成成為乙個新的藥水。現在,你需要求出合成出n號藥水所需...