UVA 10604 進制式dp

2021-06-29 07:57:45 字數 575 閱讀 7590

直接最多有6中化學藥物。那麼每種最多為10,且要表示改位存在要加1,採用十二進位制,最大值在3000000左右,又可用狀態比較少,使用記憶花搜尋。

#include #include #include #include #include #include #include using namespace std;

const int maxk = 3501000;

int d[maxk],f[7][7],mi[10],t[7][7],n;

bool vis[maxk];

int sub(int& num,int i)

int digit(int num,int i)

int dp(int j,int num)

d[j] = 1e9;

for(int k=0;k1&&d2>1)||(k==g&&d1>=3))

}return d[j];

}int main()

scanf("%s",str);

printf("%d\n",dp(sum,k));

}return 0;

}

容斥 二進位制UVA 11806

問題是求四個邊都有隊員的排列組合,根據容斥原理可以轉化為對立問題的求解 全集為s c n m,k 該區域有k個隊員的全部排列組合,a 最左邊沒有隊員的全部種數,b 最右邊沒有,c 最上邊沒有,d 最下邊沒有,則答案就是屬於全集s但不屬於 a,b,c,d中任何乙個集合,根據容斥 ans s a b c...

uva 11464 偶數矩陣 (二進位制表示法)

題目大意 有乙個n n的01矩陣,你的任務是把盡量少的0變成1,但不能將1變成0 以使得每個元素的上下左右的元素 若存在 均為偶數。思路 如果暴力列舉每乙個位置的話時間複雜度為 2 的255 次方,肯定不行 但是如果只列舉第一行,其他下面幾行都能夠通過 上邊的來固定是0還是1。時間複雜度就是 2的1...

UVA 213 資訊解碼(二進位制 位運算)

出自劉汝佳演算法競賽入門經典第四章。考慮下面的01串串行 0,00,01,10,000,001,010,011,100,101,110,0000,0001,1101,1110,00000,首先是長度為1的串,然後是長度為2的串,依此類推。如果看成二進位制,相同長度的後 乙個串等於前乙個串加1。注意上...