題目鏈結
沒什麼好說的,就照著題意做就行了,不過要最後輸出的編號是電影在c或者d陣列裡的下標而不是值。之前用unordered_map跑了1500ms,這個跑了350ms,常數真是個可怕的東西
const int maxn = 2e5+10;
int a[maxn], b[maxn], c[maxn], d[maxn], cnt[maxn];
int bnsh(int l, int r, int x)
return -1;
//我們二分查詢在a陣列是否存在這個數
//如果不存在就是-1存在就是它的下標,這樣來進行離散化
}int main(void)
for (int i = 0; iint maxx = 0, maxx2 = 0, ans = 1;
for (int i = 0; ielse if (c[i]!=-1 && d[i]!=-1 && maxx==cnt[c[i]] && maxx2}
printf("%d\n", ans);
return 0;
}
AcWing 103 電影(離散化)
problem 莫斯科正在舉辦乙個大型國際會議,有n個來自不同國家的科學家參會。每個科學家都只懂得一種語言。為了方便起見,我們把世界上的所有語言用1到109之間的整數編號。在會議結束後,所有的科學家決定一起去看場電影放鬆一下。他們去的電影院裡一共有m部電影正在上映,每部電影的語音和字幕都採用不同的語...
離散化 電影
n 個科學家每個科學家只懂得一門語言,所有語言用 1 sim 10 的數字進行標號,m 部電影,每部電影的語音和字幕採用不同的兩種語言,所有科學家看同一部電影,如果乙個科學家能聽懂語音很開心,看懂字幕比較開心,都不懂不開心 選擇一部電影,很開心的人數最多,很開心的人數相同時比較開心的盡量多 begi...
科學家看電影(離散化)
離散化的方法大致有兩種 利用c 中的stl 直接利用陣列來儲存離散化後的資料 本題我們採用第二種。先分析一下題目大意 n位科學家去看電影,電影院上映了m部電影,每個科學家只會一種語言,先輸入科學家的人數n 可能有多個科學家懂同一種語言 在輸入科學家懂的語言,輸入電影院上映的電影數量m,接下來的一行輸...