藍橋杯 付賬問題 2023年

2021-10-14 07:44:03 字數 1001 閱讀 1645

付賬問題

問題描述:

問題的簡單分析:

首先這是乙個「貪心問題」,為了使標準差最小,每乙個人出的錢==bi==必須接近平均值。 

(1)ai<=bi時:必須交上所有的錢,這樣才能保證標準差盡可能的小

(2)ai>bi時:這類人不僅要交平均值s/n,還要平攤沒帶夠錢的人的費用

因此有:
#include

using namespace std;

intmain()

//開始貪心選擇

sort

(a, a + n)

;//進行排序

double arg = s / n;

double arg0 = arg;

double ans =0;

for(

int i =

0; i < n; i++

)else

}printf

("%.4lf"

,sqrt

(ans / n));

return0;

}

折騰了一天,終於ac了。雖然是第一次,但也暴露了太多的問題,首先就是對

於各種型別的範圍不熟悉,此次之所以耗費時間之長,是因為對於型別的範圍

的不熟悉所導致。這個貪心演算法的基本思想和貪心選擇性質一開始就想出,但

是後來的工作全部都在進行變數的除錯,其中的s我最開始設定的是int型別

,在評判的時候,只通過了2個樣本,後來看他人的工作,思想和核心**

都本質上是一致的,而他人的引數s的型別為double,我試了一下,通過了。

雖然題目要求s和n都是整數,但在後續中要對s進行改變,因此可以直

接設為double型別或者另加乙個double型別的變數來接管s

第九屆藍橋杯 付賬問題

題目描述 幾個人一起出去吃飯是常有的事。但在結帳的時候,常常會出現一些爭執。現在有 n 個人出去吃飯,他們總共消費了 s 元。其中第 i 個人帶了ai 元。幸運的是,所有人帶的錢的總數是足夠付賬的,但現在問題來了 每個人分別要出多少錢呢?為了公平起見,我們希望在總付錢量恰好為 s 的前提下,最後每個...

2023年藍橋杯 日誌統計

分析 重新寫了一遍,和先前不同的是,先前是遍歷每個時間點,判斷一段時間內是否存在滿足id點讚次數多於k的。這次是遍歷每乙個id,記錄每乙個id的點讚時間點,遍歷時間點,看是否存在點讚次數多於k的。include define maxn 10000 using namespace std vector...

藍橋杯2018初賽 倍數問題

題目描述 眾所周知,小蔥同學擅長計算,尤其擅長計算乙個數是否是另外乙個數的倍數。但小蔥只擅長兩個數的情況,當有很多個數之後就會比較苦惱。現在小蔥給了你 n 個數,希望你從這 n 個數中找到三個數 使得這三個數的和是 k 的倍數,且這個和最大。資料保證一定有解。輸入第一行包括 2 個正整數 n,k。第...