大佬的難題

2021-08-13 10:33:33 字數 834 閱讀 7759

給n個三維座標點,滿足每維座標都是1-n的排列,求三維偏序。

注意到任意兩個位置,都有乙個位置有至少兩維比另乙個位置的對應兩維大,於是可以容斥,那麼只需要做二維偏序。

#include

#include

#define fo(i,a,b) for(i=a;i<=b;i++)

using

namespace

std;

typedef

long

long ll;

const

int maxn=2000000+10;

long

long seed;

struct dong

void gen(int *a)

int lowbit(int x)

void change(int x)

}int query(int x)

return t;

}void work()*/

i=1;

while (i+2

<=n)

j=i;

fo(i,j,n)

}bool cmpa(int x,int y)

work();

//czy=1;

fo(i,1,n)

work();

czy=0;

//sort(id+1,id+n+1,cmpb);

fo(i,1,n)

work();

ans-=(ll)n*(n-1)/2;

ans/=2;

printf("%lld\n",ans);

}

大佬的難題

大意 給你 3 個長度為 n 的排列 求 a x a y b x b y c x c y n 10 5 1 x,y n 題解 直接容斥,設sx,y表示滿足上述式子的數量 答案即為sx,y 3 容易發現sx,y只能取2,3 設pa,b 為a,b兩個陣列滿足 ax 然後顯然pa,b pb,c pa,c ...

CDUTCM 1216任大佬的數學難題

ps 這道題卡了很久,到最後都沒有ac,題意很清楚明了,認真分析一下就可以發現就是乙個公式c k,m a的 k m 次方乘以b的m次方,但由於k,n,m都很大,所以求c k,m 時不能用常規的取模運算,具體為什麼點這裡,大佬講的很詳細,除法不能取模,所以就要用乘法逆元,具體我也不是很懂,記住要這樣用...

清華集訓2017模擬12 10 大佬的難題

1 n 2e6,時限 2.5s 容斥原理瞎搞。設a,b,c分別為滿足三個條件的集合。根據容斥原理,有 a b c a b c a b a c b c a b c 而a b c同時會等同於總數n n 1 都大於的個數 即都小於的個數a b c 所以 n n 1 a b c a b c a b a c ...