比賽鏈結
輸入描述:
第一行乙個數 n。 然後 n 行,每行兩個數表示 li,ri。輸出描述:
輸出一行乙個數表示答案。示例1
輸入
512
2334
4556
輸出
26
備註:
1 ≤ n , li , ri ≤ 100
xi的是在 [li , ri]中任選乙個,然後構成值,所以可以用分組揹包來做
dp[i][j]前i個數字能否構成j
那麼dp [ i -1 ] [ j - x[ i ]* x [ i ] ] = = 1則說明加上第i個數則可以構成,x [ i ] 的取值範圍 是題目所給 l[i]和r[i]
這樣做肯定不行,哪那麼簡單
複雜度過高,我們需要壓縮下
先注意dp的值無疑是0或1,所以可以用bitset.
bitset 在 bitset 標頭檔案中,它是一種類似陣列的結構,它的每乙個元素只能是0或1,每個元素僅用1bit空間。
這樣,我們用dp [ i ]表示第i行的01串
dp [ i ]= dp [ i ] | ( d p [ i - 1 ] < < ( x [ j ] 2 ) )
bitset還有自帶的求1的個數的count,這樣就更方便了
#include
#include
using
namespace std;
typedef
long
long ll;
int num1,num2;
const
int maxn=
130;
int a[maxn]
; bitset<
1000009
>dp[
130]
;int n;
intmain()
cout<
.count()
;return0;
}
牛客網 每日一題 5月9日 過河
時間限制 c c 1秒,其他語言2秒 空間限制 c c 131072k,其他語言262144k 64bit io format lld在河上有一座獨木橋,乙隻青蛙想沿著獨木橋從河的一側跳到另一側。在橋上有一些石子,青蛙很討厭踩在這些石子上。由於橋的長度和青蛙一次跳過的距離都是正整數,我們可以把獨木橋...
牛客網 每日一題 5月19日題目精講 比賽
時間限制 c c 1秒,其他語言2秒 空間限制 c c 131072k,其他語言262144k 64bit io format lld你在打比賽,這場比賽總共有12個題 對於第i個題,你的隊伍有a i 的機率解決她 如果解決不了她呢?由於所有人討論的都很大聲 所以你有b i 的概率從左邊那個隊那裡聽...
牛客網 每日一題 5月27日題目精講 貨幣系統
在的國度中共有n種不同面額的貨幣,第i種貨幣的面額為a i 你可以假設每一種貨幣都有無窮多張。為了方便,我們把貨幣種數為n 面額陣列為a 1 n 的貨幣系統記作 n,a 在乙個完善的貨幣系統中,每乙個非負整數的金額x 都應該可以被表示出,即對每乙個非負整數x,都存在n個非負整數t i 滿足a i x...