思路:
先考慮中間b,c的情況,bac,我們先找出所有滿足b,c的情況並存到陣列裡,注意陣列大小
然後,對於每對b,c,求出可以的aa和ad數量,相乘得到針對這對b,c的所有可能
然後所有結果相加。
**如下:
#include#include#include#include#include#include#include#include#include#includeusing namespace std;
#define ll long long
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
typedef pairp;
const int inf=0x3f3f3f3f;
const int n=515,mod=32767;
struct aqq[130000];
int a[n];
int main()
int cnt=0;
for(int i=1;ia[left]&&a[j]>a[right])num2++;
}//printf("%d %d %d %d\n",left,right,num1,num2);
ans+=num1*num2;
}printf("%lld\n",ans);}/*
61 2 5 4 7 8
*/
(腦子是個好東西,希望我有qwq) 牛客挑戰賽30 A 小G數數
給你乙個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...
牛客挑戰賽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的爹 然...