CF1203 兼第五次訓練賽(F)

2021-10-03 02:41:01 字數 930 閱讀 4483

cf 1203 boxers

題意:n個拳擊手,每個體重都可以減一 加一 或不變,問該怎麼操作才能使不同體重拳擊手數量最多。

思路:貪心思想,先記錄每個體重有多少人,乙個體重最多能擴充套件成3種體重,所以從小到大開始要先將體重-1看是否已經存在,若存在,則不變,若原體重存在則判斷+1是否存在,若都不存在就將該體重進行標記,若是從大到小迴圈,則是優先順序反過來。解釋為什麼要向一端移動,因為要盡可能給能擴充套件成兩個或三個體重的體重讓位置,所以要向遞增或遞減方向移動。

注意要特判體重為1的選手。

引用如下**

#include

#include

#include

#include

#include

using

namespace std;

#define ll long long

ll a[

200000];

ll tp[

150005];

ll tp2[

150005];

intmain()

for(

int i =

1; i <

150001

; i++)if

(tp[i]!=0

)}else

//然後保持體重

if(tp[i]!=0

&& tp2[i]==0

)//最後才是提公升體重。

if(tp[i]!=0

&& tp2[i+1]

==0)}

}}ll ans =0;

for(

int i =

0; i <

150005

; i++

) cout << ans << endl;

return0;

}

CF1203 兼第五次訓練賽(B)

cf 1203 equal rectangles 題意 先給出乙個整數n,然後再給出4 n個整數,判斷是否能組成n個面積相等的矩形。思路 先講陣列進行排序,然後將第一大和最小的邊進行組合,然後是第二大和第二小 以此類推,但是期間要注意檢驗每次配對的數字是否都是成對出現的,若是有反例,輸出no,在定義...

第五次訓練 G題

問題簡述 森林中j可向四個方向移動,同時火源向四個方向擴散,當j逃到地圖外則視作成功逃離,問j能否逃離森林,若能,輸出最短時間。問題分析 由最短路徑可知,需要用到bfs。除了人外,森林中還有火源會隨著人移動不斷向四處擴散,則只需用兩次bfs即可。第乙個bfs模擬火源的移動,將火源擴散到每個方格時的最...

ACM第五次積分賽

做出三道題,第二名,總積分上公升到第八名,繼續加油!sau acm總比賽成績 姓名賬號 上學期成績 第一次成績 第二次成績 第三次成績 第四次成績 第五次成績 總成績張國慶 143401010421 20168.8 69.2 6087.2 91.6 577.8 陳福春springhack 201.5...