給你乙個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的爹 然...