頒獎環節:
恭喜以上兩位種子選手獲得I J K三題的一血!
———————————————————題解分界線————————————————————
I題:
題意:給定最終時刻,通過計算中途花費時間計算開始時刻。
題解:通過路程和步行速度計算出中途花費時間,注意可能會提前一天出發以及時間格式。
代碼:
int main()
{
int s, v;
cin >> s >> v;
int t = s /v;
if(s %v != 0) t ++;//不能整除,向上取整,相當于ceil函數
t += 30;
if(t <= 9*60) t = 9*60-t;
else
{
t -= 9*60;
t = 24*60-t;
}
printf("%02d:%02d", t /60, t %60);
return 0;
}
J題:
題意:計算序列中非最小值的個數。
題解:開個cnt變量統計非最小值數量,然後進行判斷輸出。
代碼:
const int N = 1e6+10;
int a[N];
int main()
{
int n;
int MIN = N;//初始化最小值
scanf("%d", &n);
for(int i = 0;i < n;i ++)
{
scanf("%d", a+i);
if(MIN > a[i]) MIN = a[i];
}
int cnt = 0;
for(int i = 0;i < n;i ++)
if(a[i] > MIN) cnt ++;
if(cnt > n /2) cout << "YES";
else cout << "NO";
return 0;
}
K題:
題意:給定藍球和紅球數量以及每個籃子中兩種球的最大內插補點,判斷是否滿足要求。
題解:将數量較小的球看作籃子,将另一種球放入籃子中且至少放一個。放完後判斷每個籃子的數量差是否滿足不大于最大內插補點。
代碼:
#define ll long long
int main()
{
ll n, m, d;
cin >> n >> m >> d;
ll MIN = min(n, m);
ll a = abs(n - m);
if(MIN*d >= a) cout << "YES";
else cout << "NO";
return 0;
}
2021/8/2