日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【地狱副本】数据结构之线段树Ⅲ——区间最值/赋值/修改/历史值操作(HDU5306,Tyvj 1518,【清华集训2015】V,HDU6315,HDU1828,POJ3162)

發(fā)布時(shí)間:2023/12/3 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【地狱副本】数据结构之线段树Ⅲ——区间最值/赋值/修改/历史值操作(HDU5306,Tyvj 1518,【清华集训2015】V,HDU6315,HDU1828,POJ3162) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • Gorgeous Sequence
  • Tyvj 1518 CPU監(jiān)控
  • 【清華集訓(xùn)2015】V
  • Naive Operations
  • Picture
  • Walking Race

Gorgeous Sequence

HDU5306

操作

  • 區(qū)間與xxxmin\rm minmin
  • 查詢區(qū)間最大值
  • 查詢區(qū)間和

比較暴力的線段樹維護(hù)區(qū)間

  • Max : 區(qū)間最大值
  • sub_max : 嚴(yán)格小于最大值的區(qū)間次大值
  • cnt_max : 最大值個(gè)數(shù)
  • sum : 區(qū)間和
  • tag : 區(qū)間取min\rm minmin的標(biāo)記記錄值

考慮取min\rm minmin操作走到一個(gè)區(qū)間上

  • 最大值都不大于取min\rm minmin的對象,說明操作沒用,return

  • 如果小于最大值卻嚴(yán)格大于次大值

    此時(shí)的操作相當(dāng)于區(qū)間加,打標(biāo)記 sum-=(Max-x)*max_cnt;Max=x

  • 否則暴力走兩邊

利用勢能分析時(shí)間復(fù)雜度

  • 定義勢能函數(shù)為∑idi\sum_i d_ii?di?iii是線段樹上的節(jié)點(diǎn),did_idi?是這個(gè)節(jié)點(diǎn)對應(yīng)的區(qū)間中,互不相同的元素個(gè)數(shù)
  • 初始時(shí),顯然勢能是O(nlogn)O(\rm nlogn)O(nlogn)
  • 暴力對長度為nnn的區(qū)間做min\rm minmin,消耗的時(shí)間是O(n)O(n)O(n),勢能也會減少O(n)O(n)O(n)
#include <cstdio> #include <iostream> using namespace std; #define int long long #define maxn 1000005 #define lson num << 1 #define rson num << 1 | 1 struct node {int Max, sub_max, cnt_max, sum, tag; }t[maxn << 2]; int a[maxn];void pushup( int num ) {if( t[lson].Max > t[rson].Max ) {t[num].Max = t[lson].Max;t[num].cnt_max = t[lson].cnt_max;t[num].sub_max = max( t[lson].sub_max, t[rson].Max );}else if( t[lson].Max < t[rson].Max ) {t[num].Max = t[rson].Max;t[num].cnt_max = t[rson].cnt_max;t[num].sub_max = max( t[rson].sub_max, t[lson].Max );}else {t[num].Max = t[lson].Max;t[num].cnt_max = t[lson].cnt_max + t[rson].cnt_max;t[num].sub_max = max( t[lson].sub_max, t[rson].sub_max );}t[num].sum = t[lson].sum + t[rson].sum; }void build( int num, int l, int r ) {t[num].Max = t[num].sub_max = t[num].cnt_max = t[num].sum = 0, t[num].tag = -1;if( l == r ) {t[num].Max = t[num].sum = a[l];t[num].sub_max = -1;t[num].cnt_max = 1;return;}int mid = l + r >> 1;build( lson, l, mid );build( rson, mid + 1, r );pushup( num ); }void pushdown( int num ) {if( ! ~ t[num].tag ) return;int val = t[num].tag;if( t[lson].Max > val ) {t[lson].sum -= ( t[lson].Max - val ) * t[lson].cnt_max;t[lson].Max = t[lson].tag = val;}if( t[rson].Max > val ) {t[rson].sum -= ( t[rson].Max - val ) * t[rson].cnt_max;t[rson].Max = t[rson].tag = val;}t[num].tag = -1; }void modify( int num, int l, int r, int L, int R, int val ) {if( R < l or r < L or t[num].Max <= val ) return;if( L <= l and r <= R and t[num].sub_max < val ) {t[num].sum -= ( t[num].Max - val ) * t[num].cnt_max;t[num].Max = t[num].tag = val;return;}pushdown( num );int mid = l + r >> 1;modify( lson, l, mid, L, R, val );modify( rson, mid + 1, r, L, R, val );pushup( num ); }int query_max( int num, int l, int r, int L, int R ) {if( r < L or R < l ) return -1;if( L <= l and r <= R ) return t[num].Max;pushdown( num );int mid = l + r >> 1;return max( query_max( lson, l, mid, L, R ), query_max( rson, mid + 1, r, L, R ) ); }int query_sum( int num, int l, int r, int L, int R ) {if( r < L or R < l ) return 0;if( L <= l and r <= R ) return t[num].sum;pushdown( num );int mid = l + r >> 1;return query_sum( lson, l, mid, L, R ) + query_sum( rson, mid + 1, r, L, R ); }signed main() {int n, m, T, opt, l, r, x;scanf( "%lld", &T );while( T -- ) {scanf( "%lld %lld", &n, &m );for( int i = 1;i <= n;i ++ ) scanf( "%lld", &a[i] );build( 1, 1, n );while( m -- ) {scanf( "%lld %lld %lld", &opt, &l, &r );switch ( opt ) {case 0 : { scanf( "%lld", &x ); modify( 1, 1, n, l, r, x );break; }case 1 : { printf( "%lld\n", query_max( 1, 1, n, l, r ) ); break; }case 2 : { printf( "%lld\n", query_sum( 1, 1, n, l, r ) ); break; }}}}return 0; }

Tyvj 1518 CPU監(jiān)控

BZOJ3064

操作

  • 區(qū)間加
  • 區(qū)間賦值
  • 查詢區(qū)間最大值
  • 查詢區(qū)間歷史最大值

線段樹維護(hù)

  • Max : 區(qū)間最大值
  • Hmax : 區(qū)間歷史最大值
  • add : 區(qū)間加標(biāo)記
  • Hadd : 區(qū)間歷史最大加標(biāo)記
  • tag : 區(qū)間賦值標(biāo)記
  • Htag : 區(qū)間歷史最大賦值標(biāo)記

假想不合并標(biāo)記,每個(gè)節(jié)點(diǎn)上有一個(gè)隊(duì)列(按照時(shí)間先進(jìn)先出),放著所有曾經(jīng)推過來的標(biāo)記

下推標(biāo)記時(shí),將該節(jié)點(diǎn)上所有的標(biāo)記推到兩個(gè)兒子處,并清空隊(duì)列

對于每個(gè)節(jié)點(diǎn),每次有一個(gè)區(qū)間加add標(biāo)記推來時(shí),令Max←Max+add 然后Hmax←max(Hmax,Max)

設(shè)推來的加法標(biāo)記分別為add[1...k]add[1...k]add[1...k],其前綴和為S[1...k]S[1...k]S[1...k]

則打上第iii個(gè)標(biāo)記之后,Max的值為Max+S[i]

所以,Hmax的值為max?i=1kMax+S[i]=Max+max?i=1kS[i]\max_{i=1}^k Max+S[i]=Max+\max_{i=1}^k S[i]maxi=1k?Max+S[i]=Max+maxi=1k?S[i]

因此只需記錄max?i=1kS[i]\max_{i=1}^k S[i]maxi=1k?S[i],就能得知該標(biāo)記隊(duì)列對節(jié)點(diǎn)的影響

