30天程式設計練習(十)

2021-08-19 05:58:05 字數 996 閱讀 5842

1040 排序

題意:給你一些整數,你的任務是對這些數字進行排序。

解析:快速排序

#include

#include

#include

#include

#include

using namespace std;  

void main()  

}  }  cout << arr[0];  

for (int i = 1; i

1041  函式題

題意:初始為1,然後1變為01,再然後0變為10,1變為01...求經過n次變換,相鄰兩個0的個數

解析:分析00的產生必然由n-1組的01產生,即00的個數等於n-1組01的個數。 

n-1組01的產生有兩個**。 

1).由n-2組的1 

2).由n-2組的00變幻1010, 

則可以求得f(n)=f(n-2)+2^(n-3)

#include

#include

using namespace std;  

int dp[1002][500];  

int p[500];  

int main()  

for(j=1;j<500;j++)   

dp[i][j]=dp[i-2][j]+p[j];  

z=0;  

for(j=1;j<500;j++)      

}  while(cin>>n)  

return 0;  

1042 n!

解析:迴圈乙個數乙個數相乘,每次都用陣列分別存結果的每一位,最後從大到小按位輸出。sum為後一位的進製。

#include

using namespace std;

int main()

{int n;

while(cin>>n)

{if(n==0 || n==1)

cout<<1<=0;q--)

cout<

30天程式設計練習(三)

1009 貓鼠交換 解析 一道典型的貪心演算法的題,類似於揹包問題,先按單價從小到大排序,再從最便宜的開始買,每次都買的盡可能多。include include using namespace std struct greedheart bool compare greedheart room1,g...

30天程式設計練習(四)

1013 求數根 題意 各個位數相加,求得的結果再各位數相加,直到取得個位數 解析 1 要用字串的形式輸入,防止大數 2 迴圈求 10,在求和 include include using namespace std int main do n sum while n 9 cout return 0 ...

30天程式設計練習(十一)

1044 迷宮問題 題意 你,冒險家,在乙個危險的地牢裡。你被告知地牢要倒塌了。你必須在規定的時間內找到出口樓梯。但是,你不想空手離開地牢。地牢裡有很多稀有的珠寶。在你離開之前試著收集一些。有些珠寶便宜,有些貴。所以你會盡最大努力最大化你的收藏,更重要的是,及時離開地牢。解析 bfs構建乙個珠寶和珠...