题目描述 Description

数轴上有n条线段,线段的两端都是整数坐标,坐标范围在0~1000000,每条线段有一个价值,请从n条线段中挑出若干条线段,使得这些线段两两不覆盖(端点可以重合)且线段价值之和最大。

n<=1000

输入描述 Input Description

第一行一个整数n,表示有多少条线段。

接下来n行每行三个整数, ai bi ci,分别代表第i条线段的左端点ai,右端点bi(保证左端点<右端点)和价值ci。

输出描述 Output Description

输出能够获得的最大价值

样例输入 Sample Input

3

1 2 1

2 3 2

1 3 4

样例输出 Sample Output

4

觉得这道题是最长递增子序列,因为可以用跟 线段覆盖 一样的预处理,按右节点递增排序,然后问题就转换为最长递增子序列了 ,w[i] 表示排好序后第 i 个线段的价值,dp[i] 表示当前的前 i 个线段所能获得最大价值,而

dp[i] = max{ dp[j] + w[i]  } (  1 <= j < i )

/*
作者:t_rex
题目:p3027 线段覆盖 2
*/
#include <iostream>
using namespace std;
int k[1000][3];
int w[1000];
void quicksort(int a[][3], int b, int e){
//快速排序
if(b >= e)
return;
int i = b, j = e + 1, n, m, k;
int x = a[i][1], y = a[i][0], z = a[i][2];
while(true){
while(a[++i][1] < x && i < j);
while(a[--j][1] > x);
if(i >= j)
break;
else{
n = a[i][0], m = a[i][1], k = a[i][2];
a[i][0] = a[j][0], a[i][1] = a[j][1], a[i][2] = a[j][2];
a[j][0] = n, a[j][1] = m, a[j][2] = k;
}
}
a[b][0] = a[j][0], a[b][1] = a[j][1], a[b][2] = a[j][2];
a[j][0] = y, a[j][1] = x, a[j][2] = z;
quicksort(a, j+1, e);
quicksort(a, b, j-1);
} int main(){
int n, i = 0, a, b, c, j, max_val = 0;
cin >> n;
for(; i < n; i++){
cin >> a >> b >> c;
if(a < b) swap(a, b);
k[i][0] = b, k[i][1] = a, k[i][2] = c;
}
quicksort(k, 0, n-1);
for(i = 0; i < n; i++) w[i] = k[i][2];
for(i = 1; i < n; i++){
for(j = 0; j < i; j++){
if(k[j][1] <= k[i][0] && w[j] + k[i][2] > w[i]) w[i] = w[j] + k[i][2];
max_val = max(max_val, w[i]);
}
}
cout << max_val ;
return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

wikioi 3027 线段覆盖 2的更多相关文章

  1. CODEVS 3027 线段覆盖2

    首先,先看题.....(虽然比较简单 3027 线段覆盖 2    时间限制: 1 s  空间限制: 128000 KB 题目描述 Description 数轴上有n条线段,线段的两端都是整数坐标,坐 ...

  2. codevs 3027线段覆盖2

    传送门 3027 线段覆盖 2  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold   题目描述 Description 数轴上有n条线段,线段的两端都是整数坐标, ...

  3. wikioi 1214 线段覆盖

    题目描述 Description 给定x轴上的N(0<N<100)条线段,每个线段由它的二个端点a_I和b_I确定,I=1,2,--N.这些坐标都是区间(-999,999)的整数.有些线段 ...

  4. Codevs 1643 & 3027 线段覆盖

    1643 题意 给定若干条线段,问最多可以安排多少条使得没有重合. 思路 贪心,同安排schedule,按结束时间早的排序. Code #include <bits/stdc++.h> # ...

  5. 线段覆盖 2(序列DP)

    Code vs 3027 线段覆盖 2   题目描述 Description 数轴上有n条线段,线段的两端都是整数坐标,坐标范围在0~1000000,每条线段有一个价值,请从n条线段中挑出若干条线段, ...

  6. CODEVS3037 线段覆盖 5[序列DP 二分]

    3037 线段覆盖 5   时间限制: 3 s   空间限制: 256000 KB   题目等级 : 钻石 Diamond 题解       题目描述 Description 数轴上有n条线段,线段的 ...

  7. CODEVS1643 线段覆盖3[贪心]

    1643 线段覆盖 3   时间限制: 2 s   空间限制: 256000 KB   题目等级 : 黄金 Gold 题解       题目描述 Description 在一个数轴上有n条线段,现要选 ...

  8. COGS 265线段覆盖[线段树]

    265. 线段覆盖 ★★☆   输入文件:xdfg.in   输出文件:xdfg.out   简单对比时间限制:2 s   内存限制:20 MB [问题描述] 有一根长度为 L 的白色条状物.有两种操 ...

  9. CodeVS 线段覆盖1~5

    #include <bits/stdc++.h> using namespace std; ; struct Info{int l,r;}P[Maxn]; int n,Cnt,F[Maxn ...

随机推荐

  1. AngularJS promise()

    实例说明一 <!DOCTYPE html> <html ng-app="my-app"> <head> <meta charset=&qu ...

  2. 省常中模拟 Test3 Day1

    tile 贪心 题意:给出一个矩形,用不同字母代表的正方形填充,要求相邻的方块字母不能相同,求字典序(将所有行拼接起来)最小的方案. 初步解法:一开始没怎么想,以为策略是每次填充一个尽量大的正方形.但 ...

  3. c & c++中static的总结

    static 修饰的三种作用 (1) 静态局部变量 (2) 模块内的全局变量.函数,不可以被其他模块访问 (3) 类的静态成员 其中(3)只在c++中有. (1) 静态局部变量.局部变量一般在函数体内 ...

  4. BMP图像格式

    BMP(全称Bitmap)是Window操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广.它采用位映射存储格式,除了图像深度可选以外,不采用其他任 ...

  5. asp.net夜话之十一:web.config详解

    转:http://blog.csdn.net/zhoufoxcn/article/details/3265141 在开发中经常会遇到这样的情况,在部署程序时为了保密起见并不将源代码随项目一同发布,而我 ...

  6. MySQL 5.6 复制:GTID 的优点和限制(第一部分)

    全局事务标示符(Global Transactions Identifier)是MySQL 5.6复制的一个新特性.它为维护特定的复制拓扑结构下服务器的DBA们大幅度改善他们的工作状况提供了多种可能性 ...

  7. “FormCRUD.csProj.FormMain.Name”隐藏了继承的成员“System.Windows.Forms.Control.Name”。如果是有意隐藏,请使用关键字 new。

    一旦运行就显示:“FormCRUD.csProj.FormMain.Name”隐藏了继承的成员“System.Windows.Forms.Control.Name”.如果是有意隐藏,请使用关键字 ne ...

  8. POJ 3067 Japan

    Japan Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25489   Accepted: 6907 Descriptio ...

  9. [Everyday Mathematics]20150201

    设数列 $\sed{a_n}$ 单调递减趋于零, 证明 $\dps{\vsm{n}a_n}$ 收敛当且仅当 $\dps{\vsm{n}3^k a_{3^k}}$ 收敛.

  10. 火狐和google游览器的 hack独有识别 css

    先来看google的: /* 这针对于webkit内核的游览器.包括苹果谷歌游览器等*/ @media screen and (-webkit-min-device-pixel-ratio:0) { ...