我要日更嚶嚶嚶》_<
原題戳》
<<(其實是戳不動的,複製貼上吧)
快noip了,yyy很緊張!
現在各大oj上有n個比賽,每個比賽的開始、結束的時間點是知道的。
yyy認為,參加越多的比賽,noip就能考的越好(假的)
所以,他想知道他最多能參加幾個比賽。
由於yyy是蒟蒻,如果要參加乙個比賽必須善始善終,而且不能同時參加2個及以上的比賽。
輸入格式:
第一行是乙個整數n ,接下來n行每行是2個正整數ai,bi(ai輸出格式:
乙個整數最多參加的比賽數目。
輸入樣例#1:
30 22 4
1 3
輸出樣例#1:
2
對於20%的資料,n≤10;
對於50%的資料,n≤1000;
對於70%的資料,n≤100000;
對於100%的資料,n≤1000000,0≤ai<bi≤1000000。
這題是一道典型的貪心入門題.但既然他被放了dp標籤,就試試用dp來做吧~~~
和貪心剛開始時一樣,我們先用sort把資料排一下續,定義cmp函式為
struct miku
mk[1000005];
int cmp(miku a,miku b)
之後就是遞迴了.a[i]表示前i場考試最多參加場次.在這裡,我們需要乙個引數s,它代表著必能參加a[i]的情況下最大場次數.(借助**理解).該時刻s與i滿足mk[s+1].r>mk[i].l 且mk[s].r<=mk[i].再用動態方程a[i]=max(a[i-1],a[s]+1);可求得在i場比賽中可以參加的最多場數a[i].**如下:
#include#include#include
using
namespace
std;
struct
miku
mk[1000005
];int
cmp(miku a,miku b)
int max(int a,int
b)int a[1000005
];int
main()
cout
}
當然~~~有這功夫貪心乙個for迴圈就結束了~~~~~但是這題對於理解dp還是有很大幫助的= =
じゃ まだ明日》w<
洛谷P1803凌亂的yyy
快noip了,yyy很緊張!現在各大oj上有n個比賽,每個比賽的開始 結束的時間點是知道的。yyy認為,參加越多的比賽,noip就能考的越好 假的 所以,他想知道他最多能參加幾個比賽。由於yyy是蒟蒻,如果要參加乙個比賽必須善始善終,而且不能同時參加2個及以上的比賽。輸入格式 第一行是乙個整數n 接...
洛谷 P1803 凌亂的yyy
快noip了,yyy很緊張!現在各大oj上有n個比賽,每個比賽的開始 結束的時間點是知道的。yyy認為,參加越多的比賽,noip就能考的越好 假的 所以,他想知道他最多能參加幾個比賽。由於yyy是蒟蒻,如果要參加乙個比賽必須善始善終,而且不能同時參加2個及以上的比賽。輸入格式 第一行是乙個整數n 接...
洛谷 P1803 凌亂的yyy 線段覆蓋
話說個人覺得前面的幾篇並不是很好,其實沒有那麼難,也沒有那麼長 很久以前就看到了,但貌似一直認為自己的演算法是錯誤的,結果交上去發現是正解 首先按照時間排序 貪心 結束時間早 盡可能不影響後面的比賽 的在前,若結束時間相同,則開始時間晚 盡可能不影響前面的比賽 的在前。如果兩者的判斷順序反了,就把最...