\(n\)個科學家每個科學家只懂得一門語言,所有語言用\(1\sim 10^\)的數字進行標號,
\(m\)部電影,每部電影的語音和字幕採用不同的兩種語言,
所有科學家看同一部電影,如果乙個科學家能聽懂語音很開心,看懂字幕比較開心,都不懂不開心
選擇一部電影,很開心的人數最多,很開心的人數相同時比較開心的盡量多
\(\begin1 \leq n, m \leq 200000 \\ 1 \leq a_, b_, c_ \leq 10^\end\)
將所有語言都存入到乙個vector中,排序後去重,用下標來代表對應語言,即將語言編號離散化為下標,
語言序列有序,每次二分查詢即可,rec記錄懂每種語言的專家的人數
\(o ( (n + m) · log (n+m))\)
#includeusing namespace std;
#define rep(i,a,n) for(int i=a;ialls;
int get(int x)
int main()
}printf("%d\n", ans + 1);
}
AcWing 103 電影(離散化)
problem 莫斯科正在舉辦乙個大型國際會議,有n個來自不同國家的科學家參會。每個科學家都只懂得一種語言。為了方便起見,我們把世界上的所有語言用1到109之間的整數編號。在會議結束後,所有的科學家決定一起去看場電影放鬆一下。他們去的電影院裡一共有m部電影正在上映,每部電影的語音和字幕都採用不同的語...
AcWing 103 電影 離散化
題目鏈結 沒什麼好說的,就照著題意做就行了,不過要最後輸出的編號是電影在c或者d陣列裡的下標而不是值。之前用unordered map跑了1500ms,這個跑了350ms,常數真是個可怕的東西 const int maxn 2e5 10 int a maxn b maxn c maxn d maxn...
科學家看電影(離散化)
離散化的方法大致有兩種 利用c 中的stl 直接利用陣列來儲存離散化後的資料 本題我們採用第二種。先分析一下題目大意 n位科學家去看電影,電影院上映了m部電影,每個科學家只會一種語言,先輸入科學家的人數n 可能有多個科學家懂同一種語言 在輸入科學家懂的語言,輸入電影院上映的電影數量m,接下來的一行輸...