合并加法標(biāo)記時(shí)簡單求和,前iii個(gè)標(biāo)記合并后恰好等于S[i]S[i]S[i],那么max?i=1kS[i]\max_{i=1}^k S[i]maxi=1k?S[i]可以表述為標(biāo)記的歷史最大值Hadd

此題含有賦值操作,賦值操作優(yōu)先級更高,做法略有不同

賦值一次相當(dāng)于前面所有的加標(biāo)記和當(dāng)前最大值都會被改變

所以賦值的時(shí)候,先下放所有的加標(biāo)記,然后清空(包括歷史)

同時(shí),在加標(biāo)記的時(shí)候如果已經(jīng)有了賦值標(biāo)記,直接把加標(biāo)記疊加在賦值標(biāo)記上

同時(shí)記錄賦值歷史的最大值,其很有可能成為歷史最大值

#include <cstdio> #include <iostream> using namespace std; #define inf 1e18 #define maxn 100005 #define int long long #define lson num << 1 #define rson num << 1 | 1 struct node {int Max, Hmax, add, Hadd, tag, Htag; }t[maxn << 2]; int a[maxn];void build( int num, int l, int r ) {t[num].Max = t[num].Hmax = t[num].tag = t[num].Htag = -inf;t[num].add = t[num].Hadd = 0;if( l == r ) { t[num].Max = t[num].Hmax = a[l]; return; }int mid = ( l + r ) >> 1;build( lson, l, mid );build( rson, mid + 1, r );t[num].Max = t[num].Hmax = max( t[lson].Max, t[rson].Max ); }void pushup( int num ) {t[num].Max = max( t[lson].Max, t[rson].Max );t[num].Hmax = max( t[lson].Hmax, t[rson].Hmax ); }void down( int num, int add, int Hadd ) {if( t[num].Htag != -inf )t[num].Htag = max( t[num].Htag, t[num].tag + Hadd ), t[num].tag += add;elset[num].Hadd = max( t[num].Hadd, t[num].add + Hadd ), t[num].add += add; }void pushdown( int num, int l, int r ) {if( t[num].tag == -inf and ! t[num].add ) return;t[num].Hmax = max( t[num].Hmax, max( t[num].Htag, t[num].Max + t[num].Hadd ) );if( t[num].add ) {t[num].Max += t[num].add;if( l ^ r ) {down( lson, t[num].add, t[num].Hadd );down( rson, t[num].add, t[num].Hadd ); } }if( t[num].tag != -inf ) {t[num].Max = t[num].tag;if( l ^ r ) {t[lson].tag = t[rson].tag = t[num].tag;t[lson].Htag = max( t[lson].Htag, t[num].Htag );t[rson].Htag = max( t[rson].Htag, t[num].Htag );}}t[num].add = t[num].Hadd = 0;t[num].tag = t[num].Htag = -inf; }void add( int num, int l, int r, int L, int R, int val ) {pushdown( num, l, r );if( R < l or r < L ) return;if( L <= l and r <= R ) {if( t[num].tag != -inf ) t[num].tag += val, t[num].Htag = max( t[num].Htag, t[num].tag );else t[num].add += val, t[num].Hadd = max( t[num].Hadd, t[num].add );pushdown( num, l, r );return;}pushdown( num, l, r );int mid = ( l + r ) >> 1;add( lson, l, mid, L, R, val );add( rson, mid + 1, r, L, R, val );pushup( num ); }void modify( int num, int l, int r, int L, int R, int val ) {pushdown( num, l, r );if( R < l or r < L ) return;if( L <= l and r <= R ) {t[num].tag = val;t[num].Htag = max( t[num].Htag, val );pushdown( num, l, r );return;}pushdown( num, l, r );int mid = ( l + r ) >> 1;modify( lson, l, mid, L, R, val );modify( rson, mid + 1, r, L, R, val );pushup( num ); }int query_max( int num, int l, int r, int L, int R ) {if( R < l or r < L ) return -inf;pushdown( num, l, r );if( L <= l and r <= R ) return t[num].Max;int mid = ( l + r ) >> 1;return max( query_max( lson, l, mid, L, R ), query_max( rson, mid + 1, r, L, R ) ); }int queryHmax( int num, int l, int r, int L, int R ) {if( R < l or r < L ) return -inf;pushdown( num, l, r );if( L <= l and r <= R ) return t[num].Hmax;int mid = ( l + r ) >> 1;return max( queryHmax( lson, l, mid, L, R ), queryHmax( rson, mid + 1, r, L, R ) ); }signed main() {int n, m, l, r, x; char opt[5];scanf( "%lld", &n );for( int i = 1;i <= n;i ++ ) scanf( "%lld", &a[i] );build( 1, 1, n );scanf( "%lld", &m );while( m -- ) {scanf( "%s %lld %lld", opt, &l, &r );switch ( opt[0] ) {case 'Q' : { printf( "%lld\n", query_max( 1, 1, n, l, r ) ); break; }case 'A' : { printf( "%lld\n", queryHmax( 1, 1, n, l, r ) ); break; }case 'P' : { scanf( "%lld", &x ); add( 1, 1, n, l, r, x ); break; }case 'C' : { scanf( "%lld", &x ); modify( 1, 1, n, l, r, x );break; }}}return 0; }

【清華集訓(xùn)2015】V

UOJ164

整那么高大上的物理電阻屁用沒有

操作

  • 區(qū)間加
  • 區(qū)間減
  • 區(qū)間賦值
  • 查詢單點(diǎn)值
  • 查詢單點(diǎn)歷史最大值

這題很巧的轉(zhuǎn)化將多個(gè)操作合并成了一種形式

將標(biāo)記改寫成(a,b)形式,標(biāo)記對值的貢獻(xiàn)轉(zhuǎn)移形式改寫成x←max(x+a,b)

  • 區(qū)間加:(val,-inf)
  • 區(qū)間減:(-val,-inf)
  • 區(qū)間賦值:(-inf,val)

標(biāo)記的合并可以推出來,因?yàn)榧臃▽θ∽畲笾禎M足分配率

  • 假設(shè)原來的標(biāo)記為(a1,b1),新來標(biāo)記為(a2,b2)
  • max?(x+a1,b1)←(a2,b2)?max?(max?(x+a1,b1)+a2,b2)?max?(max?(x+a1+a2,b1+a2),b2)\max(x+a_1,b_1)\leftarrow (a_2,b_2)\Rightarrow \max\Big(\max(x+a_1,b_1)+a_2,b_2\Big)\Rightarrow \max\Big(\max(x+a_1+a_2,b_1+a_2),b_2\Big)max(x+a1?,b1?)(a2?,b2?)?max(max(x+a1?,b1?)+a2?,b2?)?max(max(x+a1?+a2?,b1?+a2?),b2?)
  • 新來標(biāo)記合并最后即為x←max?(x+a1+a2,max?(a2+b1,b2))x\leftarrow \max\Big(x+a_1+a_2,\max(a_2+b_1,b_2)\Big)xmax(x+a1?+a2?,max(a2?+b1?,b2?))

考慮當(dāng)前最大值的更新

兩個(gè)標(biāo)記取max\rm maxmax相當(dāng)于兩個(gè)分段一次函數(shù)取max\rm maxmax

max((a1,b1),(a2,b2))=(max(a1,a2),max(b1,b2))\rm max\Big((a_1,b_1),(a_2,b_2))=(max(a_1,a_2),max(b_1,b_2)\Big)max((a1?,b1?),(a2?,b2?))=(max(a1?,a2?),max(b1?,b2?))

