nyoj201作業題 最長遞增 減 子串行

2021-08-18 09:14:03 字數 1241 閱讀 5747

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:3描述

小白同學這學期有一門課程叫做《數值計算方法》,這是一門有效使用數字計算機求數學問題近似解的方法與過程,以及由相關理論構成的學科……

今天他們的teacher s,給他們出了一道作業題。teacher s給了他們很多的點,讓他們利用拉格朗日插值公式,計算出某嚴格單調函式的曲線。現在小白抄下了這些點,但是問題出現了,由於我們的小白同學上課時走了一下神,他多抄下來很多點,也就是說這些點整體連線不一定還是嚴格遞增或遞減的了。這可怎麼處理呢。為此我們的小白同學制定了以下的取點規則:

1、取出盡可能多的滿足構成嚴格單調曲線的點,作為曲線上的點。

2、通過拉格朗日插值公式,計算出曲線的方程

但是,他又遇到了乙個問題,他發現他寫下了上百個點。[- -!佩服吧],這就很難處理了(o_o).。由於拉格朗日插值公式的計算量與處理的點數有關,因此他請大家來幫忙,幫他統計一下,曲線上最多有多少點,以此來估計計算量。

已知:沒有任何兩個點的橫座標是相同的。輸入

本題包含多組資料:

首先,是乙個整數t,代表資料的組數。

/*

此題的意思為找到嚴格遞增或者嚴格遞減的子串行的最長長度;

由於x的值各不相同,所以可以按照x排序;然後對y求最長遞增子串行和最長遞減子串行,取兩者較大的輸出;

*/#include#includeusing namespace std;

struct nodep[1005];

int cmp(node a,node b)

} int maxa=0,maxb=0;

for(i=0;i=maxb)

printf("%d\n",maxa);

else

printf("%d\n",maxb);

} return 0;

}

然後,下面是t組測試資料。對於每組資料報含兩行:

第一行:乙個數字n(1<=n<=999),代表輸入的點的個數。

第二行:包含n個數對x(1<=x<=10000),y(1<=y<=10000),代表所取的點的橫縱座標。

輸出每組輸出各佔一行,輸出公乙個整數,表示曲線上最多的點數

樣例輸入

2

21 2 3 4

32 2 1 3 3 4

樣例輸出

2

2

**

NYOJ 201 作業題 基礎dp

時間限制 3000 ms 記憶體限制 65535 kb 難度 3描述 小白同學這學期有一門課程叫做 數值計算方法 這是一門有效使用數字計算機求數學問題近似解的方法與過程,以及由相關理論構成的學科 今天他們的teacher s,給他們出了一道作業題。teacher s給了他們很多的點,讓他們利用拉格朗...

南陽 201 作業題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 小白同學這學期有一門課程叫做 數值計算方法 這是一門有效使用數字計算機求數學問題近似解的方法與過程,以及由相關理論構成的學科 今天他們的teacher s,給他們出了一道作業題。teacher s給了他們很多的點,讓他們利用拉格...

列表的作業題

1.生成50 300之間可重複的 10個資料 存放於列表中,保證列表中元素的順序,對列表進行排重,並對列表使用排序演算法進行降序排序 例如 隨機生成了 70,88,91,70,107,234,91,177,282,197 去重之後 70,88,91,107,234,177,282,197 降序排序 ...