zyl有n張牌編號分別為1, 2,……,n。他把這n張牌打亂排成一排,然後他要做一次旋轉使得旋轉後固定點盡可能多。如果第i個位置的牌的編號為i,我們就稱之為固定點。旋轉可以被認為是將其中的乙個子段旋轉180度,這意味著子段的第一張牌和最後一張牌交換位置,以及第二張牌和倒數第二張牌交換位置,等等。寫乙個程式,找到旋轉子段(子段長度可以為1)。
第一行包含乙個整數 n (1 ≤ n ≤500 000)。
第二行有n個數,第i個數表示旋轉之前第i個位置的牌的編號。
找到固定點最多的旋轉所選的子段,輸出旋轉之後固定點的個數。
43 2 1 4
4在樣例1中,只需要旋轉的子段[3,2,1],將排列變成1 2 3 4,旋轉後所有的牌都為固定點。答案為4。
30%的資料滿足:n ≤ 500;
60%的資料滿足:n ≤ 5000;
100%的資料滿足:1 ≤ n ≤ 100 000。
#include #include #include #include #include #define maxn 500005
using namespace std;
int n,a[maxn],keep[maxn],c;
vectorg[maxn<<1];
bool cmp(int x,int y)
} printf("%d\n",ans);
return 0;
}
BJ模擬(2) D2T1 簡單粗暴的題目
簡單粗暴的題目 題目背景 thoj25 分析 本題一看真的很粗暴,在一想也的確非常粗爆,那麼我們就用粗暴的方法,首先,我們發現直接暴力,我們需要算n2 個數的k 次方,顯然複雜度上是不能接受的,我們發現對於第i個 answer 其實就是,s i k s i s i 1 k s i s i 1 s i...
九校3D2T2 交錯的字串
mark douglas是一名律師。他的客戶yuri ball在一場車禍中不幸去世。為了幫助yuri的親屬拿到他的遺產,mark需要得到乙個密碼。在yuri的筆記本上,有乙個長為2n的只包含小寫字母的字串,mark知道密碼恰好是將這個字串分解為兩個長度為n的子串行且它們構成的字串恰好相反的方案數。我...
2018D1T2 貨幣系統
記貨幣種類為 n 面額陣列為 a 1.n 的貨幣系統為 n,a 貨幣系統 n,a 與 m,b 等價,當且僅當對於 forall x in mathbf n x 要麼均可以被兩個貨幣系統表示,或者不能被任何乙個表示。給定乙個貨幣系統 n,a 求與其等價的貨幣系統 m,b 並使 m 盡可能小。我們把貨幣...