確認過眼神,又是一道玄學題...
你收到一項對陣列進行排序的任務,陣列中是1到n個乙個排列。你突然想出以下一種特別的排序方法,分為以下n個階段:
•階段1,把數字1通過每次交換相鄰兩個數移到位置1;
•階段2,用同樣的方法把n移到位置n;
•階段3,把數字2移到位置2處;
•階段4,把數字n-1移到位置n-1處;
•依此類推。
換句話說,如果當前階段為奇數,則把最小的未操作的數移到正確位置上,如果階段為偶數,則把最大的未操作的數移到正確位置上。
寫乙個程式,給出初始的排列情況,計算每一階段交換的次數。
input
第一行包含乙個整數n(1<=n<=100000),表示陣列中元素的個數。
接下來n行每行乙個整數描述初始的排列情況。
output
輸出每一階段的交換次數。
sample input【資料範圍】sample output輸入1:32
13輸入2:55
4321
輸出3:75
4371
26
輸出1:10
0輸出2:43
210輸出3:42
3021
0
70%的資料n<=100
暴力70分,很划得來~出題人太良心了
考試時以為自己想到了正解:【樹狀陣列差分維護字首和】(似乎是)
後來發現有簡單的做法啊,開眼界了
#include#include#include#include#includeusing namespace std;
const int maxn=1e5;
int ans[maxn+5],a[maxn+5];
int n,cnt;
void move1(int id,int x) }}
void move2(int id,int x)
void add(int i,int num)
}int sum(int i)
return ret;
}int query(int l,int r)
int main()
int cnt1=1,cnt2=n;
for(int i=1;i<=n;i++)
else
}return 0;
}
2019 遊記 中山紀念中學暑期遊Day3
今天沒有考試,專門講課,聽不懂的同學還可以回機房瞎搞 感覺安排的還可以,至少時間還是挺充裕的,只是講解的內容太多了,消化不完qaq.早上依舊沒有早起.三天過去了,我連有沒有鈴聲都不知道 去食堂吃了乙個椰蓉麵包 學校居然取名 奶皇麵包 是的,我字沒有打錯,看起來就是這樣高大上,然鵝吃起來像批發的 乙個...
2019 遊記 中山紀念中學暑期遊Day6
今天的安排是 聽課!資料結構 專題,花了一早上和一下午,晚上在搞乙個兄弟自己出的題目 賊坑 於是時間又沒了qaq.真心覺得時間怎麼都不夠用啊咧.早上還是沒有早起成功,於是匆匆趕往食堂,居然有公尺漢堡 公尺飯夾雞肉 吃得還算滿意qwq 來到報告廳,座位不出所料的被佔滿了,可是還是get到乙個c位 人品...
2019 遊記 中山紀念中學暑期遊Day9
昨天去珠海玩了下,感覺還不錯誒,就是好熱好曬.很想細寫但是沒時間,故事大多都在 上了 其實現在正在打字的我是10號的我.來填坑了23333.詳情記不到了,直接說考試 這次考試真的考得好炸,都是難以暴力應付的題qwq.第一題 自己想到了是dp,而且和正解的狀態定義都一樣!但是不會打,這就很現實了.暴力...