日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1070. 结绳(25)

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1070. 结绳(25) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1070. 結繩(25)

時間限制 200 ms
內存限制 65536 kB
代碼長度限制 8000 B
判題程序 Standard 作者 CHEN, Yue

給定一段一段的繩子,你需要把它們串成一條繩。每次串連的時候,是把兩段繩子對折,再如下圖所示套接在一起。這樣得到的繩子又被當成是另一段繩子,可以再次對折去跟另一段繩子串連。每次串連后,原來兩段繩子的長度就會減半。

給定N段繩子的長度,你需要找出它們能串成的繩子的最大長度。

輸入格式:

每個輸入包含1個測試用例。每個測試用例第1行給出正整數N (2 <= N <= 104);第2行給出N個正整數,即原始繩段的長度,數字間以空格分隔。所有整數都不超過104

輸出格式:

在一行中輸出能夠串成的繩子的最大長度。結果向下取整,即取為不超過最大長度的最近整數。

輸入樣例: 8 10 15 12 3 4 13 1 15 輸出樣例: 14

解析:本題注意三個問題:

1,題目中提到最大,所以一定要排序;

2,題目中N (2 <= N <= 104),所以N很大時,動態分配可能會失敗,以自己的經驗來講,可分配的空間,靜態 > 自動 > 動態, 所以一旦以為分配內存方式失敗的話,就考慮變換一下分配方式;

3,printf("%.2f", ?a);表示輸出a時保留兩位小數,這里用到方法是四舍五入,并不是直接舍去.


代碼:

/*************************************************************************> File Name: 1070.c> Author: YueBo> Mail: yuebowhu@163.com> Created Time: Tue 30 May 2017 07:08:36 PM CST************************************************************************/#include <stdio.h> #include <stdlib.h>float arr[10000]; int cmp(const void *a, const void *b) {return *(float *)a - *(float *)b; } int main() {int N;int i;float A, B;scanf("%d", &N);for (i = 0; i < N; i++)scanf("%f", arr+i);qsort(arr, N, sizeof(float), cmp);A = arr[0];for (i = 1; i < N; i++){B = arr[i];A = A/2.0 + B/2.0;}printf("%d\n", (int)A);return 0; }











總結

以上是生活随笔為你收集整理的1070. 结绳(25)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。