題目:給出乙個只含有1,2,3的數字序列,問最少交換多少次才能將之變為遞增數列。
解:注意到只有1,2,3,我們只要將1,3交換到自己的應在位置上那麼排序就已經完成了。
需要交換的有幾種,記$a(x,,y)$表示x在應該是y的位置上的$a(i)$的個數,那麼我們優先交換a(1,3)和a(3,1)裡的數字,一次交換扳正兩個位置,接下來要想扳正乙個1或3的位置就必須要進行一次交換操作。
統計計算即可。
1 #include 2 #include 3 #include 4 #include 5view code6#define n 101078
using
namespace
std;910
intn,ans;
11int cnt[4][4],a[n],b[n]; //
cnt(i,j) it should be i,but it's j.
1213
intmain()
COGS1212 奶牛排隊
奶牛在熊大媽的帶領下排成了一條直隊。顯然,不同的奶牛身高不一定相同 現在,奶牛們想知道,如果找出一些連續的奶牛,要求最左邊的奶牛a是最矮的,最右邊的b是最高的,且b高於a奶牛,中間如果存在奶牛,則身高不能和a b奶牛相同。問這樣的奶牛最多會有多少頭?從左到右給出奶牛的身高,請告訴它們符合條件的最多的...
高手訓練 RMQ 奶牛排隊
第一題由於過水,就沒寫awa 大概就是這樣了。題意就是求乙個最長的區間使得區間的左邊是它的最小值,區間右邊是他的最大值 第乙個想法肯定是暴力列舉啦awa 但是這個是o n 3 的,絕對的不可過awa 思考性質awa 發現我們列舉每個區間的左右端點,其實有大量的不合法的計算的 也就是沒有用的列舉。考慮...
vijos1548 奶牛排隊 題解
保證絕對非暴力做法!原題位址見下面。今天陽光明媚呢?勇者躺在草坪上。持續數週的風暴過去之後,他終於得以出門。這個時候 不來道應用試試?路由器拿出了檸檬,咬了一口,指了指那邊的農場。問題描述 奶牛在熊大媽的帶領下排成了一條直隊。顯然,不同的奶牛身高不一定相同 現在,奶牛們想知道,如果找出一些連續的奶牛...