xujie賣車
time limit:1000ms,special time limit:2500ms,memory limit:32768kb
total submit users:1,accepted users:1
problem 11182 :no special judgement
problem description
臨近畢業,sxj_program(xujie)打算賣掉他的二手自行車,但他卻不知道應該賣多少錢才合適。所以他打算研究一種方法來評估自行車的**。 下圖是xujie的寶馬(現在可能是3,4手了……)。看得出來,xujie很愛護他的寶馬,剎車,車座和輪胎都保養得很好,只是車軸掉了幾根。所 以他決定根據剩下的車軸來評估**。作為一名nku acmer,xujie不想簡單地將**與車軸的數量掛鉤,而是根據"knot"。"knot"的含義是由車軸組成的集合,這個集合中的每根車軸兩兩相 交。為了簡化這個問題,xujie將自行車的輪子看成乙個圓,而每根車軸看成圓上的一條弦。
因為快要畢業了,xujie想要好好地吃喝玩樂一把,順便找找妹子,沒時間解決這個問題,所以他想請你來幫幫忙(當然,xujie已經畢業了,車也 賣出去了,但是他還是想知道根據這種方法評估出來的**)。xujie會給你乙個車輪(圓和圓上的一些弦),請你告訴xujie最大的"knot"的大小 是多少,乙個"knot"的大小為它的元素個數。
input
輸入的第一行是乙個正整數n(n<=2000),表示車軸的數量。接下來的n行,每行輸入兩個整數i,j(1<=i,j<=2*n).表示該車軸由圓上的i點連線到j點。 假定從圓上某點開始,點1,點2,...按順時針排列。注意,因為可能會有一些車軸交於圓上的同一點,這種情況下的點數會小於2*n.
output
輸出最大的"knot"的大小。
sample input
31 32 56 4sample output
2judge tips
樣例如圖所示,最多有兩根車軸彼此相交,所以答案為2。
附加樣例:
sample input:
41 6
2 53 5
4 7 sample output:
3 problem source
nkpc8
將每條弦看成區間(l,r)(l < r),
則滿足條件的集合是l 和 r分別非遞減,又相交的條件易知
處理:先按l排序,l相同按rpaixu
列舉每個起始區間p,在與p相交的所有區間中求出乙個r的最長子序列
例2•
,
#include #include using namespace std;
#define n 2002
struct node
}pt[n];
int n,a[n];
bool cmp(node a,node b)
//返回第乙個比x大的數
//最長非遞減序列
int bs(int r,int x)
return l;
}int main()
}++top;
if(top > res)
res = top ;
}printf("%d\n",res);
return 0;
}
最長非遞減子串行的應用
description 我們有乙個數列a1,a2.an,你現在要求修改數量最少的元素,使得這個數列嚴格遞增。其中無論是修改前還是修改後,每個元素都必須是整數。請輸出最少需要修改多少個元素。input 第一行輸入乙個 t 1 leq t leq 10 表示有多少組資料 每一組資料 第一行輸入乙個 n ...
動態規劃之最長非遞減子串行
在乙個數字序列中,找到乙個最長的非連續子串行,使得這個子串行是不下降 非遞減 現有序列a 則a的最長不下降子串行是。如果有多個最長序列,只需選數字順位靠後的序列從大到小輸出。輸入2行 第一行乙個整數n,表示有n個整數的序列要輸入,n 1000 第二行共有n個整數。輸出最長的不下降子串行,只需選數字順...
最長非遞減子串行 dp 二分
時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 乙隻青蛙出去旅遊,因為中國有一句古話說的好 由簡入奢易,由奢入儉難 所以這只青蛙當看的當前景點比前面看過的景點差的時候,青蛙就會說 不開心 為了避免這只青蛙說 不開...