柚子快報(bào)激活碼778899分享:藍(lán)橋杯DAY5-3.2
柚子快報(bào)激活碼778899分享:藍(lán)橋杯DAY5-3.2
目錄
?1.外賣店優(yōu)先級(jí)
1.設(shè)置結(jié)構(gòu)體的原因:
2.解釋cmp
3.return a.time;<>
4.c++的sort()函數(shù)
2.矩形拼接
以下部分解釋來自訊飛星火。
?1.外賣店優(yōu)先級(jí)
代碼出自羅老師的博客:倪文迪陪你學(xué)藍(lán)橋杯2021寒假每日一題:1.29日(2019省賽A組第7題)_羅勇軍 每日一題-CSDN博客
#include
using namespace std;
const int N=100010;
int order[N]; //order[id] 第id號(hào)店上一次的訂單
int prior[N]; //prior[id] 第id號(hào)店的優(yōu)先級(jí)
int flag[N]; //flag[id] 第id號(hào)店在不在優(yōu)先緩存中
struct node{
int time,id;
}a[N];
bool cmp(node a, node b){
if(a.id==b.id)
return a.time return a.id } int main(){ int m,n,T; cin>>n>>m>>T; for(int i=0;i cin>>a[i].time>>a[i].id; //以下m行每行包含兩個(gè)整數(shù)time和id,表示time時(shí)刻編號(hào)id的外賣店收到一個(gè)訂單 sort(a,a+m,cmp); //按時(shí)間排序 for(int i=0;i int tt=a[i].time, id=a[i].id; if(tt != order[id]) //如果當(dāng)前訂單時(shí)間不等于上一次的訂單時(shí)間,則減去它們之間的間隔 prior[id] -= tt-order[id]-1; //間隔需要再減1,比如2到5,間隔是3和4,就是2個(gè) prior[id] = prior[id] < 0 ? 0: prior[id]; //不小于0 if(prior[id]<=3) flag[id]=0; //這一句和下面的+2不能換位置 //=0表示第id號(hào)店在不在優(yōu)先緩存中 prior[id]+=2; if(prior[id]> 5) flag[id]=1; //=1表示在優(yōu)先緩存中 order[id]=tt; } for(int i=1;i<=n;i++) //最后處理第T時(shí)刻 if(order[i] prior[i] -= T-order[i]; if(prior[i]<=3) flag[i]=0; } int ans=0; for(int i=0;i<=n;i++) if(flag[i]) ans++; cout< return 0; } 1.設(shè)置結(jié)構(gòu)體的原因: struct node{ int time,id; }a[N]; 在這段代碼中,設(shè)置結(jié)構(gòu)體`node`是為了存儲(chǔ)每個(gè)訂單的時(shí)間和店鋪ID。 通過使用結(jié)構(gòu)體,可以將時(shí)間和店鋪ID封裝為一個(gè)對(duì)象,方便進(jìn)行排序和處理。 在排序函數(shù)`cmp`中,根據(jù)時(shí)間對(duì)訂單進(jìn)行排序,如果時(shí)間相同則按照店鋪ID進(jìn)行排序。這樣可以確保訂單按照時(shí)間順序進(jìn)行處理,并且可以方便地獲取每個(gè)訂單的時(shí)間和店鋪ID。 2.解釋cmp bool cmp(node a, node b){ if(a.id==b.id) return a.time return a.id } 這段代碼定義了一個(gè)比較函數(shù)`cmp`,用于對(duì)結(jié)構(gòu)體`node`進(jìn)行排序。該函數(shù)接受兩個(gè)參數(shù)`a`和`b`,分別表示兩個(gè)訂單對(duì)象。 在函數(shù)內(nèi)部,首先判斷兩個(gè)訂單的店鋪ID是否相等,如果相等則比較它們的時(shí)間。如果時(shí)間不同,則返回時(shí)間較小的訂單排在前面;如果時(shí)間相同,則返回店鋪ID較小的訂單排在前面。 這個(gè)比較函數(shù)的作用是按照店鋪ID和時(shí)間的順序?qū)τ唵芜M(jìn)行排序,確保訂單按照時(shí)間順序進(jìn)行處理。 3.return a.time return a.time `return a.time 4.c++的sort()函數(shù) `sort()`函數(shù)在C++中的一般形式是:sort(start, end, cmp); 這個(gè)函數(shù)用于對(duì)指定范圍內(nèi)的元素進(jìn)行排序。其中: - `start` 表示要排序數(shù)組的起始地址,對(duì)于數(shù)組來說就是數(shù)組的首地址。 - `end` 表示數(shù)組結(jié)束地址的下一位。- `cmp` 是可選參數(shù),用于規(guī)定排序的方法,如果不填寫,則默認(rèn)為升序排序。 此外,如果需要對(duì)元素進(jìn)行自定義排序,可以通過傳遞一個(gè)比較函數(shù)`cmp`來實(shí)現(xiàn)。這個(gè)比較函數(shù)應(yīng)該接受兩個(gè)參數(shù)并返回一個(gè)布爾值,以指示排序的順序。 總的來說,`sort()`函數(shù)是一個(gè)非常強(qiáng)大且靈活的工具,它可以根據(jù)不同的需求對(duì)數(shù)據(jù)進(jìn)行排序,從而提高程序的效率和可讀性。 2.矩形拼接 7.矩形拼接 - 藍(lán)橋云課 (lanqiao.cn) 嘗試不同的放置方法,找規(guī)律,發(fā)現(xiàn)有三種情況:8條邊,6條邊,4條邊。 注意,圖中的a既可以指長(zhǎng),也可以指寬。b同理。 下面這個(gè)代碼出自羅老師的博客(下面這個(gè)鏈接),我寫了一些詳細(xì)的注釋,方便理解。 <藍(lán)橋杯軟件賽>零基礎(chǔ)備賽20周--第5周--雜題-2-CSDN博客 #include using namespace std; int a[3][2]; //行是3,代表三個(gè)矩形;列是2,用于存儲(chǔ)矩形的長(zhǎng)和寬 int main() { int T; cin >> T; //T代表數(shù)據(jù)組數(shù),每組都是有三個(gè)矩形。題目問的是每組能拼出的多邊形的邊數(shù)的最小值 while(T--) { for(int i = 0; i < 3; i++) //每組有三個(gè)矩形 cin >> a[i][0] >> a[i][1]; //輸入一個(gè)矩形的長(zhǎng)和寬 int ans = 8; //三個(gè)矩形完全不能匹配,邊數(shù)是8 for(int i = 0; i < 3; i++) //第1個(gè)矩形 為什么是0-3呢,意思是第一個(gè)矩形可以是這三個(gè)矩形中的任意一個(gè),后面同理 for(int j = 0; j < 3; j++) //第2個(gè)矩形 if(i != j) //因?yàn)閕和j等一會(huì)的位置都是二維數(shù)組的第一個(gè),所以i!=j保證了他倆不是同一個(gè)矩形 for(int k = 0; k < 3; k++) //第3個(gè)矩形 if(k != i && k != j) //同樣的道理,保證三個(gè)矩形都不是同一個(gè)矩形 for(int ii = 0; ii <= 1; ii++) { //第1個(gè)有橫豎兩種擺法 for(int jj = 0; jj <= 1; jj++) { //第2個(gè)橫豎擺 for(int kk = 0; kk <= 1; kk++) { //第3個(gè)橫豎擺 if(a[i][ii] == a[j][jj] + a[k][kk]) { ans = min(ans, 6); if(a[j][1-jj] == a[k][1-kk]) //如果第一條邊符合上面的時(shí)候,第二條邊還相等,那么也是四邊形 ans = min(ans, 4); } if(a[i][ii] == a[j][jj] || a[j][jj] == a[k][kk]) //第一個(gè)矩形的某條邊=第二個(gè)矩形的某條邊 ans = min(ans, 6); //這種情況是6條邊或者更少,也就是4條邊 if(a[i][ii] == a[j][jj] && a[j][jj] == a[k][kk]) //三個(gè)矩形有條邊都相等,一定是4條邊 ans = min(ans, 4); //所以這里直接ans=4也可以 } } } cout< } return 0; } 柚子快報(bào)激活碼778899分享:藍(lán)橋杯DAY5-3.2 好文推薦
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。