题解 P5886 【Hello, 2020!】

· · 题解

本题作为月赛的签到题,思维难度低。

题意是有 n 位出题人,m 位选手,并给出一个数 p

每位出题人会钦定一些选手(同一位出题人钦定的选手不同)。

问有多少名选手恰好被钦定了 p 次。

对选手开一个数组,记录每位选手被钦定的次数。

每次被钦定的时候,对应的数组元素加一。

最后数一下数组中有多少个元素恰好为 p,并输出即可。

咳咳,贴个代码。

施「require('fs').readFileSync」於「「/dev/stdin」」。名之曰「數據」。
施「(buf => buf.toString().trim())」於「數據」。昔之「數據」者。今其是矣。
施「(s => s.split(/[ \n]/))」於「數據」。昔之「數據」者。今其是矣。

有數一。名之曰「子」。

夫「數據」之一。取一以施「parseInt」。名之曰「出題人」。
加「子」以一。夫「數據」之其。取一以施「parseInt」。名之曰「選手」。
加「子」以一。昔之「子」者。今其是矣。
加「子」以一。夫「數據」之其。取一以施「parseInt」。名之曰「正確的預判個數」。
加「子」以一。昔之「子」者。今其是矣。

吾有一列。名之曰「數組」。為是「選手」遍。充「數組」以零也。

有數零。名之曰「甲」。

恆為是。若「甲」等於「出題人」者乃止也。
  加「子」以一。夫「數據」之其。取一以施「parseInt」。名之曰「預判」。
  加「子」以一。昔之「子」者。今其是矣。
  有數一。名之曰「易」。恆為是。若「預判」小於「易」者乃止也。
    加一以「易」。昔之「易」者。今其是矣。
    加「子」以一。夫「數據」之其。取一以施「parseInt」。名之曰「編號」。
    加「子」以一。昔之「子」者。今其是矣。
    吾有一數。名之曰「錢」。
    昔之「錢」者。今「數組」之「編號」是矣。
    加一以「錢」。昔之「數組」之「編號」者。今其是矣云云。
  加一以「甲」。昔之「甲」者。今其是矣。
云云。

有數零。名之曰「輸出」。

吾有一列。名之曰「人贏」。

有數零。名之曰「乙」。恆為是。若「乙」等於「數組」之長者乃止也。
  加一以「乙」。昔之「乙」者。今其是矣。
  若「數組」之「乙」等於「正確的預判個數」者 充「人贏」以「乙」也。
  若「數組」之「乙」等於「正確的預判個數」者 加一以「輸出」。昔之「輸出」者。今其是矣云云。
云云。

吾有一言。曰「輸出」。書之。

施「(s => s.join(' '))」於「人贏」。書之。

注曰。「「勿忘今天下大雨」」。