牛客挑戰賽30 A 小G數數

2021-09-12 07:56:07 字數 620 閱讀 5288

給你乙個1~n的排列a1,a2...ana1,a2...an,問有多少個四元組(a,b,c,d),滿足a < b < c < d且aa示例1

複製

4

1 3 2 4

複製

1
思路:這道題暴力也可做出來,夠毒瘤的,不過暴力是不夠的,應該用dp,,,定義f[i][j]表示第j個位置比i小的數的數量,,,然後雙迴圈遍歷陣列。。

#include#define inf 0x3f3f3f3f

#define ll long long

#define mem(ar,num) memset(ar,num,sizeof(ar))

#define me(ar) memset(ar,0,sizeof(ar))

#define lowbit(x) (x&(-x))

#define ios ios::sync_with_stdio(false)

#define debug coutf[i][j] = f[i][j - 1];}}

for(int i = 1; i <= n; i++) else }}

cout << ans;

return 0;

}

牛客挑戰賽30 A 小G數數

思路 先考慮中間b,c的情況,bac,我們先找出所有滿足b,c的情況並存到陣列裡,注意陣列大小 然後,對於每對b,c,求出可以的aa和ad數量,相乘得到針對這對b,c的所有可能 然後所有結果相加。如下 include include include include include include i...

牛客挑戰賽30 T3 小G砍樹

link 題目大意 n個節點的帶標號無根樹。每次選擇乙個度數為1的節點並將它從樹上移除。問總共有多少種不同的方式能將這棵樹刪到只剩 1 個點。兩種方式不同當且僅當至少有一步被刪除的節點不同。題解 先考慮1號店最後移除時候的貢獻,我們可以欽定1號點為根,並欽定他最後移除 然後就是乙個樹形dp 設 f ...

牛客挑戰賽30 C 小G砍樹 換根

題面 先考慮1號店最後移除時候的貢獻,我們可以欽定1號點為根,並欽定他最後移除 然後就是乙個樹形dp 設fifi表示i號點子樹移除方案數量,sizeisizei表示1為根時子樹大小 顯然有dp式子fx sizex 1 sizei fifx sizex 1 sizei fi 滿足1為根時x是i的爹 然...