再考慮歷史最大值的更新

(a0,b0)表示當(dāng)前,(a1,b1)表示歷史最大值,(c0,d0)表示傳遞點(diǎn)當(dāng)前,(c1,d1)表示傳遞點(diǎn)歷史最大

合并(a0,b0)和(c0,d0):(a0+c0,max?(b0+c0,d0))\Big(a_0+c_0,\max(b_0+c_0,d_0)\Big)(a0?+c0?,max(b0?+c0?,d0?))

合并(a1,b1)和(c1,d1),先把(c1,d1)作用在(a0,b0)上,(a0+c1,max?(b0+c1,d1))\Big(a_0+c_1,\max(b_0+c_1,d_1)\Big)(a0?+c1?,max(b0?+c1?,d1?))

再和(a1,b1)取max:(max?(a1,a0+c1),max?(b1,b0+c1,d1))\Big(\max(a_1,a_0+c_1),\max(b_1,b_0+c_1,d_1)\Big)(max(a1?,a0?+c1?),max(b1?,b0?+c1?,d1?))

(a,b相當(dāng)于兒子,c,d代表父親的信息)

#include <cstdio> #include <iostream> using namespace std; #define maxn 500005 #define int long long #define lson num << 1 #define rson num << 1 | 1 struct node {int a, b, maxa, maxb; }t[maxn << 2]; int w[maxn]; const int inf = 1e18;void build( int num, int l, int r ) {t[num].a = t[num].maxa = 0;t[num].b = t[num].maxb = -inf;if( l == r ) return;int mid = l + r >> 1;build( lson, l, mid );build( rson, mid + 1, r ); }void pushdown( int num ) {if( ! t[num].a and t[num].b == -inf ) return;t[lson].maxa = max( t[lson].maxa, t[lson].a + t[num].maxa );t[lson].maxb = max( t[lson].maxb, max( t[lson].b + t[num].maxa, t[num].maxb ) );t[rson].maxa = max( t[rson].maxa, t[rson].a + t[num].maxa );t[rson].maxb = max( t[rson].maxb, max( t[rson].b + t[num].maxa, t[num].maxb ) );t[lson].a = max( t[lson].a + t[num].a, -inf );t[lson].b = max( t[lson].b + t[num].a, t[num].b );t[rson].a = max( t[rson].a + t[num].a, -inf );t[rson].b = max( t[rson].b + t[num].a, t[num].b );t[num].a = t[num].maxa = 0;t[num].b = t[num].maxb = -inf; }void modify( int num, int l, int r, int L, int R, int a, int b ) {if( r < L or R < l ) return;if( L <= l and r <= R ) {t[num].a = max( t[num].a + a, -inf );t[num].b = max( t[num].b + a, b );t[num].maxa = max( t[num].a, t[num].maxa );t[num].maxb = max( t[num].b, t[num].maxb );return;}pushdown( num );int mid = l + r >> 1;modify( lson, l, mid, L, R, a, b );modify( rson, mid + 1, r, L, R, a, b ); }int query( int num, int l, int r, int pos, int k ) {if( l == r ) {if( ! k ) return max( w[l] + t[num].a, t[num].b );else return max( w[l] + t[num].maxa, t[num].maxb );}pushdown( num );int mid = l + r >> 1;if( pos <= mid ) return query( lson, l, mid, pos, k );else return query( rson, mid + 1, r, pos, k ); }signed main() {int n, m;scanf( "%lld %lld", &n, &m );for( int i = 1;i <= n;i ++ ) scanf( "%lld", &w[i] );build( 1, 1, n );for( int i = 1, opt, l, r, x;i <= m;i ++ ) {scanf( "%lld", &opt );switch ( opt ) {case 1 : { scanf( "%lld %lld %lld", &l, &r, &x ), modify( 1, 1, n, l, r, x, 0 ); break; }case 2 : { scanf( "%lld %lld %lld", &l, &r, &x ), modify( 1, 1, n, l, r, -x, 0 ); break; }case 3 : { scanf( "%lld %lld %lld", &l, &r, &x ), modify( 1, 1, n, l, r, -inf, x ); break; }case 4 : { scanf( "%lld", &x ), printf( "%lld\n", query( 1, 1, n, x, 0 ) ); break; }case 5 : { scanf( "%lld", &x ), printf( "%lld\n", query( 1, 1, n, x, 1 ) ); break; }}}return 0; }

Naive Operations

HDU6315

剛開始區(qū)間全為000,每次區(qū)間只+1+1+1

記錄區(qū)間的最小值,

當(dāng)最小值為000的時(shí)候,說明多疊加了一個(gè)bib_ibi?的倍數(shù)

答案增加111,然后重新把最小值置位bib_ibi? (這倆操作要走到葉子節(jié)點(diǎn)后再實(shí)行)

否則就打上整體?1-1?1的標(biāo)記

#include <cstdio> #include <iostream> using namespace std; #define maxn 100005 #define int long long #define lson num << 1 #define rson num << 1 | 1 struct node {int sum, tag, Min; }t[maxn << 2]; int b[maxn];void build( int num, int l, int r ) {t[num].tag = t[num].sum = 0;if( l == r ) { t[num].Min = b[l]; return; }int mid = l + r >> 1;build( lson, l, mid );build( rson, mid + 1, r );t[num].Min = min( t[lson].Min, t[rson].Min ); }void pushdown( int num ) {if( ! t[num].tag ) return;t[lson].tag += t[num].tag;t[rson].tag += t[num].tag;t[lson].Min -= t[num].tag;t[rson].Min -= t[num].tag;t[num].tag = 0; }void modify( int num, int l, int r, int L, int R ) {if( R < l or r < L ) return;if( L <= l and r <= R ) {t[num].Min --;if( t[num].Min ) { t[num].tag ++; return; }else if( l == r ) { t[num].sum ++, t[num].Min = b[l]; return; }}pushdown( num );int mid = l + r >> 1;modify( lson, l, mid, L, R );modify( rson, mid + 1, r, L, R );t[num].sum = t[lson].sum + t[rson].sum;t[num].Min = min( t[lson].Min, t[rson].Min ); }int query( int num, int l, int r, int L, int R ) {if( r < L or R < l ) return 0;if( L <= l and r <= R ) return t[num].sum;pushdown( num );int mid = l + r >> 1;return query( lson, l, mid, L, R ) + query( rson, mid + 1, r, L, R ); }signed main() {int n, Q, l, r; char opt[10];while( ~ scanf( "%lld %lld", &n, &Q ) ) {for( int i = 1;i <= n;i ++ ) scanf( "%lld", &b[i] );build( 1, 1, n );for( int i = 1;i <= Q;i ++ ) {scanf( "%s %d %d", opt, &l, &r );if( opt[0] == 'a' ) modify( 1, 1, n, l, r );else printf( "%lld\n", query( 1, 1, n, l, r ) );}}return 0; }

Picture

HDU1828

掃描線求矩陣周長模板題

從下往上掃描線掃,橫線長度:現(xiàn)在這次總區(qū)間被覆蓋的長度和上一次總區(qū)間被覆蓋的長度之差的絕對值

而豎線長度為,區(qū)間的段數(shù)*2,乘以222是因?yàn)橐欢螀^(qū)間左右各一條

e.g. 段數(shù)cntcntcnt的計(jì)算

  • 若區(qū)間[0,10]被[1,2][4,5]覆蓋,則cnt=2
  • 若區(qū)間[0,10]被[1,3][4,5]覆蓋,則cnt=1(兩區(qū)間剛好連在一起)
  • 若區(qū)間[0,10]被[1,5][2,6]覆蓋,則cnt=1(兩區(qū)間連起來還是一段)

