ECNUOJ 2615 会议安排
會(huì)議安排
Time Limit:1000MS Memory Limit:65536KB
Total Submit:451 Accepted:102
Description
科研人員與相關(guān)領(lǐng)域的國(guó)內(nèi)外同行進(jìn)行適時(shí)的接觸與充分的交流,對(duì)于促進(jìn)提高他們的科研業(yè)務(wù)水平,并及時(shí)掌握科研動(dòng)態(tài)是十分必要而且重要的。ECNU為了走在科技的前沿,于是決定派遣一些學(xué)者出去參加會(huì)議。由于這些會(huì)議具有不同的級(jí)別,因此對(duì)于科研人員可能帶來的科研上的促進(jìn)作用也就可能不同。但是一個(gè)學(xué)者不能同時(shí)參加兩個(gè)會(huì)議。而且,如果一個(gè)學(xué)者需要連續(xù)參加兩個(gè)會(huì)議,第二個(gè)會(huì)議的開始時(shí)間要晚于第一個(gè)會(huì)議的結(jié)束時(shí)間..
現(xiàn)在給出一些會(huì)議的起始時(shí)間和終止時(shí)間,并給出這些會(huì)議對(duì)應(yīng)的促進(jìn)值,請(qǐng)你計(jì)算出一個(gè)學(xué)者能夠得到的最大的促進(jìn)值。
Input
第一行為一個(gè)整數(shù)T,表示測(cè)數(shù)數(shù)據(jù)的組數(shù).
每組數(shù)據(jù)第一行為整數(shù)n(1<=n<=300),代表有n個(gè)會(huì)議,然后有n行數(shù)據(jù),每行給出3個(gè)整數(shù)s(會(huì)議開始時(shí)間),t(會(huì)議終止時(shí)間),w(會(huì)議相對(duì)應(yīng)的促進(jìn)作用).(0<=s<=t<=365,0<w<100)
Output
輸出能夠得到的最大的促進(jìn)作用。
每組測(cè)試數(shù)據(jù)輸出占一行。
Sample Input
2
3
2 5 5
4 6 4
6 7 10
3
1 2 3
2 4 10
3 10 2
Sample Output
15
10
Source
華東師范大學(xué)2009校賽
解題:直接dp好啦,dp[j]表示在j時(shí)間內(nèi),能夠獲得最大的促進(jìn)作用是多少,然后類似于01背包,一頓瞎搞
1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxn = 1000; 4 int dp[maxn]; 5 struct node{ 6 int s,t,w; 7 bool operator<(const node &o) const{ 8 return t < o.t; 9 } 10 }m[maxn]; 11 int main(){ 12 int kase,n; 13 scanf("%d",&kase); 14 while(kase--){ 15 scanf("%d",&n); 16 for(int i = 0; i < n; ++i){ 17 scanf("%d %d %d",&m[i].s,&m[i].t,&m[i].w); 18 } 19 sort(m,m+n); 20 memset(dp,0,sizeof dp); 21 for(int i = 0; i < n; ++i){ 22 for(int j = m[n-1].t; j >= 0; --j){ 23 if(j >= m[i].t) dp[j] = max(dp[j],dp[m[i].s - 1] + m[i].w); 24 } 25 } 26 cout<<dp[m[n-1].t]<<endl; 27 } 28 return 0; 29 } View Code?
轉(zhuǎn)載于:https://www.cnblogs.com/crackpotisback/p/4627236.html
總結(jié)
以上是生活随笔為你收集整理的ECNUOJ 2615 会议安排的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Rational Rose如何删除线段
- 下一篇: 小米商城