瞎搞DP 改造二叉樹

2021-08-06 03:28:23 字數 665 閱讀 8626

時間限制: 1 sec  記憶體限制: 128 mb

2 2 2

1 01 1

2考試時居然有人看成了樹規。。。把中序遍歷搞出來就成了單調上公升,但是單調不下降子串行最好求。。

新技巧:把a[i]-i.這樣就變成單調不下降的了。

對n^2進行優化:記錄長度為i的不下降的子串行最小a[i]進行記錄,upper_bound進行查就行了。

#include#include#include#include#include#define n 100000

#define inf 1000000000

using namespace std;

int read()

while(x>='0'&&x<='9')

return sum*f;

}int n,a[n+5],lc[n+5],rc[n+5],val[n+5],cnt;

int f[n+5],t[n+5];

void tree(int x)

int main()

tree(1);

int ans=0;

for(int i=1;i<=n;i++)val[i]-=i;

for(int i=1;i<=n;i++)

//cout<

改造二叉樹

description 小y在學樹論時看到了有關二叉樹的介紹 在電腦科學中,二叉樹是每個結點最多有兩個子結點的有序樹。通常子結點被稱作 左孩子 和 右孩子 二叉樹被用作二叉搜尋樹和二叉堆。隨後他又和他人討論起了二叉搜尋樹。什麼是二叉搜尋樹呢?二叉搜尋樹首先是一棵二叉樹。設key p 表示結點p上的數...

改造二叉樹

題目描述 小y在學樹論時看到了有關二叉樹的介紹 在電腦科學中,二叉樹是每個結點最多有兩個子結點的有序樹。通常子結點被稱作 左孩子 和 右孩子 二叉樹被用作二叉搜尋樹和二叉堆。隨後他又和他人討論起了二叉搜尋樹。什麼是二叉搜尋樹呢?二叉搜尋樹首先是一棵二叉樹。設key p 表示結點p上的數值。對於其中的...

改造二叉樹(bst)

題目大意 給你一棵二叉樹,讓你改變最少的結點上的數值,使這棵二叉樹變成bst,求這個需要改變的最少的結點數。演算法 二分 dp 一開始就沒理解題目問的真正內涵,想了半天的樹型dp,結果肯定是果斷不對,看了題解才知道bst就是二叉樹中序遍歷之後保持有序,進一步得知其實就是要我們求lis。將這棵二叉樹中...