題目描述
「我有個願望,我希望穿越一切找到你。」
這是個二維平面世界,平面上有n個特殊的果實,我從(0,0)點出發,希望得到盡量多的果實,但是出於某種特殊的原因,我的運動方式只有三種(假設當前我在(x,y)):
1、我可以走到(x+1,y)
2、我可以走到(x,y+1)
3、我可以走到(x+1,y+1)
現在我需要你的幫助,幫我找出我最多能夠得到多少個果實。
輸入
第一行乙個整數n表示有多少個被標記的點
接下來n行每行兩個整數x,y表示乙個點的座標
輸出
一行乙個整數表示答案,表示我最多能夠得到多少個果實。
樣例輸入
8-2 -1
-2 -301
1122
3232
33
樣例輸出
6
資料範圍
對於70%的資料1<=n<=1000
對於100%的資料1<=n<=100000,-10^9<=x,y<=10^9
題解:由於只能從(0,0)向下向右向右下走,所以只有第一象限內的點有用。將每個點按x為第一關鍵字,y為第二關鍵字排序。
求排序後的序列的最長不下降子串行即可。
#include#include#include
using
namespace
std;
const
int n=1e5+10
;inline
intf()
struct
point
}p[n];
intn,ind,stk[n];
intmain()
sort(p+1,p+1+ind);
stk[++stk[0]]=p[1
].y;
for(int i=2;i<=ind;i++)
if(p[i].y>=stk[stk[0
]]) stk[++stk[0]]=p[i].y;
else
stk[w]=p[i].y;
}printf(
"%d\n
",stk[0
]); fclose(stdin),
fclose(stdout);
return0;
}
noip模擬賽 密碼
表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...
NOIP模擬賽 老師
題目描述 一座有n層的教學樓裡有一些學生,第i 0 i n 層有studentsi個學生。你被給定了乙個數k,如果第i層有x個學生,那麼這一層需要 x k 個老師。你可以調整每個學生的樓層,但是每個學生至多只能調整一層,就是說第i層的學生只能去第i 1層 如果有的話 第i層 第i 1層 如果i 1 ...
NOIP模擬賽 分錢
題目描述 兩個人在街上撿到了一些錢,這些錢共有n張,他們等了很久也沒有等來失主,於是決定把錢平分。但錢可能無法平分。他們先把能夠平分的錢盡量先平分了,使得剩下不能平分的錢盡量少。這些不能平分的錢怎麼辦呢他?他們決定拿去賭場裡面賭一把。他們運氣太好了,那些不能平分的錢變成了雙倍,於是他們就把那個錢分了...