給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 ...