codevs1409 攔截飛彈 2

2021-07-23 02:20:48 字數 822 閱讀 8419

(題目鏈結)

題意:給出n個三維的飛彈,每次攔截只能打x,y,z嚴格上公升的若干個飛彈,求最多能一次攔截下多少個飛彈,以及最少攔截幾次將所有飛彈全部攔截。

solution

第一問直接排序後n²的dp即可。

第二問我們考慮二分圖匹配,連邊後轉換模型成為最小路徑覆蓋。

**:

// codevs1409

#include

#include

#include

#include

#include

#include

#define ll long long

#define inf 2147483640

#define pi acos(-1.0)

using

namespace

std;

const

int maxn=1010;

struct edge e[maxn*maxn];

struct point p[maxn];

int head[maxn],f[maxn],cnt,n,vis[maxn],t[maxn];

void link(int u,int v)

bool cmp(point a,point b)

}return0;}

int main()

printf("%d\n",ans);

ans=cnt=0;

for (int i=1;i<=n;i++)

printf("%d",ans);

return

0;}

codevs1409 攔截飛彈2

問題描述 一場戰爭正在 a 國與 b 國之間如火如荼的展開。b 國憑藉其強大的經濟實力開發出了無數的遠端攻擊飛彈,b 國的領導人希望,通過這些飛彈直接毀滅 a 國的指揮部,從而取得戰鬥的勝利 當然,a 國人民不會允許這樣的事情發生,所以這個世界上還存在攔截飛彈。現在,你是一名 a 國負責飛彈攔截的高...

codevs 攔截飛彈 1044

題目描述 description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈...

codevs1044攔截飛彈

這個題第一問是求最長下降子串行,第二問可以轉化成求最長上公升子串行,為什麼?因為我們每遇到有hi hj的情況 i j 都要再使用一枚飛彈,因為飛彈只處理hi hj的情況嘛,很好理解的吧 所以 如下 完全可以更短 include include include include using namesp...