wikioi 線段覆蓋 2

2022-04-11 05:01:47 字數 594 閱讀 5141

# 有個小錯誤調了半天,最終發現sort(line, line+n)錯了,後面那個是exclusive的,所以要line+n+1。

# 按照右端點從小到大排序。原因是迴圈結構中是i從1到n, i比較小的時候盡可能選右端點比較小的,這樣才可以為後面的線段留下更大的空間。

# f[i]表示:算前i條線段時,選上第i條線段,能獲得的最大價值。f[i]=max+c[i] (if 不重合)

#include #include #include #include #define max(a, b) a>b?a:b

#define len 1005

using namespace std;

struct line

;int n;

line line[len];

int f[len];

bool comp(line a, line b)

void init()

}

int main()

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

}printf("%d\n", ans);

return 0;

}

wikioi 3027 線段覆蓋 2

數軸上有n條線段,線段的兩端都是整數座標,座標範圍在0 1000000,每條線段有乙個價值,請從n條線段中挑出若干條線段,使得這些線段兩兩不覆蓋 端點可以重合 且線段價值之和最大。n 1000 第一行乙個整數n,表示有多少條線段。接下來n行每行三個整數,ai bi ci,分別代表第i條線段的左端點a...

1214 線段覆蓋wiki oi

題目描述 description 給定x軸上的n 0輸入描述 input description 輸入第一行是乙個整數n。接下來有n行,每行有二個空格隔開的整數,表示一條線段的二個端點的座標。輸出描述 output description 輸出第一行是乙個整數表示最多剩下的線段數。樣例輸入 samp...

wikioi 1214 線段覆蓋

給定x軸上的n 0 輸入第一行是乙個整數n。接下來有n行,每行有二個空格隔開的整數,表示一條線段的二個端點的座標。輸出第一行是乙個整數表示最多剩下的線段數。3 6 3 1 3 2 5 2 0貪心解法 首先將線段端點調整為左端點小於 或等於 右端點 第二,根據右端點將線段從小到大排序 第三,掃瞄一遍,...