爬山
時間限制:c/c++語言 1000ms;其他語言 3000ms
記憶體限制:c/c++語言 65536kb;其他語言 589824kb
題目描述:
小b曾經酷愛網路遊戲,整日通宵達旦的玩遊戲,導致身體素質急劇下降,因此下決心痛改前非,遠離一切電子產品,並通過遠足爬山的方式改變生活方式並提高身體素質。由於擔心對身體造成太大的負荷,他總是選擇最平坦的路徑,並記錄每天的行程情況及達到的最高海拔,使得連續兩天之間的海拔之差最多為乙個單位。不幸的是,在行程結束時,他不小心掉進河裡,造成部分記錄資訊遺失。他想知道自己行程中可能達到的最高海拔,你是否能夠幫忙?
輸入輸入有若干組,每組的第一行為空格分隔的兩個整數n和m,1<=n<=10^8, 1<=m<=10^5,分別表示行程天數以及未遺失的記錄數。隨後緊跟m行,每行為空格分隔的兩個整數d和h,1<=d<=n, 0<=h<=10^8,表示行程的第幾天及當天達到的最高海拔。
輸出對每組輸入,如果記錄是可能的,則在單獨的行中輸出可能達到的最高海拔,否則輸出字串「impossible」(不含引號)。
樣例輸入
8 22 0
7 08 3
2 07 0
8 3樣例輸出
2impossible
hint
第一天和最後一天的海拔可以是任何值。
//爬山,輸入:n,m,分別表示一共爬了幾天,m表示現存的天數
//輸入m組數,[i,j]表示現存的第i天到達的高度j
//輸出:若現存記錄是有效的,則返回可能到達的最高的高度;若記錄是無效的,則返回字串"impossible"
//用map記錄現存第i天的高度j,用vector記錄現存的天數
#include #include #include using namespace std;
int main()
//將輸入的天數進行排序
sort(v.begin(),v.end());
//首先處理第乙個資料到第一天的最大值??
int max=vi[v[0]]+v[0]-1;
for(int i=1;iv[i]-v[i-1])
else
}//最後處理以下最後一天的值
int temp=vi[v[m-1]]+n-v[m-1];
if(temp>max)
max=temp;
//輸出最大值
cout<
帶我去爬山
帶我去爬山吧,我想和你一起去爬岳麓山。你眸子的美麗與麓山的楓葉交相互應撥動著我心中的五彩璇。你凌亂的步姿不防穩健些 你嚴肅的嘴角不妨微笑些,麓山的晚風和我向你敞開的心靈將對你傾訴乙個古老的傳說在你我之間的演澤。樹影婆娑,雲消月現,身行影隨,我雖不言語,但眼神卻洩露了我內心的秘密,月光之下,我能體悟到...
NOIP模擬 爬山
國家一級爬山運動員h10今天獲得了一張有著密密麻麻標記的地圖,在好奇心的驅使下,他又踏上了去爬山的路。對於爬山,h10有乙個原則,那就是不走回頭路,於是他把地圖上的所有邊都標記成了有向邊。他決定從點s出發,每到達乙個新的節點他就可以獲得一定的成就值。同時h10又是乙個很珍惜時間的運動員,他不希望這次...
小貓爬山(dfs)
時間限制 1 sec 記憶體限制 128 mb 題目描述 freda和rainbow飼養了n只小貓,這天,小貓們要去爬山。經歷了千辛萬苦,小貓們終於爬上了山頂,但是疲倦的它們再也不想徒步走下山了 嗚咕 freda和rainbow只好花錢讓它們坐索道下山。索道上的纜車最大承重量為w,而n只小貓的重量分...