洛谷 P1416 攻擊火星

2021-07-24 09:57:28 字數 917 閱讀 7418

題目描述

一群外星人將要攻擊火星。

火星的地圖是乙個n個點的無向圖。這夥外星人將按照如下方法入侵,先攻擊度為0的點(相當於從圖中刪除掉它),然後是度為1的點,依此類推直到度為n-1的點。

所有的點度統計是動態統計的。(乙個點刪掉後,與之相連的點的點度都會-1)。外星人攻擊度為某個數的點時是同時攻擊的。

你需要設計這個圖的邊的方案來使得未被攻擊的點最多。

輸入輸出格式

輸入格式:

輸入檔案包含一行乙個整數n。

輸出格式:

一行乙個整數,表示最多的最後未被攻擊的點。

輸入輸出樣例

輸入樣例#1:

3輸出樣例#1: 1說明

【樣例解釋】

①-②-③,這樣首先刪掉度為1的①和③,此時②度數為0,不會被刪去。

【資料範圍】

對於20%的資料1<=n<=10

對於100%的資料1<=n<=50000

【題目**】

tinylic改編

【分析】

結論題…

真的好神奇…

by tinylic

經過找規律可以發現答案為n-2.

以下是證明:

令d[i]為i 的度數。

考慮乙個點i 不被刪去的條件,必然是前面與i 相鄰的點j(可以是多個)被刪去,導致d[i]

減小至小於等於d[j].

1)易知ans!=n。

2)考慮ans能否是n-1,也就是只刪乙個點,設這個點為i。

因為i 是唯一被刪去的點,所以d[i]一定不是最大的,即d[i]

#include

#include

using

namespace

std;

int main()

洛谷 P1088 火星人

題目描述 人類終於登上了火星的土地並且見到了神秘的火星人。人類和火星人都無法理解對方的語言,但是我們的科學家發明了一種用數字交流的方法。這種交流方法是這樣的,首先,火星人把乙個非常大的數字告訴人類科學家,科學家破解這個數字的含義後,再把乙個很小的數字加到這個大數上面,把結果告訴火星人,作為人類的回答...

洛谷 P3356 火星探險問題

給出一張地圖,上面有一些石塊或障礙,現在有一些運載車從左上角出發,要去右下角,只能向右或向下走,每個石塊只能收集一次,輸出收集到最多石塊的路徑.多個運載車,不難想到是網路流,但難點在於每個石塊最多收集一次,而且要收集最多石塊.可以用費用流來做,每個點拆成兩個入點向出點連一條流量為inf,費用為0的邊...

洛谷 P1088 火星人

題目描述 人類終於登上了火星的土地並且見到了神秘的火星人。人類和火星人都無法理解對方的語言,但是我們的科學家發明了一種用數字交流的方法。這種交流方法是這樣的,首先,火星人把乙個非常大的數字告訴人類科學家,科學家破解這個數字的含義後,再把乙個很小的數字加到這個大數上面,把結果告訴火星人,作為人類的回答...