掃描線中的線段樹的一個(gè)節(jié)點(diǎn)代表一個(gè)單位長度線段

#include <cstdio> #include <iostream> #include <algorithm> using namespace std; #define maxn 200005 #define lson num << 1 #define rson num << 1 | 1 struct node {int l, r, h, op;node(){}node( int L, int R, int H, int Op ) {l = L, r = R, h = H, op = Op;} }E[maxn]; struct tree {int l, r, len, cnt, tag, flag_l, flag_r; }t[maxn << 2];bool cmp( node x, node y ) { return x.h < y.h; }void build( int num, int l, int r ) {t[num].l = l, t[num].r = r;t[num].len = t[num].cnt = t[num].tag = t[num].flag_l = t[num].flag_r = 0;if( l == r ) return;int mid = l + r >> 1;build( lson, l, mid );build( rson, mid + 1, r ); }void pushup( int num ) {if( t[num].tag ) {t[num].len = t[num].r - t[num].l + 1;t[num].cnt = t[num].flag_l = t[num].flag_r = 1;}else if( t[num].l == t[num].r )t[num].len = t[num].cnt = t[num].flag_l = t[num].flag_r = 0;else {t[num].len = t[lson].len + t[rson].len;t[num].cnt = t[lson].cnt + t[rson].cnt - ( t[lson].flag_r and t[rson].flag_l );t[num].flag_l = t[lson].flag_l, t[num].flag_r = t[rson].flag_r;} }void modify( int num, int l, int r, int val ) {if( t[num].r < l or r < t[num].l ) return;if( l <= t[num].l and t[num].r <= r ) {t[num].tag += val;pushup( num );return;}modify( lson, l, r, val );modify( rson, l, r, val );pushup( num ); }int Fabs( int x ) { return x < 0 ? -x : x; }int main() {int n, x1, y1, x2, y2;while( ~ scanf( "%d", &n ) ) {int L = 1e9, R = -1e9;for( int i = 1;i <= n;i ++ ) {scanf( "%d %d %d %d", &x1, &y1, &x2, &y2 );E[i] = node( x1, x2, y1, 1 );E[i + n] = node( x1, x2, y2, -1 );L = min( L, x1 );R = max( R, x2 );}n <<= 1; R --;sort( E + 1, E + n + 1, cmp );build( 1, L, R );int ans = 0, lst = 0;for( int i = 1;i <= n;i ++ ) {modify( 1, E[i].l, E[i].r - 1, E[i].op );ans += Fabs( t[1].len - lst ) + 2 * t[1].cnt * ( E[i + 1].h - E[i].h );lst = t[1].len;}printf( "%d\n", ans );}return 0; }

Walking Race

POJ3162

用兩次棧模擬dpdpdp求出以每個(gè)點(diǎn)為端點(diǎn)的最長路徑

用線段樹維護(hù)區(qū)間內(nèi)的路徑最大值/最小值

尺取法,雙指針判斷區(qū)間[l,r][l,r][l,r]是否在mmm限制內(nèi)

#include <stack> #include <cstdio> #include <vector> #include <iostream> using namespace std; #define maxn 1000005 #define lson num << 1 #define rson num << 1 | 1 const int inf = 1e9; int n, m; bool vis[maxn]; int maxlen[maxn]; stack < int > sta; vector < pair < int, int > > G[maxn];struct node { int fa, d, Max, id, sub_max, sub_id;void clear( int f, int dis ) { fa = f, d = dis, Max = id = sub_max = sub_id = 0; } }MS[maxn];void dfs1() {for( int i = 1;i <= n;i ++ ) vis[i] = 0;sta.push( 1 ), MS[1].clear( 0, 0 );while( ! sta.empty() ) {int u = sta.top();if( ! vis[u] )for( int i = 0;i < G[u].size();i ++ ) {int v = G[u][i].first, dis = G[u][i].second;if( v == MS[u].fa ) continue;else MS[v].clear( u, dis ), sta.push( v );}else {sta.pop();for( int i = 0;i < G[u].size();i ++ ) {int v = G[u][i].first, dis = G[u][i].second;int len = MS[v].Max + dis;if( len > MS[u].Max ) {MS[u].sub_max = MS[u].Max;MS[u].sub_id = MS[u].id;MS[u].Max = len;MS[u].id = v;}else if( len > MS[u].sub_max ) {MS[u].sub_max = len;MS[u].sub_id = v;}}}vis[u] = 1;} }void dfs2() {sta.push( 1 );while( ! sta.empty() ) {int u = sta.top(); sta.pop();for( int i = 0;i < G[u].size();i ++ ) {int v = G[u][i].first;if( v == MS[u].fa ) continue;else sta.push( v );}maxlen[u] = MS[u].Max;if( u == 1 ) continue;else {int fa = MS[u].fa, len;if( MS[fa].id == u ) len = MS[fa].sub_max + MS[u].d;else len = MS[fa].Max + MS[u].d;maxlen[u] = max( maxlen[u], len );if( len > MS[u].Max ) {MS[u].sub_max = MS[u].Max;MS[u].sub_id = MS[u].id;MS[u].Max = len;MS[u].id = fa;}else if( len > MS[u].sub_max ) {MS[u].sub_max = len;MS[u].sub_id = fa;}}} }struct tree { int Min, Max; }t[maxn << 2];void build( int num, int l, int r ) {if( l == r ) { t[num].Min = t[num].Max = maxlen[l]; return; }int mid = l + r >> 1;build( lson, l, mid );build( rson, mid + 1, r );t[num].Max = max( t[lson].Max, t[rson].Max );t[num].Min = min( t[lson].Min, t[rson].Min ); }int query_min( int num, int l, int r, int L, int R ) {if( r < L or R < l ) return inf;if( L <= l and r <= R ) return t[num].Min;int mid = l + r >> 1;return min( query_min( lson, l, mid, L, R ), query_min( rson, mid + 1, r, L, R ) ); }int query_max( int num, int l, int r, int L, int R ) {if( r < L or R < l ) return -inf;if( L <= l and r <= R ) return t[num].Max;int mid = l + r >> 1;return max( query_max( lson, l, mid, L, R ), query_max( rson, mid + 1, r, L, R ) ); }int main() {int l, r, minn, maxx;while( ~ scanf( "%d %d", &n, &m ) ) {for( int i = 1;i <= n;i ++ ) G[i].clear();for( int i = 2, fa, d;i <= n;i ++ ) {scanf( "%d %d", &fa, &d );G[fa].push_back( make_pair( i, d ) );}dfs1(), dfs2(), build( 1, 1, n );l = r = 1, minn = maxx = maxlen[1];int ans = 0;while( l <= r and r <= n ) {if( maxx - minn <= m ) {ans = max( ans, r - l + 1 );r ++;minn = min( minn, maxlen[r] );maxx = max( maxx, maxlen[r] );}else {l ++;minn = query_min( 1, 1, n, l, r );maxx = query_max( 1, 1, n, l, r );}if( ans > n - l ) break;}printf( "%d\n", ans );}return 0; }

總結(jié)

以上是生活随笔為你收集整理的【地狱副本】数据结构之线段树Ⅲ——区间最值/赋值/修改/历史值操作(HDU5306,Tyvj 1518,【清华集训2015】V,HDU6315,HDU1828,POJ3162)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

