国产美女主播视频一区_国产精品蜜臀在线观看_亚洲成人动漫一区_亚洲视屏在线播放

首頁 > 體育

今日熱文:『題解』BZOJ3462 DZY Loves Math II

來源:博客園 時間:2023-06-25 07:18:34


(資料圖片)

前言

沒啥前言,擺了擺了。

題面長這個樣子

思路

沒啥思路,擺了擺了。這題總的來說挺難想的,思考過程比較繁瑣,我也就不辭辛勞列舉一下。

  1. 顯然,條件 \(2\) 和條件 \(3\) 很好說,放一邊。

  2. 我們設一個質數數列 \(\{p_k\}\) ,假定這些質數是由 \(S\) 分解坤坤數質因數得到的,若要滿足條件 \(4\) (即 \(\mathbb{lcm}\{p_k\} = S\) ) ,則需要滿足 \(\{p_k\}\) 中的元素兩兩互不相等,否則無解。\(\\\) 證明顯然。 \(\\\) 設 \(sum = \sum_{i = 1}^{k}{p_i}\) ,我們討論另一種無解的情況。當 \(n < sum\) 時無解。\(\\\) 證明如下:\(\\\) 因為 \(n\) 一定由 \(\{p_k\}\) 中的全部元素組成,當然,每個元素可以有多個。若 \(n < sum\) ,則 \(n\) 一定不能由 \(\{p_k\}\) 中的全部元素組成(因為在這種情況下 \(sum = \sum_{i = 1}^{k}{p_i} > n\) ,就算每個元素只選一個,這些選的元素相加也會比 \(n\) 大),所以便不能滿足條件 \(4\) 。

  3. 下面我們只考慮有解的情況。乍一看,這個題很像多重背包。\(\\\) 你說得對,但是這題數據范圍很大,只用多重背包會炸掉。\(\\\) 所以,我們便要采取一些優化手段。\(\\\) 設 \(S = p_i \times k_i\) , 則 \(k_i\) 的含義便是除了坤坤子 \(p_i\) 外所有坤坤子的乘積。\(\\\) 設 \(n = \sum_{i = 1}^{k}{p_i \times c_i}\) ,\(c_i\) 是坤坤子 \(p_i\) 出現的個數,對于每一項 \(p_i \times c_i\) ,我們可以寫成 \(p_i \times (x_i \times k_i + y_i),(y_i < k_i)\) ,拆開括號得 \(p_i \times k_i \times x_i + p_i \times y_i\) ,即 \(S \times x_i + p_i \times y_i , (p_i \times y_i < S)\) 。把每一項加在一起便可得 \(n = S \times \sum_{i = 1}^{k}{x_i} + \sum_{i = 1}^{k}{p_i \times y_i} , (\sum_{i = 1}^{k}{p_i \times y_i} < k \times S)\) 。簡化一下(就不設了,知道什么跟什么對應就行)可得 \(n = a \times S + b,(b < k \times S)\) 。\(\\\) 有了這個式子(別管為什么能這么得到這個式子),我們便用加號前面的跑組合數,加號后面的跑多重背包就行。

  4. 組合數怎么跑?對于 \(a \times S\) ,因為 \(\{p_k\}\) 中每一個元素都是 \(S\) 的約數,所以每個 \(S\) 都可以用任何一個 \(p_i\) 表示。因為有 \(k\) 個坤坤數,所以 \(S\) 最多能表示成 \(k\) 種形式(有的可以不用表示),一共有 \(a\) 個這樣的數,所以轉化一下就是插板法求組合數,(根據條件 \(3\) 可知是有序的)把 \(a\) 個數分成 \(k - 1\) 個可空的部分,答案顯然是 \(\mathrm{C}_{a + k - 1}^{k - 1}\)。

  5. 背包怎么跑?我們不知道 \(a \times S\) 和 \(b\) 中是否都存在 \(p_i\) ,所以我們用 \(2\) 的 \(sum\) ,讓 \(b = b - sum\) ,保證每一個 \(p_i\) 都存在,然后我們就可以跑完全背包了。這題讓求方案數,稍微改一下就行了。我們先枚舉每一個坤坤子 \(p_i\) ,先都加上,然后再把多的減去即可(這里我犯懶了Orz)。

完結撒代碼

