題目**ccf csp
思路分析
我覺得我的思路沒有問題,可是執行n >= 1000時就錯誤了,先記在這裡。
思路:每次讀完乙個**樣例,然後存在乙個string陣列;
進行尋找配對時,如第乙個程序l0
是r1 s1
,第二個程序l1
是s0 r0
,那麼執行的時候,根據l0
接受來自l1的訊號,那麼直接將l1的第乙個訊號s0
來進行比較,若滿足,就可同時消去這兩個訊號,然後依次進行。如不滿足,那麼將l1中的第乙個訊號又作為新的比較物件,即l1
需要傳送到l0
,那麼將執行緒l0
的訊號與此比較,以此類推。
為了防止有閉圈存在,進行標記。
**解析
#include
#include
#include
using namespace std;
int t, n;
//樣例**數,程序數
string* process;
//程序序號 : 0 ,1,2...
bool ans = false;
bool visited[
10001];
//判斷函式
void
check
(int len)
}//全部為空時
if(flag ==0)
}if(visited[cnt]
)//之前被訪問過,但沒有消釋標記
break
; pre = process[cnt]
.substr(0
,2);
visited[cnt]
= true;
//標記被訪問true
//不存在與之對應執行緒時
if(process[pre[1]
-'0'].
size()
==0)break
;//滿足pre發,下乙個收
if(cnt == process[pre[1]
-'0'].
substr(0
,2)[
1]-'0'
)else
cnt = pre[1]
-'0';}
ans = false;
return;}
intmain()
}}return0;
}
CCF CSP題解 201903 4 訊息傳遞介面
求並行的各個程序,且程序內部順序執行的情況下,會不會出現 死鎖 首先用 n 將每個程序讀入。最後過不了居然是因為 str 開小了 悲喜交加。儲存在 中,並記錄每個程序的指令數 instnum 然後就是模擬。instcmp 記錄每個程序已完成的指令數,instblk 記錄每個程序是否阻塞,numcmp...
2019 3 第十六次CCF CSP認證心得
第一題大致就是求n個整數中位數。是個送分題,但是題目描述如果中位數是分數,則四捨五入後保留小數點後一位。真心沒懂,難道一些整數的中位數不是只會是整數或者x.5兩種情況麼,我應該沒有理解錯中位數和平均數吧。第二題求中綴表示式,題目描述中說所有的乘號用小寫x代替我是後來才知道的。應該只能得30分了。能不...
Android訊息傳遞之元件間傳遞訊息
前言 上篇學習總結了android通過handler訊息機制實現了工作執行緒與ui執行緒之間的通訊,今天來學習一下如何實現元件之間的通訊。本文依然是為學習eventbus做鋪墊,有對比才能進步,今天主要介紹在eventbus出現之前的實現方式,通過intent方式這裡不做介紹。需求場景 方式一 通過...