武汉工程大学2020GPLT选拔赛(上)
比賽鏈接
A L1-1 I LOVE WIT
模擬,每個字母單獨一行,前面的空格按規(guī)律輸出。可以直接輸出,也可以模擬過程
#include<bits/stdc++.h> using namespace std; int main(){string s="I LOVE WIT";for(int i=0;i<s.size();++i){for(int j=1;j<=i;++j){cout<<" ";}cout<<s[i]<<endl;}return 0; }B L1-2 單位換算
根據(jù)題目總結(jié)公式:
sum=n122.54*10
注意如果不是整數(shù)就保留一位小數(shù),否則不留小數(shù)
C L1-3 Pokémon
根據(jù)題目要求輸出運算
cv對應(yīng)著相應(yīng)的概率,再看f等于0或1,乘以對應(yīng)的概率,直接運算就可以。
注意讀入與輸出時都有百分號,特別處理一下
D L1-4 顛倒陰陽
我們先分析分析有多少步驟
首先當(dāng)然是將n轉(zhuǎn)化成2進制形式
然后取反
然后高低位翻轉(zhuǎn)
最后轉(zhuǎn)發(fā)成十進制
中間兩步我們可以合在一起,因為我們用數(shù)組來存二進制,取反后存的時候可以直接倒著存,就相當(dāng)于翻轉(zhuǎn)了。
取反時不要講多余部分取反,直接判斷n是否已除盡
詳細看代碼吧
E L1-5 演唱會
題目好理解
我們讀入是將時分秒分別存入hh,mm,ss中,然后分別加上1,22,33,注意進位,從ss開始每滿60進一位,最后比較時分別于演唱會開始與結(jié)束時間比較,從小時開始比到秒
(這么做還要進位太麻煩了吧)
其實直接將所有時間都轉(zhuǎn)化成秒,直接對比多方便
怎么方便怎么做
#include<bits/stdc++.h> using namespace std; int main(){int hh,mm,ss;int sum;char ch;cin>>hh>>ch>>mm>>ch>>ss;sum=hh*3600+mm*60+ss;sum+=3600+22*60+33;int beg=19*3600,ed=21*3600;if(sum<beg){cout<<"arrive on time";}else if(sum<ed){cout<<"arrive late";}else{cout<<"too late";}return 0; }F L1-6 分鴿子
(吃鴿子!!鴿子保護協(xié)會表示抗議)
終于有個涉及算法的題了
二分問題
我們要知道正確答案是在區(qū)域[l,r]之間的,一開始l=1,r=1e9+2,然后不斷縮小l與r的范圍
我們先枚舉一個mid作為答案,然后判斷mid是否符合條件,如果符合說明可能存在更佳的答案,就把左邊界更新(擴大)
如果不符合說明當(dāng)前答案太大了,就把右邊界縮小
這個條件怎么判斷呢?
我一開始是先看mid*m與sum(a[i])也就是需要的鴿子肉與有的鴿子肉比較,如果大于已有mid肯定多了
如果小于就看mid是不是比單個鴿子肉小,因為不能混搭
我感覺這樣做問題不大,結(jié)果過了一半,懵了
然后換了一個判斷方法,直接看每個鴿子以當(dāng)前mid標(biāo)準能分成幾份,如果份數(shù)大于人數(shù),即符合要求,反之不符合
具體看代碼吧
總結(jié)
以上是生活随笔為你收集整理的武汉工程大学2020GPLT选拔赛(上)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理想汽车三季度获得净利润28.1亿元 连
- 下一篇: OPPO Reno11 / Pro 系列