#include #define LL long longusing namespace std;const int MOD(1e9 + 7), maxn(2000005);inline LL read() {    LL f(1), x(0);    char c = getchar();    for (; !isdigit(c); c = getchar()) if (c == "-") f = -1;    for (; isdigit(c); c = getchar()) x = (x << 1) + (x << 3) + (c & 15);    return f * x;}LL s, q, n, cnt, sum, M, ans;LL inv[maxn], prime[maxn], v[10], dp[7 * maxn];void DP() {    dp[0] = 1;    for (int i = 1; i <= cnt; ++i) {        for (int j = 0; j + v[i] <= M; ++j) {            if (dp[j]) dp[j + v[i]] = (dp[j] + dp[j + v[i]] + MOD) % MOD;        }        for (int j = M - s; j >= 0; --j) {            dp[j + s] = (dp[j + s] - dp[j] + MOD) % MOD;        }    }}bool divide(LL n) {    LL x = n;    for (int i = 2; i <= sqrt(x); ++i) {        if (!(x % i)) {            v[++cnt] = i;            sum += i;        }        while (!(x % i)) {            ++prime[i];            if (prime[i] == 2) return false;            x /= i;        }    }    if (x > 1) {        ++prime[x];        v[++cnt] = x;        sum += x;    }        return true;}LL QuickPow(LL a, LL b, LL p) {    LL res(1);    for (; b; b >>= 1) {        if (b & 1) res = res * a % p;        a = a * a % p;    }    return res % p;}int main() {    s = read(), q = read();    if (!divide(s)) {        while (q--) {            n = read();            printf("0\n");        }        return 0;    }    M = cnt * s;    DP();    inv[1] = 1;    for (int i = 2; i <= 8; ++i) {        inv[i] = inv[i - 1] % MOD * QuickPow(i, MOD - 2, MOD) % MOD;    }    while (q--) {        n = read();        if (n < sum) {            printf("0\n");            continue;        }        n -= sum;                for (int i = 0; i < cnt && i <= n / s; ++i) {            LL a = n / s - i;            LL b = n % s + i * s;            int res1(1), res2(0);            res1 = inv[cnt - 1] % MOD;            for (int j = 1; j < cnt; ++j) {                res1 = res1 * ((a + j) % MOD) % MOD;            }            res1 %= MOD;            res2 = res1 % MOD * dp[b] % MOD;            ans = (ans + res2) % MOD;        }        ans = (ans % MOD + MOD) % MOD;        printf("%lld\n", ans);        ans = 0;    }}

相關稿件

今日熱文:『題解』BZOJ3462 DZY Loves Math II

今日視點:天通股份(600330):材料與設備共舉 研發不輟

點雄黃、釣粽子、猜謎、投壺…端午最后一天這里依然熱鬧非凡!

瓦格納人員撤離俄南部軍區總部所在區域 天天新要聞

國鐵集團:全國鐵路今日預計發送旅客1515萬人次

崔永輝調研推進城中村現代化治理工作

中俄戰略合作與烏克蘭局勢:中國應做好最壞打算_環球熱聞

每日快報!江南華南多地暴雨如注 京津冀魯等地或再挑戰40℃

環球頭條:在美國,掌握了這項技能,年入570萬不是夢

何雄會見特斯拉汽車(北京)有限公司客人 拓展合作領域豐富合作內容 提供更多新產品新技術新服務

【天天聚看點】俄稱擊退烏軍進攻 烏稱打擊俄導彈系統

端午假期交通部門加強多種出行方式聯動 今日熱門

微軟宣布恢復Win11文件管理器功能 多項經典功能回歸

從批發市場到高精尖產業園區,北京低效樓宇加速“改頭換面”|當前短訊

世界熱議:推動整改復耕須避免“一刀切” “水稻上山”引熱議 農業部門相關負責人回應網民關切

【全球新視野】創維EV6 II汽車上市:CLTC續航最高620公里,15.68萬元起

河北200萬臺農機收麥忙-速訊

強鏈延鏈贏得發展主動權——訪恒力集團董事長、總裁陳建華-每日速訊

天天頭條:江西產業鏈創新鏈高效融合 組建科技創新聯合體

玩法“上新” “暑期檔”旅游持續升溫 環球視訊

湖北經濟學院法商學院2023屆畢業生齊聚一堂參加畢業典禮_世界快看

天天視訊!【鄉村振興】年產值達2.4億!子洲黃芪種植面積達15萬畝

“藍絲帶”護考 交警將為送考車輛開辟“綠色通道”

捆綁兩年PS Plus會員,PS5主機包裝盒曝光

2023商業物業市場開發現狀分析 商業物業行業發展空間巨大_每日動態

【房地產開發】房地產/行業深度:更新改造、人均居住面積改善驅動未來住宅需求-全球簡訊

2023廣州露營房車展談下未來房車走向和期待

intel Yes!英特爾4小核處理器N100跑分達i5-7400水平_天天看熱訊

環球報道:“哪涼快哪待著” 青島威海上榜全國前十

消息稱松下將中高端空調生產撤回日本,此前曾與小米達成戰略合作 天天亮點


主站蜘蛛池模板: 视频在线一区二区三区| 亚洲欧美综合一区| 日本视频久久久| 日本一区视频在线播放| 久久久精品网站| 亚洲伊人久久综合| 国产精品爽爽爽| 久久久久高清| 欧美日韩一区在线观看视频| 91精品国产高清久久久久久久久| 国内自拍中文字幕| 久久另类ts人妖一区二区| 日韩人妻无码精品久久久不卡| 国产精品91视频| 欧美日韩高清在线观看| 国产精品aaaa| 欧美日韩大片一区二区三区| 日韩在线国产| 丝袜美腿精品国产二区| 国产精品91在线| 国产精品女视频| 国产乱子伦精品视频| 国产美女被下药99| 国产日韩精品视频| 极品日韩久久| 精品国模在线视频| 精品国内产的精品视频在线观看| 黄色国产精品一区二区三区| 激情五月开心婷婷| 国产日韩精品在线| 国产九九精品视频| 国产美女精品在线观看| 久久国产精品视频在线观看| 久久久精品影院| 久久天天躁狠狠躁夜夜躁2014 | 国产视频99| 国精产品一区一区三区视频| 九九九九免费视频| 国产精品亚洲激情| 国产不卡av在线免费观看| 丰满少妇久久久|