SCOI2014 方伯伯的商場之旅 解題報告

2022-04-29 22:00:16 字數 588 閱讀 6728

我一開始的想法會被兩個相同的集合位置去重給搞死,不過應該還是可以寫的,討論起來老麻煩。

可以先欽定在\(1\)號點集合,然後往後調整一部分。

具體一點,通過字首和減去字尾和的正負性移動

寫的時候把\(sum\)壓進去搞會非常簡單

code

#include #include #define ll long long

ll dp[25][3000];int bit[25],k;

ll dfs(int dep,int sum,int limit)

ll dfs(int dep,int pos,int sum,int limit)

{ if(sum<0) return 0;

if(dep==0) return sum;

if(!limit&&~dp[dep][sum]) return dp[dep][sum];

ll ret=0;

for(int i=0,up=limit?bit[dep]:k-1;i<=up;i++)

ret+=dfs(dep-1,pos,sum+(dep2019.2.23

SCOI2014 方伯伯的商場之旅

方伯伯有一天去參加乙個商場舉辦的遊戲。商場派了一些工作人員排成一行。每個人面前有幾堆石子。說來也巧,位置在 i 的人面前的第 j 堆的石子的數量,剛好是 i 寫成 k 進製後的第 j 位。現在方伯伯要玩乙個遊戲,商場會給方伯伯兩個整數 l,r。方伯伯要把位置在 l,r 中的每個人的石子都合併成一堆石...

SCOI2014 方伯伯的商場之旅

題目描述 方伯伯有一天去參加乙個商場舉辦的遊戲。商場派了一些工作人員排成一行。每個人面前有幾堆石子。說來也巧,位置在 i 的人面前的第 j 堆的石子的數量,剛好是 i 寫成 k 進製後的第 j 位。現在方伯伯要玩乙個遊戲,商場會給方伯伯兩個整數 l,r 方伯伯要把位置在 l,r 中的每個人的石子都合...

方伯伯的商場之旅 SCOI2014

方伯伯有一天去參加乙個商場舉辦的遊戲。商場派了一些工作人員排成一行。每個人面前有幾堆石子。說來也巧,位置在 i 的人面前的第 j 堆的石子的數量,剛好是 i 寫成 k 進製後的第 j 位。現在方伯伯要玩乙個遊戲,商場會給方伯伯兩個整數 l,r 方伯伯要把位置在 l,r 中的每個人的石子都合併成一堆石...