題意:給定乙個初始**,可以消滅編號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 中的乙個位...