CodeForces 808C 貪心 思維

2021-08-01 10:33:13 字數 917 閱讀 8621

給定你n個酒杯的大小,

和你一大瓶酒 容量m,

要求1 每個杯至少放一半,奇數向上取整

2 容量大的杯子放的酒要比容量小的多

3 每個杯子裡都要有,並且是整數性質。

是周賽的題,開始時交了十幾遍,一直錯在第8個樣例。比賽完又自己開codeforce交了十幾次。。終於發現了錯誤的原因竟然是兩行的**的順序顛倒了,導致了乙個失誤。。。。

那就是在後來 把茶杯裡剩下的給其他酒杯倒得時候,要先減去酒杯的容量,在更改cup的大小。。

總體是乙個貪心,開始只是想的是每次 放一半,放完一半後,把剩下的一股腦的都放到最大的那個杯子裡,沒有考慮如果第乙個又放滿了怎麼辦。

後來看題解,發現了要從大到小一次再放。

(為什麼讓所有人都感到滿意,這裡是貪心的思想。)

#include 

#include

#include

#include

using

namespace

std;

const

int maxn=3000;

struct node

;int cmp1(node a,node b)

int cmp2(node a,node b)

int main()

if(sum>w)

sort(v,v+m,cmp1);

w-=sum;

int t=m-1;

while(w>0)

else

}sort(v,v+m,cmp2);

for(int x=0;x<=m-1;x++)

cout

<" ";

//printf("%d\n",v[m-1].v);

return

0;}

codeforces1141D題解 暴力 貪心

給出兩個長度為 n 1 n 150000 的僅含有小寫字母和 的字串,詢問兩個字串最多能有幾對匹配的字元。每個字母都可以與和它相同的字元匹配,可以與任意字元匹配,匹配與位置無關 輸出最大匹配對數,以及每一對中兩個字元在字串中的位置 cf1141d created by hao on 2019 4 1...

Codeforces 587C 樹上倍增

題意 求樹上兩點路徑中的前 a 10 小的點權值。思路 類似lca倍增演算法來儲存 i 2 j 路上的 前 10 小個 的點權值。然後要寫乙個權值合併 具體求 u v 的話,就是先分別計算 和 減1是lca會重疊 然後再合併,輸出答案。include include include include ...

Codeforces 976C 題解報告

對資料進行排序 1 按左邊的數從小到大排 2 若左邊的數相等,則按右邊的數從大到小排。排序之後,若乙個數的右邊的數小於等於上乙個數的右邊的數,則這兩個數必然符合題意。比如2 13 2 12 1 11排序之後,變為 1 11 2 13 2 12因為12 13,則有 2,12 被包含在它的上乙個數 2,...