洛谷 T24242 購物券 (資料已加強)

2021-09-07 07:50:45 字數 783 閱讀 2860

題目

t組資料,n個數,m為目標數,判斷這n個數中任意幾個數之和能否等於m

看到資料規模(231)沒法用揹包

我們考慮所有的狀態,一共240種,也會超時

所以只需要暴力列舉前一半數存到雜湊表中,上限220;再列舉後一半數,查詢滿足目標數的另一半,上限也是220

用dfs列舉所有數,到達上限時插入或查詢

#include#define p 4000043//質數 

#define h(x) x%p

using namespace std;

int n,m,mid;

int a[p],x[50];

bool flag;

int read()

//快讀

int loc(int x)

//查詢關鍵字在雜湊表的位置

void dfs1(int lev,int sum)

if(lev>mid)

if(sum+x[lev]<=m) dfs1(lev+1,sum+x[lev]);//不超過上限就加

dfs1(lev+1,sum);

}//列舉前一半數的狀態

void dfs2(int lev,int sum)

if(lev>n)

if(sum+x[lev]<=m) dfs2(lev+1,sum+x[lev]);//不超過上限就加

dfs2(lev+1,sum);

}//列舉後一半數的狀態

int main()

}

洛谷 T156530 儒略曆

在 1582 年之前,以 4 為倍數的年份為閏年。正常情況下,一年中一月到十二月的天數分別是 31,28,31,30,31,30,31,31,30,31,30,31 天。如果這年是閏年,那麼二月則有 29 天。但某位皇帝發現這麼做其實不夠準確,會造成誤差,因此規定從 1582 年開始,以 4 為倍數...

洛谷T51924 忘情

二分上界有多大開多大 二分上界有多大開多大 二分上界有多大開多大 重要的事情說三遍 又被bright神仙帶著做題了 先無腦上wqs二分 我們可以把這個柿子畫一下,區間的花費就變成 sigema l r i s i 1 2了 那麼這個東西經過我艱苦的畫柿子證明是滿足四邊形不等式的 然後就和貞魚那題一樣...

洛谷T96628 統計

給定 n m 求十進位制 n 位數每個位數之積等於k的方案數 dp 高精 數學 考慮 k 0 的情況,由於可以有若干個 0 所以方案數為 sum limits times 9 考慮另外的情況,我們將 k 分解質因數,如果 k 還有除了 2 3 5 7 之外的質因數那麼方案數為 0 其餘的情況我們考慮...