最近狀態很不對勁啊,總是莫名其妙忘掉一些東西,急需提公升狀態!
顯然這就是水題解的理由。
魄羅餅乾大甩賣!
有 \(n\) 個人在排隊購買魄羅餅乾,這些人要麼是皮城人,要麼是祖安人(無貶義)。
其中 \(a_i>0\) 表示祖安人,\(a_i<0\) 表示皮城人。
現在賣餅乾的商人想要知道有多少種排隊方式滿足條件,你能幫幫他嗎?
\(1\le n\le 5000;1\le |a_i|\le n.\)
4
2 -2 -3 4
6
這類要求在某時間之前做事的條件用代價延時計算即可輕鬆解決。計數同理。
因此這道題可以順序解決,直接令 \(dp_\) 表示前 \(i\) 個位置有 \(j\) 個皮城人的方案數,那麼對於皮城人,我們有:
\[dp_\leftarrow dp_\times (s_1-j)+dp_
\]其中 \(s_1\) 表示到目前位置,有多少個皮城人能夠在此處排隊。
對於祖安人,我們之前說了,計數延後計算,於是我們在 \(i\) 這個位置只需要滿足 \(|a_k|=i\) 的祖安人條件即可,令 \(|a_k|=i\) 的祖安人有 \(cnt2_\) 個,\(|a_k|的祖安人有 \(s_2\) 個,則有:
\[dp_\leftarrow dp_\times a(i-j-s2,cnt2_i)
\]時間複雜度 \(o(n^2)\)。
//12252024832524
#include #define tt templateusing namespace std;
typedef long long ll;
const int maxn = 5005;
const int mod = 1e9+7;
int n;
ll read()
while(c >= '0' && c <= '9')
return x * f;
}tt void put1(t x)
tt void put(t x,char c = -1)
tt t max(t x,t y)
tt t min(t x,t y)
tt t abs(t x)
int fac[maxn],ifac[maxn];
int qpow(int x,int y)
return ret;
}void init(int x)
ll a(int x,int y)
int cnt1[maxn],cnt2[maxn],dp[2][maxn];
int main()
int s1 = 0,s2 = 0,now = 0;
dp[0][0] = 1;
for(int i = 1;i <= n;++ i)
if(cnt2[i]) for(int j = 0;j <= i;++ j) dp[to][j] = a(i-j-s2,cnt2[i]) * dp[to][j] % mod;
s2 += cnt2[i];
now ^= 1;
} put(dp[now][s1],'\n');
return 0;
}
指標的魅力
魅力1 演算法之找我的名字 簡單,靈活,快捷 以下演算法功能是在乙個字串中查詢長度為8的乙個字元子串,比如我的名字 zhanhang 就是乙個8長度的字串。演算法解釋 因為字串myname的長度為8,也就是它是乙個8位元組的記憶體連續的陣列,而myname指向這一段記憶體。又long long 指標...
時方的魅力
自從去年隨方老學習傷寒之後,臨床習慣用經方處理問題,療效自然提高不少,但是臨床並非時方不用,遇到典型的時方方證,大膽投之,效果也是不錯的,細細用經方的思想來品味時方中的經典,也能品出一些經方的味道來。頭痛久治不癒案 曠某 女 35歲 南嶽鎮教師 2009年6月初首診 頭痛達15年之久,初期僅偶發,時...
漢語的魅力
語音是稍縱即逝的,無法穿越時空儲存下來,於是人類發明了文字。這方面中國人做的很到位 魯迅曾說 我國文字有三美,意美以感心,音美以感耳,形美以感目。不是詩卻有詩的韻味 不是畫,卻有畫的美感 它不是舞,卻有舞的節奏 它不是歌卻有歌的旋律。那些來自千年前的浪漫 再沒有其他語言能描繪出那種美 but eve...