1020貪心練習

2022-08-03 03:54:11 字數 1381 閱讀 7209

思路:贏取最多的錢,即扣掉的錢最少。等價於m先減去所有的wi,再計算最大得分。對於時段x我們可以做時限ti>=x的遊戲。所以從後往前列舉時段i,把時限ti>=i的遊戲的wi放入乙個大根堆,每一時段m加上堆頂值。注意中間可能空堆。

const int maxn=505;

struct nodee[maxn];

bool cmp(node a,node b)

if(m<0)printf("0\n");

else printf("%d\n",m);

return 0;

}

我們定義乙個整數區間[a,b]:是乙個從a開始至b結束的連續整數的集合。

編乙個程式,對給定的 n(n≤1000)個區間,找出滿足下述條件的所含元素個數最少的集合中元素的個數:對於所給定的每乙個區間,都至少有兩個不同的整數屬於該集合。

解法1:差分約束。之前寫過了。

解法2:題意即從每個區間選至少兩個點,使選點總數最小。按照左端點從大到小列舉區間,則若此區間沒選滿兩個點,優先選擇靠左的點一定最優。

const int maxn=10005;

struct nodea[maxn];

bool cmp(node a,node b)

int vis[maxn],ans;

int main()

printf("%d\n",ans);

return 0;

}

線段覆蓋板子,按右端點排序,能選的優先選右端點較小的。

const int maxn=1005;

struct nodep[maxn];

bool cmp(node a,node b)

}printf("%d\n",cnt);

return 0;

}

4.p1325 雷達安裝

雷達顯然都建在海岸線上更優。算出每個島被覆蓋的雷達位置區間,使每個區間裡至少有乙個點。

const int maxn=1005;

int x[maxn],y[maxn];

struct nodep[maxn];

bool cmp(node a,node b)

double dt=sqrt(d*d-y[i]*y[i]);

p[i].l=x[i]-dt;p[i].r=x[i]+dt;

} sort(p+1,p+1+n,cmp);

double tmp=p[1].r;

for(int i=2;i<=n;i++)if(p[i].l>tmp)ans++,tmp=p[i].r;

printf("%d\n",ans);

return 0;

}

CF1020C Elections 列舉 貪心

題目鏈結 這個題的背景是賄賂選民,從而讓自己的組織能夠上台.自己組織的編號是1.然後列出選民想要選的組織,以及收買他們的代價.求最小代價.第一行給出n,m,表示選民數量和組織數量,組織按照 1,2,3 m 編號,範圍都是 1,3000 然後之後n行選民,每一行給出p,c,表示此位選民想投的組織和收買...

CodeForces 1020C(貪心,列舉)

題目 列舉票數,如果比當前票數大就收買,之後再遍歷一遍,如果超過當前的列舉就結束 比如你現在列舉到2,當前3票的人有三個,直接判斷答案 不足當前列舉的票數就補上。以為列舉的票數就是實際的票數,其實可能不止。列舉的票數其實感覺更像是列舉層數,遍歷全部總會遍歷到臨界點 唉,這種題做的還是少了,看了別人之...

1020 月餅(簡單貪心)

題目鏈結 思路 計算出每種月餅的單價,按照單價排序。只要還有最貴的月餅,就賣最貴的,直到賣完。老奸商了 include include include include include include using namespace std struct mooncake 定義mooncake結構體,...