3
Q
加權活動選擇
A
回答
0
C++代碼如下。希望你可以很容易地將其翻譯成任何其他語言。
#include <cstdio>
#include <algorithm>
using namespace std;
#define N 1000
struct activity
{
int start;
int finish;
int weight;
};
bool comp(activity m, activity n)
{
return m.finish>n.finish;
}
int dp[N];
int main()
{
int n, maxi=-1;
int DP[N];
activity a[N];
scanf("%d", &n);
for(int i=0;i<n;i++)
{
scanf("%d %d %d", &a[i].start, &a[i].finish, &a[i].weight);
a[i].pos=i+1;
}
sort(a, a+n, comp);
for(int i=0; i<n; i++)
dp[i]=a[i].weight;
for(int i=1; i<n; i++)
{
for(int j=0; j<i; j++)
{
if(a[j].finish<=a[i].start)
dp[i]=max(dp[i], dp[j]+a[i].weight);
maxi=max(dp[i], maxi);
}
}
printf("%d\n", maxi);
int act[N];
int k=0;
for(int i=n-1;i>=0;i--)
{
if(dp[i]==maxi)
{
maxi-=a[i].weight;
act[k++]=a[i].pos;
}
}
for(int i=k-1;i>=0;i--)
printf("%d ", act[i]);
return 0;
}
相關問題
- 1. 部分重疊時間的加權活動選擇
- 2. Android活動選擇
- 3. Jquery |添加活動日期選擇器
- 4. 選擇標籤時加載活動
- 5. 活動未列在活動選擇器
- 6. 隨機加權選擇
- 7. UIActivityViewController:選擇被拒絕權限的活動會導致死鎖
- 8. Bootstrap Scrollspy活動選擇器
- 9. 選擇下一個活動
- 10. 選擇性活動記錄
- 11. 軌活動記錄選擇
- 12. 如何選擇活動層?
- 13. 在jQuery Mobile中選擇活動選項
- 14. 選擇活動選項卡按日期
- 15. 動態規劃 - 活動選擇
- 16. 在啓動時選擇活動
- 17. Rails:動態選擇活動記錄
- 18. 權限添加日曆活動iOS
- 19. 帶類別的加權隨機選擇
- 20. T-SQL中的隨機加權選擇
- 21. 熊貓隨機加權選擇
- 22. 隨機選擇加權最低
- 23. jquery選擇權之後追加
- 24. 生成字符串的加權選擇
- 25. 如何選擇以加權的方式
- 26. 加權選擇簡短和簡單
- 27. 加載動態「選擇」選擇元素
- 28. 隨機選擇加權最近的選擇
- 29. 修改選擇算法來選擇加權項
- 30. 活動導出= false在活動選擇器中列出