10 29 T2 magic 逆序對 字首和

2021-08-30 11:31:04 字數 1126 閱讀 1162

先特判掉-1,-2

如何?? 對a和b分別求一下字首和,如果sum[i]==sum[i+k]則說明這個區間(i-k)和為0

考慮修改其實就是把a的字首和相鄰兩個元素交換順序

那麼問題轉化為把1-n的排列a通過最少的交換次數得到給定的排列b,求最少方案數

這個問題用樹狀陣列求(或歸併排序)

#include#include#include#includeusing namespace std;

typedef long long ll;

ll read()

while(ch>='0'&&ch<='9')

return x*f;

}const ll n=1e5+100;

ll a[n],b[n],s1[n],s2[n],s3[n],s4[n];

ll x[n],y[n];

ll c[n];

ll lb(ll x)

void modify(ll x)

}ll query(ll x)

return ret;

}int main()

for(i=1;i<=n;i++)

sort(s1+1,s1+1+n);

sort(s2+1,s2+1+n);

bool flag1=0;

bool flag2=0;

for(i=1;i<=n;i++)

if(s1[i]!=s2[i])

if(flag1&&flag2)

}if(flag1)

if(flag2)

for(i=1;i<=n;i++)

for(i=1;i<=n;i++)

for(i=1;i<=n;i++)

for(i=1;i<=n;i++)

ll cnt=0;

for(i=1;i<=n;i++)

cout<

return 0;

}

使用t2t來編寫文件

txt2tags 示例 zh sample zh.html 看這個就能很快熟悉相關語法了 教程 zh manpage zh.html txt2tags學習 bluefrog bluefrog.wu gmail.com date m d y encoding utf 8 target html 一級標...

7 24校內交流賽 T1 T2

乙個腦洞很大的題,將輸入的所有數異或起來輸出就好了 話說我為什麼這麼喜歡用異或啊 結論題 當某個字串長度恰巧為3 k 1時,從它往下的第3 k 1行恰好只決定於這個字串的左右兩個端點的值 includeusing namespace std inline intread intn,l char a ...

NOIPD2T2 寶藏 題解

填坑,史前巨坑。題意 對於一張圖,確定乙個點為根,構建乙個生成樹。求代價最小值。代價的定義 樹中每一條邊的權值與較淺點深度的乘積 之和。考場上沒有想清楚就草草碼了乙個prim然後交了,但是因為你代價和深度有關,所以貪心地prim是錯誤的。因為 n 很小,這應當引導我們想到狀壓。套路 答案與深度有關,...