時間限制: 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...