日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

BZOJ 4059: [Cerc2012]Non-boring sequences ( )

發布時間:2023/11/27 生活经验 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ 4059: [Cerc2012]Non-boring sequences ( ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要快速在一段子序列中判斷一個元素是否只出現一次 , 我們可以預處理出每個元素左邊和右邊最近的相同元素的位置 , 這樣就可以 O( 1 ) 判斷.

考慮一段序列 [ l , r ] , 假如我們找到了序列中唯一元素的位置 p , 那我們只需檢查 [ l , p - 1 ] & [ p + 1 , r ] 是否 non-boring 即可 .?

如何檢查 序列 [ l , r ] 呢 ? 假如從左往右或者從右往左找 , 最壞情況下是 O( n ) , 總時間復雜度會變成 O( n2 ) ; 假如我們從兩邊往中間找 , 那最壞情況是唯一元素在中間 , ?單次是 O( n ) , 但是現在劃分出來的遞歸處理的左右兩部分都是原序列長度的一半 , 這樣總時間復雜度就是 O( nlogn ) 了

------------------------------------------------------------------------------------------------------

#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<map>#define rep( i , n ) for( int i = 0 ; i < n ; ++i )#define clr( x , c ) memset( x , c , sizeof( x ) )using namespace std;const int maxn = 200000 + 5;int seq[ maxn ] , L[ maxn ] , R[ maxn ] , n;map< int , int > S;#define UNIQUE( x ) ( L[ x ] < l && R[ x ] > r )bool check( int l , int r ) {if( l >= r ) return true;int t[ 2 ] = { l , r };for( int p = 0 ; t[ 0 ] <= t[ 1 ] ; ( p ^= 1 ) ? t[ 0 ]++ : t[ 1 ]-- )if( UNIQUE( t[ p ] ) ) ? ?return check( l , t[ p ] - 1 ?) && check( t[ p ] + 1 , r );return false;}int main() {freopen( "test.in" , "r" , stdin );int t;cin >> t;while( t-- ) {scanf( "%d" , &n );rep( i , n )L[ i ] = -1 , R[ i ] = n;S.clear();rep( i , n ) { ? ?scanf( "%d" , seq + i ); ? ?if( S.find( seq[ i ] ) != S.end() ) ? ? ? ?L[ i ] = S[ seq[ i ] ]; ? ?S[ seq[ i ] ] = i;}S.clear();for( int i = n - 1 ; i >= 0 ; i-- ) { ? ?if( S.find( seq[ i ] ) != S.end() )R[ i ] = S[ seq[ i ] ]; ? ?S[ seq[ i ] ] = i;}printf( check( 0 , n - 1 ) ? "non-boring\n" : "boring\n" );}return 0;}

?

------------------------------------------------------------------------------------------------------?

?

4059: [Cerc2012]Non-boring sequences

Time Limit:?10 Sec??Memory Limit:?128 MB
Submit:?300??Solved:?105
[Submit][Status][Discuss]

Description

我們害怕把這道題題面搞得太無聊了,所以我們決定讓這題超短。一個序列被稱為是不無聊的,僅當它的每個連續子序列存在一個獨一無二的數字,即每個子序列里至少存在一個數字只出現一次。給定一個整數序列,請你判斷它是不是不無聊的。

Input

第一行一個正整數T,表示有T組數據。每組數據第一行一個正整數n,表示序列的長度,1 <= n <= 200000。接下來一行n個不超過10^9的非負整數,表示這個序列。

Output

對于每組數據輸出一行,輸出"non-boring"表示這個序列不無聊,輸出"boring"表示這個序列無聊。

Sample Input

4
5
1 2 3 4 5
5
1 1 1 1 1
5
1 2 3 2 1
5
1 1 2 1 1

Sample Output

non-boring
boring
non-boring
boring

HINT

Source

鳴謝Tjz

?

轉載于:https://www.cnblogs.com/JSZX11556/p/4632774.html

總結

以上是生活随笔為你收集整理的BZOJ 4059: [Cerc2012]Non-boring sequences ( )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 可以直接看的无码av | 8090理论片午夜理伦片 | 亚洲不卡中文字幕无码 | 久婷婷 | 成人区人妻精品一区 | 欧美一区二区视频 | 一本不卡 | 欧美激情综合色综合啪啪五月 | 91精品国产闺蜜国产在线闺蜜 | 无码aⅴ精品一区二区三区浪潮 | 精品国产成人av | 欧美日韩在线免费播放 | 欧美日韩a v | 91大神一区二区 | 亚洲第一页乱 | 爱操视频 | 国产精品色综合 | 全黄一级裸体片 | 国产一区欧美一区 | 波多野结衣在线 | 含羞草一区二区 | 日韩福利一区二区三区 | 欧美性受xxxx黑人xyx性爽 | 国内特级毛片 | 91午夜免费视频 | 亚洲男男网站 | 在线播放91灌醉迷j高跟美女 | 国产又黄又硬又粗 | 国产精品成人午夜视频 | 欧洲熟妇精品视频 | 中文字幕在线乱 | 国产aⅴ激情无码久久久无码 | 亚洲精品免费看 | 日本一区二区高清不卡 | 亚洲无人区码一码二码三码的含义 | 欧美黄色一级 | 午夜久 | 亚洲成熟少妇视频在线观看 | 黄色长视频 | 亚洲欧美中日韩 | 国产在线最新 | 色呦呦在线观看视频 | 中文 欧美 日韩 | 亚洲粉嫩| 亚洲23p | 欧美性爱精品在线 | 日本免费一区二区三区 | 精品久久久久久久久久久久久久久久久 | 日韩爱爱免费视频 | 欧美激情影音先锋 | 天天操天天爱天天干 | 亚洲视频在线免费 | 亚洲情网| 99热9| 亚洲第一黄色 | 最新高清无码专区 | 亚洲情人网 | 国产精品999.| 天天弄天天操 | 一级黄色片在线播放 | 国产成人一级片 | 日韩av在线播放观看 | 久久aⅴ乱码一区二区三区 亚洲成人18 | 99国产精品久久久久 | 91精品色| 夜夜欢天天干 | 天天摸天天做天天爽 | 91视频最新地址 | 国产精品久久久精品 | 一级黄色欧美 | 欧美成人久久久免费播放 | 久久女同互慰一区二区三区 | 天天射天天 | 欧美日韩国产在线观看 | 中文字幕高清在线 | 中文字幕在线观看av | 我要看一级黄色片 | 亚洲黄色一级 | 精品视频免费在线观看 | 亚洲午夜免费视频 | 国产www性| 国产精品毛片视频 | 午夜视频网 | 依依成人在线视频 | 日韩精品亚洲一区 | 日韩和的一区二区 | 午夜色福利 | 神马午夜精品95 | 国产三区在线成人av | 久久99国产精品一区 | 99热这里只有精品久久 | 亚洲国产欧美自拍 | 日韩精品一级 | 性生交大全免费看 | 亚洲永久免费av | 麻豆久久精品 | 亚洲乱码国产乱码精品精 | 欧美视频精品 | 97超视频在线观看 |