uva 11795洛克人的難題(集合dp)

2021-07-02 08:00:37 字數 622 閱讀 9481

題意:給定乙個初始**,可以消滅編號1-i的人

每消滅乙個機械人,獲得其**。

求總共可以有多少種方法消滅所有的機械人。

思路很簡單,集合的動態規劃,但要注意的是,由於16!會爆int,所以ans要用ll型別,之前一直wa就是因為沒注意這個問題......... 上碼

#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;  

#define ll long long

const int maxn=20;

int kill[maxn][maxn];

ll ans;

int n;

int ki[maxn];

ll d[(1<<16)+10];

ll dp(int s)

for(int i=1;i<=n;i++) ki[i]=kill[0][i];

ans=dp(0);

printf("case %d: %lld\n",++kase,ans);

}}



1179結題報告

我對已經非常失望了。也不能和文字分開了。不知道是出了什麼毛病。挺討厭亂七八糟!這個題是典型的dp,由低往上遞推。公式很簡單。需要注意乙個地方就是負負得正。不僅需要儲存一段區間的最大值,也需要儲存最小值。關於這一點我也是看了discuss後才明白的。至於為什麼要這樣,想想也能想明白。就不多說了。共參考...

HDU 1179 (最大匹配)

題意 n個巫師,m個魔杖,求最大匹配 思路 二分圖 求最大匹配 ac 求 n m 的最大匹配 include include include include include includeusing namespace std const int maxn 105 bool used maxn in...

學軍OJ題解 1179 約會

學軍oj,題號1179,鏈結 也可以到 小藍準備去和小紅約會,小藍和小紅居住在乙個平面直角座標系中,小藍的家在 0,0 位置,小紅的家在 a,b 位置,小藍每一步可以往上下左右中的任意乙個方向移動乙個單位,換句話說,他可以從 x,y 走 到 x 1,y x 1,y x,y 1 x,y 1 中的乙個位...