c 程式設計例項之河邊搬石頭

2021-10-09 17:59:20 字數 643 閱讀 2348

問題描述:

沙灘按照線型擺放著n個大小不一的球形石頭,已知第i個石頭的半徑為ri,且不存在兩個石頭有相同的半徑。為了使石頭的擺放更加美觀,現要求擺放的石頭的半徑從左往右依次遞增。因此,需要對一些石頭進行移動,每次操作可以選擇乙個石頭,並把它放在剩下n−1個石頭在最左邊或最右邊。問最少需要操作多少次才能將這n個石頭的半徑變成公升序?

問題解析:

這是乙個排序問題,且每一次操作只能將當前石頭放到最左端或者最右端,使用c++的vector儲存序列,保持原序列中最大遞增1的子串行不變,移動其他石頭。那麼只需求出最大遞增1的子串行長度,再用總長度減去子串行長度,即為需移動數目。

直接上**:

#include

#include

using

namespace std;

intmain()

}if(temp > max)

max = temp;

} cout << n - max << endl;

return0;

}

shell程式設計例項 石頭剪子布遊戲

input function judge 如果user變數未被定義過或為空,則賦值為0 let if numuser eq numcomp then echo 本局平局 elif numuser eq 0 then if numcomp eq 2 then echo 本局你贏!let cntuser...

C 程式設計例項

例3.12 用下面公式求 的近似值。4 1 1 3 1 5 1 7 直到最後一項的絕對值小於10 7為止。根據給定的演算法很容易編寫程式如下 複製純文字新視窗 include include include using namespace std int main pi pi 4 cout pi i...

C 程式設計例項之翻轉01串

問題描述 給你乙個長度為n的01串。現在想讓你找出最長的01交替子串 子串可以不連續 比如 1010,0101是01交替的串,1101則不是。現在你可以把某乙個連續的區間進行翻轉,即0變1,1變0。問修改之後的最大01交替子串的長度是多少 問題分析 看到題目後,不必使用暴力方法解決,可以從數學的角度...