假面舞会
一年一度的假面舞會又開始了,每個參加舞會的人都可以在入場時選擇一個自己喜歡的面具。每個面具都有一個編號,主辦方會把此編號告訴拿該面具的人。為了使舞會更有神秘感,主辦方把面具分為k(k ≥ 3)類,并使用特殊的技術將每個面具的編號標在了面具上,只有戴第i類面具的人才能看到戴第i+1類面具 的人的編號,戴第k類面具的人能看到戴第1類面具的人的編號。 參加舞會的人并不知道有多少類面具,但是棟棟對此卻特別好奇,他想自己算出有多少類面具,于是他開始在人群中收集信息。棟棟收集的信息都是戴第幾號面具的人看到了第幾號面具的編號。如戴第2號面具的人看到了第5號面具的編號。棟棟自己也會看到一些編號,他也會根據自己的面具編號把信息補充進去。由于并不是每個人都能記住自己所看到的全部編號,因此,棟棟收集的信息不能保證其完整性。現在請你計算,按照棟棟目前得到的信息,至多和至少有多 少類面具。由于主辦方已經聲明了k≥3,所以你必須將這條信息也考慮進去。
【輸入描述】第一行包含兩個整數n、m,用一個空格分隔,n表示主辦方總共準備了多少個面具,m表示棟棟收集了多少條信息。接下來m行,每行為兩個用空格分開的整數a、b,表示戴第a號面具的人看 到了第b號面具的編號。相同的數對a、b在輸入文件中可能出現多次。
【輸出描述】輸出兩個數,第一個數為最大可能的面具類數,第二個數為最小可能的面具類數。如果無法將所有的面具分為至少3類,使得這些信息都滿足,則認為棟棟收集的信息有錯誤,輸出兩個-1。
【樣例輸入】樣例1:
6 5 1 2 2 3 3 4 4 1 3 5
樣例2:
3 3 1 2 2 1 2 3
樣例1:
4 4
樣例2:
-1 -1
50%的數據,滿足 n ≤ 300,m ≤ 1000;
100%的數據,滿足 n ≤ 100000,m ≤ 1000000。
轉載于:https://www.cnblogs.com/Ackermann/p/5716283.html
總結
- 上一篇: 设置和取消代理
- 下一篇: AngularJs Cookie 的使用