codevs 3095 黑心的市長

2022-02-13 10:12:34 字數 1187 閱讀 8463

時間限制: 1 s

空間限制: 32000 kb

題目等級 : 鑽石 diamond

a市有一條長nkm的高速公路。有m個人各自想承包下a~b的路段。

這不給點錢是不行的,每人給ci元。

市長很黑心,想賺很多錢。如果同時允許多人承包同一路段,是不行的。

求市長最多賺多少錢。

輸入描述 input description

正整數n  m

m行,ai,bi,ci。

輸出描述 output description

錢數樣例輸入 sample input

10 3

1 5 10

4 7 9

7 10 8

樣例輸出 sample output

資料範圍及提示 data size & hint

m《=500,n《=1014,ci《=109.

【題目大意】每一條線段都有一定的價值,求線段兩兩不覆蓋能得到的最大價值。

【思路】序列dp 不能是越多線段越好,要求價值最大。f[i]為前i條線段能獲得的最大值。最後 max

【code】

#include#include

#include

using

namespace

std;

long

long n,m,ans,f[520

];structes[

520];

bool

cmp(e a,e b)

intread()

while(ch>='

0'&&ch<='9')

return f*x;

}int

main()

sort(s+1,s+m+1

,cmp);

for(int i=1;i<=m;i++)

for(int j=0;j)

if(s[i].x>=s[j].y)

f[i]=max(f[j]+s[i].v,f[i]);

for(int i=1;i<=m;i++)

ans=max(ans,f[i]);

printf(

"%d\n

",ans);

return0;

}//f[1--m] 1 30 67 91 101 100

CODEVS 電話連線

題目描述 description 乙個國家有n個城市。若干個城市之間有 線連線,現在要增加m條 線 線當然是雙向的了 使得任意兩個城市之間都直接或間接經過其他城市有 線連線,你的程式應該能夠找出最小費用及其一種連線方案。輸入描述 input description 輸入檔案的第一行是n的值 n 10...

codevs 石子歸併

codevs 1048 石子歸併 題目描述 description 有n堆石子排成一列,每堆石子有乙個重量w i 每次合併可以合併相鄰的兩堆石子,一次合併的代價為兩堆石子的重量和w i w i 1 問安排怎樣的合併順序,能夠使得總合併代價達到最小。輸入描述 input description 第一行...

CODEVS 倒水問題

題目描述 有兩個無刻度標誌的水壺,分別可裝 x 公升和 y 公升 x,y 為整數且均不大於 100 的水。設另有一水 缸,可用來向水壺灌水或接從水壺中倒出的水,兩水壺間,水也可以相互傾倒。已知 x 公升壺為空 壺,y 公升壺為空壺。問如何通過倒水或灌水操作,用最少步數能在x或y公升的壺中量出 z z...