成年人毛片在线观看 | 国产大片黄色 | 91色欧美| 久久在线免费观看 | 国产精品久久免费看 | 国产裸体视频网站 | 久久综合久久综合这里只有精品 | 丝袜足交在线 | 日韩视频a | 免费能看的av | 国内精品美女在线观看 | 中文字幕在线乱 | 午夜精品导航 | 日韩二级毛片 | 91精品久久久久久久久久入口 | 激情文学丁香 | 色黄久久久久久 | 国产高清视频在线播放一区 | 狠狠夜夜 | 欧美做受高潮电影o | 黄色小说视频在线 | 天天干夜夜爱 | 美女免费黄视频网站 | 婷婷激情站 | 日韩首页 | 成人在线观看av | 中文字幕在线观看资源 | 免费毛片一区二区三区久久久 | 亚洲人成人99网站 | 成人av电影在线播放 | 丝袜美腿在线 | 久久超碰97 | 麻豆传媒在线免费看 | 99视频精品在线 | 久久人人97超碰com | 国产精品欧美日韩 | 国产高清在线免费 | 国产97色在线 | 九草视频在线 | 91人人插 | 五月婷婷丁香激情 | 亚洲精品tv久久久久久久久久 | 人人干狠狠干 | 久草www | 亚洲精品毛片一级91精品 | 欧美福利在线播放 | 中文字幕在线观看亚洲 | av免费福利 | av青草| 亚洲a资源 | 国产成人av免费在线观看 | 欧美另类xxxxx | 欧洲成人av | 最新国产中文字幕 | 国产一线二线三线性视频 | 国产最新视频在线观看 | 国产成年免费视频 | 亚洲人成在线观看 | 成人免费视频在线观看 | 久久精品欧美 | 色在线高清 | 国产偷国产偷亚洲清高 | 日韩网站免费观看 | 亚洲男男gaygayxxxgv | 超碰日韩 | 日韩影视在线观看 | 精品综合久久久 | 欧美成人h版电影 | 国产高清视频在线免费观看 | 999久久久久久久久6666 | 国产福利网站 | 午夜性福利 | 国产精品久久久久久久久久ktv | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 久久视影 | 在线观看精品视频 | 精品亚洲男同gayvideo网站 | 三级av在线播放 | 国产黄色精品在线 | 久久伊人精品一区二区三区 | 成人网444ppp | 天天拍天天色 | 黄色免费在线看 | 久久精品中文字幕免费mv | 久久久久在线 | 国产又粗又猛又黄又爽 | 成人超碰97 | 婷婷激情小说网 | 五月婷婷国产 | 亚洲天堂色婷婷 | 天天综合网天天综合色 | 国产区久久 | 亚洲精品自拍视频在线观看 | 超碰在线网 | 国产 视频 久久 | 97视频人人澡人人爽 | 久久99热这里只有精品 | 国产精品一区二区三区在线免费观看 | 91片黄在线观 | 91最新在线观看 | 啪一啪在线| 国产午夜精品久久久久久久久久 | 狠狠干 狠狠操 | 亚洲美女精品区人人人人 | 国产成人精品一区二区三区在线观看 | 中文字幕在线观看视频一区二区三区 | 欧美a视频在线观看 | 国产理论一区二区三区 | 五月天伊人网 | 亚洲激情婷婷 | 久久久久免费电影 | 久热免费在线观看 | 国产精品一区二区在线免费观看 | 91精品国产自产在线观看永久 | 亚洲精品视频免费在线 | 国产色爽| 在线性视频日韩欧美 | 日韩动态视频 | 激情五月综合网 | 久久五月婷婷丁香社区 | 久久久久婷 | 国产最新在线视频 | 91在线视频网址 | 欧美性精品 | 夜夜澡人模人人添人人看 | aaa毛片视频 | 国产 欧美 日产久久 | 日韩电影久久久 | 成人在线免费观看网站 | 不卡中文字幕在线 | 天天操比 | 日韩av一区在线观看 | 999国产在线 | 91精品国产高清自在线观看 | 97碰在线 | 国产亚洲va综合人人澡精品 | www最近高清中文国语在线观看 | 日韩网站一区二区 | 久久精品99久久久久久 | 四虎国产 | 一区二区三区韩国免费中文网站 | 五月婷婷视频在线 | 国产护士在线 | 国产在线999 | 日韩高清二区 | 91精品入口 | 日本精品一区二区在线观看 | 最新91在线视频 | 成人黄色短片 | 一区二区三区四区久久 | 不卡中文字幕av | www.香蕉视频 | 亚洲精品国产品国语在线 | 国产精品av免费在线观看 | 91精品第一页 | 免费精品视频在线观看 | 亚洲三级黄| 人人爽人人香蕉 | 91在线在线观看 | 人人爽人人爱 | 91av小视频 | 亚洲国产一区在线观看 | 国产资源在线免费观看 | 韩日av一区二区 | 亚洲视频分类 | 国内外成人免费在线视频 | 超碰在线最新网址 | 亚洲成av人片在线观看无 | 久热免费 | 日韩理论电影网 | 国产精品11 | 天天噜天天色 | 成人免费xxxxxx视频 | 丁香五月亚洲综合在线 | 九九久久国产精品 | 中文一区二区三区在线观看 | 麻豆影视在线免费观看 | 日韩电影一区二区三区在线观看 | 久久精品女人毛片国产 | 免费看的国产视频网站 | 国产精品毛片一区视频 | 97免费在线视频 | 又粗又长又大又爽又黄少妇毛片 | 最新久久久 | 99热这里有| aaa毛片视频 | 成人午夜电影在线播放 | 色婷婷啪啪免费在线电影观看 | 三级av网站 | 女人久久久久 | 欧美伊人网 | 美女视频黄是免费的 | 国内精品视频在线 | 国产精品一区二区三区观看 | 色www精品视频在线观看 | 亚洲一级久久 | 超碰97在线资源 | 亚洲国产精品成人av | 缴情综合网五月天 | 蜜臀久久99精品久久久酒店新书 | 午夜视频一区二区三区 | 黄色毛片视频免费 | 亚洲视频综合 | 麻豆传媒视频在线 | 亚洲激情av | 在线观看国产一区 | 一区 二区电影免费在线观看 | 欧美亚洲久久 | 久草在线中文888 | 在线播放91 | 91av手机在线观看 | 99热.com| www.com久久 | 久久极品 | 黄色一级大片在线免费看国产一 | 国产精品免费视频观看 | 中文字幕一区二区三区四区在线视频 | 日韩一级电影网站 | 久久国产精品久久国产精品 | 久久与婷婷 | 天天操天天干天天爱 | www五月| 黄色一级免费网站 | 色综合人人 | 波多野结衣一区三区 | 色多多视频在线 | 日韩久久激情 | 天天天天天天天天操 | 99久久精品一区二区成人 | 国产精品嫩草影院9 | 免费污片 | 国产精品99久久久久久小说 | 精品国产诱惑 | 国产成人精品久久二区二区 | 精品色综合 | 国产一级在线看 | 日本三级大片 | 国产成人一区二区三区影院在线 | 日韩艹 | 丁香激情综合久久伊人久久 | 区一区二区三在线观看 | 亚洲mv大片欧洲mv大片免费 | 女人高潮特级毛片 | 99热在线免费观看 | 国产+日韩欧美 | 亚洲国产精品va在线看黑人 | 亚洲欧美乱综合图片区小说区 | 成人亚洲网 | 一级黄色网址 | 日本精品在线视频 | 国产乱对白刺激视频不卡 | 国产精品自产拍在线观看中文 | 欧美性护士 | 91久久精品一区二区三区 | 天堂av在线网 | 8x成人免费视频 | 欧美在线视频免费 | 精品免费一区二区三区 | 国产伦精品一区二区三区在线 | 久草电影免费在线观看 | 国产一区二区三区免费视频 | av片中文字幕 | 91精品久久久久 | 五月激情五月激情 | 精品国产免费观看 | 久久免费视频网站 | 久久久香蕉视频 | 欧美在线视频一区二区三区 | 国产探花视频在线播放 | 久久成人免费视频 | 亚洲精品视 | 国产精品99久久久精品免费观看 | 亚洲最大的av网站 | 高清免费在线视频 | 亚洲色图激情文学 | 在线黄色av | 日韩精品一区二区三区免费观看 | 久久国产美女视频 | 在线看免费 | 久久高清免费观看 | 亚洲影院国产 | 日本资源中文字幕在线 | 久久高清av | caobi视频 | 9999免费视频 | 香蕉日日 | 亚洲国产精品久久久 | 亚洲国产精品va在线看黑人动漫 | 日韩成人精品在线观看 | 在线观看黄色免费视频 | 在线观看中文字幕dvd播放 | 免费在线观看日韩视频 | 69欧美视频 | 免费在线播放黄色 | 一本一本久久a久久精品综合 | 天天综合人人 | 黄色亚洲| 亚洲美女免费精品视频在线观看 | 亚洲黄色在线播放 | 在线视频福利 | 日日摸日日添夜夜爽97 | 色国产精品一区在线观看 | 国产成人一区二区三区电影 | 99精品热 | 精品毛片在线 | 人交video另类hd | 18做爰免费视频网站 | 人人插超碰 | 亚洲欧洲成人精品av97 | 97超碰国产精品女人人人爽 | 中文字幕免费观看 | 成人黄色片免费 | 久久久久久蜜桃一区二区 | 中文日韩在线 | 91传媒在线观看 | 久久av网址 | 色婷婷激情电影 | 日韩电影在线看 | 久久人人97超碰精品888 | 国产精品久久久久久爽爽爽 | 4438全国亚洲精品在线观看视频 | 精品国产一区二区三区久久 | 在线免费观看的av网站 | 日韩专区在线播放 | 免费99精品国产自在在线 | 免费情缘 | 91喷水 | 国产h片在线观看 | 亚洲精品在线国产 | 激情一区二区三区欧美 | 欧洲一区二区三区精品 | 97人人超碰在线 | 天天夜夜亚洲 | 天天操夜夜叫 | 亚洲国产精品第一区二区 | 亚洲精品一区中文字幕乱码 | 中文字幕乱在线伦视频中文字幕乱码在线 | 亚洲一区二区精品3399 | 国产专区一 | 97碰视频 | 黄色aa久久 | 久精品视频免费观看2 | 欧美成年性 | 天天天综合 | 国产一区视频在线播放 | 丁香午夜婷婷 | 久久国产精品99国产 | 成人九九视频 | 91麻豆精品国产91久久久无需广告 | 久久成人综合 | 日韩黄色免费在线观看 | 久久精品久久精品久久精品 | 国产美女无遮挡永久免费 | 婷婷久久精品 | 麻豆免费精品视频 | 久久网址 | 国产99久久精品一区二区300 | 亚洲一级二级三级 | 日韩高清一 | 成人欧美一区二区三区黑人麻豆 | 9在线观看免费高清完整版 玖玖爱免费视频 | 久久久综合| 在线色亚洲 | 国产尤物视频在线 | 又长又大又黑又粗欧美 | 高清不卡毛片 | 久草在线手机视频 | 日本特黄一级 | 国产麻豆精品在线观看 | 最近乱久中文字幕 | 狠狠色狠狠色综合日日小说 | 中文字幕色站 | 在线免费色视频 | 日日日日干 | 99热最新| 久久综合加勒比 | 欧美激情视频久久 | 一区二区视频在线免费观看 | 9在线观看免费高清完整版在线观看明 | 久久激情小视频 | 久久国精品 | 91亚洲精| 亚洲 欧美 另类人妖 | 国产精品免费久久久久影院仙踪林 | 亚洲综合视频在线 | 在线观看的av | 久久精品1区 | 日韩视频欧美视频 | 97超碰国产精品女人人人爽 | 9999精品免费视频 | 久久精品高清 | 亚洲精品视频在线免费 | 国产一区免费在线观看 | 久久久免费视频播放 | 91视频在线自拍 | 亚洲国产成人在线播放 | 精品在线观| 亚洲黄色三级 | 国产一级片毛片 | 日韩精品久久久久久中文字幕8 | 欧美福利久久 | 久久a久久 | 中文字幕日本在线观看 | 最新日韩视频 | 日本公乱妇视频 | 亚洲成人精品久久久 | 免费成人在线视频网站 | 夜夜爽88888免费视频4848 | 丁香综合五月 | 国产免费a| 91桃色免费视频 | 一级成人在线 | 极品美女被弄高潮视频网站 | 97国产在线观看 | 91高清免费看 | 好看的国产精品视频 | 99色精品视频 | 91看片淫黄大片一级在线观看 | 人人爱爱人人 | 亚洲欧美日韩一区二区三区在线观看 | 日韩av一区二区在线影视 | 久久久国产在线视频 | 99爱国产精品 | 亚洲a色| 日韩久久视频 | 黄色中文字幕在线 | av在线播放一区二区三区 | 天天干,夜夜操 | 999在线视频 | 日韩色爱 | 国产精品久久久久亚洲影视 | 欧美ⅹxxxxxx | 亚洲三级在线免费观看 | 国产在线看一区 | 日韩视频一 | 免费福利片2019潦草影视午夜 | av官网 | 色网av| 天天爱天天干天天爽 | 天天草天天爽 | 日韩久久精品一区 | 五月婷婷狠狠 | 国产视频不卡一区 | 国产精品久久艹 | 日韩av免费在线电影 | se视频网址 | 成人毛片一区 | www一起操 | 中文字幕免费高 | 亚洲精品系列 | 国内久久 | 日本黄色免费网站 | 中文字幕在线看视频国产 | 6080yy精品一区二区三区 | 色a综合 | 午夜精品一区二区三区在线视频 | 日韩色在线观看 | 国产成人av电影在线观看 | 99久久精品国产网站 | 丁香久久婷婷 | 丁香一区二区 | 久久日韩精品 | 激情一区二区三区欧美 | 亚州黄色一级 | 中文字幕视频免费观看 | 成人小视频在线播放 | 四虎影视精品 | 综合色久 | 亚洲欧洲一区二区在线观看 | 欧美一级黄色片 | 91精品在线播放 | 免费久久精品视频 | 在线一级片| 中文字幕一区二区在线播放 | 日精品在线观看 | 制服丝袜在线 | 91国内在线 | 午夜视频久久久 | www.夜夜干.com| 日韩精品中文字幕在线 | 免费在线色电影 | 少妇bbw搡bbbb搡bbbb | 四虎欧美 | 综合婷婷久久 | 国产精品mv在线观看 | www.久草视频 | 亚洲一区二区麻豆 | 黄色tv视频| 久久免费国产精品 | 在线观看成人福利 | 在线观看mv的中文字幕网站 | 91网在线看 | 2021国产在线 | www.91成人| 人人爱天天操 | 日韩免费在线观看 | 天天操天天摸天天干 | 成人免费观看网站 | 国产打女人屁股调教97 | 最近中文字幕视频完整版 | 视频在线播放国产 | 国产精品成人久久久久 | 91在线观看黄 | 一区二区三区福利 | 色综合天天综合在线视频 | 久久在线观看 | 国产精品久久久久久久婷婷 | 日韩免费一区 | 亚洲精品久久久蜜桃直播 | av成人免费在线 | 在线91av| 天天艹天天爽 | 99综合影院在线 | 98久9在线 | 免费 | 日本久久久久 | 国产无限资源在线观看 | av成人动漫 | 国产韩国日本高清视频 | 奇米网444| 国产一区在线视频 | 91色亚洲| 久久中文字幕在线视频 | 国产精品女人久久久 | 日本中文字幕高清 | 欧美在线观看小视频 | 国产色婷婷 | 国产精品1024| 狠狠干狠狠插 | 在线观影网站 | 国产不卡免费av | 黄色片网站大全 | 91福利试看 | www.久久婷婷 | 91精品视频免费看 | 欧美性色综合网 | 91在线播放综合 | 国产亚洲精品bv在线观看 | 在线视频欧美精品 | 国产99久久久久 | 福利一区二区三区四区 | 国产在线精品国自产拍影院 | 国产电影一区二区三区四区 | 亚洲1区在线 | 婷婷丁香自拍 | 久久欧美在线电影 | 国内精品久久久久影院优 | 国内久久 | 亚洲v精品 | 日韩一二区在线 | 色资源在线观看 | 欧美视屏一区二区 | 91视频网址入口 | 99精品偷拍视频一区二区三区 | 色丁香久久 | 中文字幕av在线播放 | 精品国模一区二区 | 久草在线视频国产 | 国产一区二区不卡视频 | 精品国自产在线观看 | 欧美日韩视频网站 | 99精品欧美一区二区 | 黄色av一区二区 | 久久国产精品二国产精品中国洋人 | 97超碰资源 | 欧美精品一区二区性色 | 天天操天天爱天天干 | 一区二区三区在线免费观看 | www.av在线播放| 99久久精品免费看国产 | 综合色播 | 亚洲狠狠操 | 人人擦 | 久久少妇av| 911精品美国片911久久久 | 四虎影视av | 国产中文a| 亚洲国产视频网站 | 亚洲视频免费在线观看 | 啪一啪在线 | 欧美人牲| 亚洲影音先锋 | 中文字幕乱码在线播放 | 在线观看免费 | 欧美日韩aaaa | 国产精品一区二区三区在线播放 | 欧美一级久久久久 | 久久久久成人精品免费播放动漫 | 欧美网站黄色 | 中文免费在线观看 | 伊人永久在线 | 国产91aaa| 欧美一二三视频 | 成人久久久久 | 成人免费视频网站在线观看 | 国产高清网站 | 国产精品黄色在线观看 | 久久综合九色综合97_ 久久久 | 欧美日韩中字 | 国产精品精品国产婷婷这里av | 国产精品免费久久 | 国产精品久久一区二区三区不卡 | 亚洲 欧美 另类人妖 | 国产一区在线观看视频 | 国产精品久久久久久久久久免费 | 国产一区二区三区免费观看视频 | 国产免费亚洲高清 | 91福利影院在线观看 | 99视频这里只有 | 国产不卡视频在线播放 | 九九涩涩av台湾日本热热 | 久草在线视频在线观看 | 一区二区三区免费在线观看 | 黄色精品国产 | 日本xxxx.com | 色综合久久88色综合天天人守婷 | 日韩电影中文,亚洲精品乱码 | 亚洲视频免费在线观看 | 制服丝袜亚洲 | 99热高清| 欧美精品久久久久久久亚洲调教 | 人人射人人爽 | 91人人爽久久涩噜噜噜 | 久久久久欧美精品 | 美腿丝袜av| av在线影视 | 久久亚洲综合国产精品99麻豆的功能介绍 | 91精品视频在线观看免费 | 青青久草在线视频 | 久久久久久久久久久久电影 | 国产丝袜 | 91精品在线免费 | 特黄一级毛片 | 欧美性色xo影院 | av天天色| 国产精品九九久久99视频 | 天天操天天添 | 久久天天躁夜夜躁狠狠85麻豆 | 国产精品久久久久久妇 | 九9热这里真品2 | 国产精品久久久久久模特 | 亚洲精品男人天堂 | 色五月色开心色婷婷色丁香 | 深夜免费小视频 | 中文字幕视频一区二区 | 国产视频18 | 波多野结衣动态图 | 最近2019好看的中文字幕免费 | 91精品久久久久久粉嫩 | 亚洲美女精品 | 亚洲国产视频在线 | 日韩久久精品一区二区三区下载 | 日韩欧美大片免费观看 | 日本在线观看一区 | 日本aa在线| 色综合久久66 | 欧美亚洲国产一卡 | 久久99亚洲精品久久 | 久久久av免费| 91探花视频| 伊人国产女 | 91在线视频免费播放 | 久久亚洲影院 | 91手机电视| 日韩在线免费电影 | 欧美在线99| 日韩高清精品免费观看 | 国产视频在线免费 | 色狠狠综合 | 特级黄录像视频 | 国产午夜三级一二三区 | 欧美日韩在线观看一区 | 成人av在线一区二区 | 久久社区视频 | 日韩免费观看视频 | 操操操天天操 | 欧美激情精品 | 久久精品综合网 | 欧美日韩大片在线观看 | 五月天色丁香 | 91免费视频网站在线观看 | 丁香婷婷综合色啪 | 99久久99久久精品免费 | 综合天天色 | 亚洲 欧美 日韩 综合 | 婷婷亚洲五月色综合 | 91在线视频一区 | 在线国产能看的 | 一区免费观看 | 99这里只有精品视频 | www激情久久 | 伊甸园永久入口www 99热 精品在线 | 亚洲精品理论片 | 天天搞夜夜骑 | 99这里只有精品视频 | 欧美黑人xxxx猛性大交 | 中文十次啦 | 丁香六月婷婷 | 亚洲视频一区二区三区在线观看 | 蜜臀91丨九色丨蝌蚪老版 | 亚洲 欧美 综合 在线 精品 | 日韩av进入 | 色噜噜在线观看视频 | 免费高清在线视频一区· | 极品嫩模被强到高潮呻吟91 | 久久国产精品一区二区三区 | 国产色婷婷 | 狠狠狠色丁香婷婷综合久久五月 | 69精品在线 | 成人久久久久久久久久 | 国产免费视频一区二区裸体 | 色诱亚洲精品久久久久久 | 国产精品大片 | 亚洲精品国产精品国自 | 国产视频网站在线观看 | 亚洲精品视频国产 | 中文字幕高清有码 | 69视频在线 | 国产精美视频 | 久久高清免费 | 日本中文字幕系列 | 在线a视频免费观看 | 青草视频网| 国产精品av在线 | 国产三级精品三级在线观看 | 国产色视频网站 | 国产精品剧情在线亚洲 | 久久久久国产精品一区 | 国产高清绿奴videos | 免费视频在线观看网站 | av免费看看 | 91在线日韩 | 中文字幕无吗 | 成年人国产在线观看 | 国产欧美日韩精品一区二区免费 | 亚洲精品影视 | 久久99精品久久久久蜜臀 | 狠狠躁日日躁狂躁夜夜躁av | 久久久久亚洲精品 | 一区二区三区免费在线 | 99视频在线精品免费观看2 | 日韩在线中文字幕 | 69xx视频 | 婷婷开心久久网 | 天天天天天天天操 | 国产精品视频最多的网站 | 日韩免费在线观看视频 | 亚洲色图 校园春色 | 丁香花在线视频观看免费 | 日韩高清免费观看 | 91九色视频在线播放 | 国产精品久久久久久爽爽爽 | 国产福利91精品一区 | 中文字幕黄色 | 国产日韩欧美精品在线观看 | 亚洲一区二区三区四区精品 | 成人久久18免费网站麻豆 | 成人全视频免费观看在线看 | 国产亚洲aⅴaaaaaa毛片 | 色狠狠综合天天综合综合 | 伊人狠狠| 999男人的天堂 | 亚洲第五色综合网 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 国产精品12345 | 日韩精选在线 | 2019天天干天天色 | 一区二区丝袜 | 一区二区三区四区精品视频 | 日韩欧美视频在线 | 久久久免费国产 | 麻豆精品视频在线 | 日日操操 | 午夜av免费 | www.神马久久 | 亚洲综合最新在线 | 五月天最新网址 | 日本精品va在线观看 | 国产激情电影综合在线看 | 黄色av在| av电影不卡在线 | 日韩黄视频 | 综合色在线观看 | av丁香 | 免费福利在线播放 | 国产理论影院 | 久久免费成人精品视频 | 91免费观看视频网站 | 国产aa精品| 免费碰碰 | 午夜精品福利一区二区三区蜜桃 | 精品国产一区二区三区日日嗨 | 黄色免费网站大全 | 黄色免费电影网站 | 久久国产精品影视 | 久久黄色美女 | 成人午夜免费剧场 | 丁香久久五月 | 国产欧美精品一区二区三区 | ,午夜性刺激免费看视频 | 欧美在线99 | 欧美在线99| 天天操天天操天天操天天操天天操 | 91在线播放国产 | 国产欧美日韩精品一区二区免费 | 一区二区三区精品在线视频 | 色a在线观看 | 91精品秘密在线观看 | 国产精品一区免费看8c0m | 九九热在线观看 | 热精品| 日韩电影一区二区三区 | 深爱激情综合网 | 亚洲精品久久久久久中文传媒 | 日日操日日操 | 天天操人 | 欧美日韩国产色综合一二三四 | 中文字幕丝袜 | 久久精品久久精品久久39 | 亚洲人人精品 | 91精品亚洲影视在线观看 | 99久久精品免费看国产四区 | 黄色免费视频在线观看 | 日韩欧美在线视频一区二区三区 | 97免费中文视频在线观看 | 91资源在线观看 | 亚洲乱亚洲乱妇 | 久久久久一区二区三区四区 | 国产视频二区三区 | 午夜久久福利视频 | 国产精品男女视频 | 日本黄色大片免费 | 欧美在线观看视频免费 | 91精品视频免费看 | www.午夜色.com | 五月婷婷操 | 五月天久久综合 | 亚洲另类久久 | 国产一线二线三线性视频 | 国产精品a级 | 91系列在线观看 | 片网站 | 天天干天天做天天爱 | 日韩欧美久久 | 久久久久这里只有精品 | 国产在线色视频 | 在线观看爱爱视频 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 热久精品 | 亚洲人成网站精品片在线观看 | 99久久久久久久 | 久草影视在线观看 | www蜜桃视频| 一区久久久 | 日韩视频1区 | 日本不卡123 | 高清av中文在线字幕观看1 | 西西44人体做爰大胆视频 | 欧美亚洲精品一区 | 91精品成人 | 久久精品久久99 | 久久美女精品 | 中文区中文字幕免费看 | 狠狠色狠狠色综合系列 | 天天干天天操 | 免费在线中文字幕 | 国产成人精品亚洲精品 | 91精品1区2区 | 五月激情五月激情 | 99久久精品久久久久久清纯 | 日韩欧美在线一区二区 | 午夜视频播放 | av在线等 | 国产不卡在线播放 | 日日操夜 | 久久久影院官网 | 日韩久久精品一区二区三区下载 | 日韩在线免费看 | 青青视频一区 | 日韩视频欧美视频 | 亚洲免费在线播放视频 | 欧美aaaxxxx做受视频 | 亚洲精品大全 | 日韩专区视频 | 五月婷婷综合激情网 | 日韩亚洲在线视频 | 中国一级片在线 | 狠狠色综合网站久久久久久久 | 碰超在线| 精品一区二区在线免费观看 | 欧美在线久久 | 午夜精品久久久 | 国内精品久久久久影院男同志 | 日韩精品免费一区二区三区 | 国产成人av网 | 欧美粗又大 | 黄色av一级 | 激情婷婷丁香 | 国产精品成人国产乱一区 | 樱空桃av| 日韩在线视频二区 | 久久久噜噜噜久久久 | 日韩网站在线看片你懂的 | 色噜噜狠狠狠狠色综合久不 | 亚洲成人免费在线观看 | 米奇影视7777| 精品久久1 | 久久精品欧美一区二区三区麻豆 | 久久av不卡 | 五月天婷婷在线观看视频 | 精品国产乱码久久久久久浪潮 | 人人干97 | 国产亚洲精品福利 | 午夜国产福利视频 | 成人黄色在线视频 | 超碰97人人干 | 色中文字幕在线观看 | 国产91小视频 | 欧美亚洲国产一卡 | 国产午夜精品免费一区二区三区视频 | 亚洲精品99| 综合激情婷婷 | 国产在线精品播放 | 国产亚洲视频在线免费观看 | 亚州日韩中文字幕 | 国产精品一区二区三区久久久 | 成人动漫一区二区三区 | 国产精品久久在线 | 婷婷综合五月天 | 7777精品伊人久久久大香线蕉 | 天堂av在线7| 一本一道波多野毛片中文在线 | 黄色免费国产 | 超碰在线中文字幕 | 日韩免费视频观看 | 欧美精品乱码久久久久久 | 99在线观看视频 | a电影在线观看 | 日韩在线观看小视频 | 在线观看免费国产小视频 | 国产精品原创av片国产免费 | 最近中文字幕高清字幕免费mv | 欧美激精品 | 国产免费叼嘿网站免费 | 久久黄页| 久久久久久久国产精品视频 | 中文字幕资源在线观看 | 在线观看av网站 | 成人免费看片98欧美 | 久久久网| 国产亚洲精品久久久久久网站 | 国产精品美女久久久久aⅴ 干干夜夜 | 欧美乱码精品一区二区 | 日韩精品一区二区三区电影 | 中文字幕美女免费在线 | 97av在线视频 | 亚洲伦理一区二区 | 999久久国精品免费观看网站 | 主播av在线 | 超碰97中文| 91视频a| 亚洲国产精品一区二区久久,亚洲午夜 | 五月婷婷一区 | 九色在线 | 日韩视频在线一区 | 中文字幕影视 | 亚洲精品中文字幕在线观看 | 1024在线看片 | 91精品国产91久久久久久三级 | 国产精品久久艹 | 一级片观看 | 亚洲经典视频在线观看 | av成人资源 | 久久综合国产伦精品免费 | 97超视频 | 日本久久精品 | 国产精品久久久久久久久久久久午夜片 | 免费观看久久久 | 又黄又爽又色无遮挡免费 | 日韩欧美一区二区三区免费观看 | 国产呻吟在线 | 久久精品123| 精品国产免费人成在线观看 | 久久99这里只有精品 | 日韩区欠美精品av视频 | 免费av在线网站 | 免费看国产曰批40分钟 | 欧美九九九 | 草久久久久久 | 国产精品久久久久久一区二区三区 | 亚洲精品免费在线 | 中文字幕一区2区3区 | 一本一本久久a久久精品综合 | 国产精品国产三级国产aⅴ9色 | 久久国产视频网站 | 久久久久久综合网天天 | 成人免费一级片 | 日韩视频1区 | 99久久精品日本一区二区免费 |