本題很簡單,但是還是wa了幾次,主要原因是
1、變數初始化的位置要非常小心,何時需要在下一次迴圈重覆記錄何時初始化,由於這個原因wa太可惜了
2、輸出保留三位小數的格式控制一定要注意
主要演算法思想如下
先求各個裝置最小頻寬中的最小值和最大頻寬中的最小值
然後遍歷最小頻寬到最大頻寬的區間,求最大比例,貪心搜尋最優方案
加速方案
設定標誌陣列flag,只有輸入中間出現過的並且位於上下界區間中頻寬值才會考慮,節省搜尋時間,空間換時間
另外總結下檢視資料型別表示範圍的方法,以int為例
1, 要看int 占用多少位元組: sizeof(int)
2, 要看int 占用多少bits: sizeof(int) * 8
3, 要看int 所能表示的最大正整數: (unsigned int)(-1) / 2
輸出格式精度控制 %m.ns 及%m.nd舉例
第乙個m表示輸出字串的長度,n表示從左邊數第n位開始對齊
第二個m表示輸出十進位制數的位數,n表示小數點後的位數
比如24.1234
如果以%5.2d輸出為24.12
source code
problem:1018
user:yangliuacmer
memory:460k
time:47ms
language:c++
result:accepted
#include using namespace std;
#define maxn 32767
//先求各個裝置最小頻寬中的最小值和最大頻寬中的最小值
//然後遍歷最小頻寬到最大頻寬的區間,求最大比例,貪心搜尋最優方案
int main()
if(low > minb)//各個裝置最小頻寬中的最小值
low = minb;
if(high > maxb)//各個裝置最大頻寬中的最小值
high = maxb;
} best = 0;
for(k = low; k <= high; k++)
}sump += minp;
}if((double)k / (double)sump > best)}}
printf("%.3lf\n",best);//保留3位小數
} return 0;
}
POJ 1018 列舉 貪心
題意 有n件商品,每件商品有m個製造商,每個製造商製造的商品有不同的 頻寬和 每件商品必須選乙個製造商,最後的頻寬是所有頻寬中的最小值,價值是所有商品的總 目的是使b p最大,輸出最大的b p的值。思路 由於資料範圍比較小,所以可以列舉。可以求出所有製造商的商品的最大頻寬和最小頻寬,然後列舉在兩者之...
POJ 3662 通訊線路
摘要 簡單來講就是在無向圖上求出一條從1到n的路徑,使路徑上第k 1大的邊權盡量小。第k大的盡量小,這種表述就容易讓人想到二分。那麼我們只要把權值大於mid的路徑權值設為1,小於mid的置為0,求1到n的最短路是否不超過n即可。include include include include incl...
1007 422通訊問題
一 422信問題記錄 情景 1,通訊資料鏈為dsp晶元28335 處理能力較低,對外介面422,波特率115200 2,通訊另外一端板載計算機 linux系統,埠422 115200 二 現象 1,任務計算機通過串列埠傳送資料給資料鏈,資料鏈接收資料正常,資料鏈向任務計算機傳送資料,出現資料異常。接...