1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          [NOI2020省選]冰火戰士

          來源:互聯網轉載 時間:2024-01-29 08:16:49

          題目

          點這里看題目。

          分析

          設\(F(T)\)為溫度為\(T\)的時候火系戰士能量和,\(I(T)\)為\(T\)時冰系戰士能量和。

          顯然我們需要求:

          \[\max\{\min\{F(T),I(T)\}\}\]

          另一個顯然的事情是,\(F(T)\)是一個后綴和,\(I(T)\)是一個前綴和;因而\(F(T)\)單減,\(I(T)\)單增。

          那么\(\min\{F(T),I(T)\}\)就應該是一個有最高平臺的函數。

          更進一步的,設\(T_1=\max\{T|I(T)\le F(T)\},T_2=\min\{T|F(T)<I(T)\}\),那么我們可以知道,峰要么是\(I(T_1)\),要么是\(F(T_2)\)。

          首先我們可以離散化后,用樹狀數組維護一下\(I\)的前綴和和\(F\)的前綴差和。計算\(F\)的時候,我們用能量和減掉范圍外的。

          尋找\(T_1\),我們可以直接在樹狀數組上面二分。具體來說,我們實際上枚舉步長來進行倍增,并利用樹狀數組得到當前的前綴信息。

          尋找\(F(T_2)\),我們可以直接找出\(T_1\)的后繼\(T_2'\),那么\(F(T_2)=F(T_2')\)。不過,有可能\(T_2'<T_2\),我們需要在樹狀數組上面把\(F(T_2')\)的值代入,二分找出\(T_2\)。

          所以總共應該有兩個二分,一個尋找\(T_1\),一個尋找\(T_2\)。

          時間復雜度是\(O(n\log_2n)\),非常非???需要卡?;蛘?O2 。

          代碼

          #include <cmath>#include <cstdio>#include <algorithm>const int MAXN = 2e6 + 5;template<typename _T>void read( _T &x ){x = 0;char s = getchar();int f = 1;while( s > '9' || s < '0' ){if( s == '-' ) f = -1; s = getchar();}while( s >= '0' && s <= '9' ){x = ( x << 3 ) + ( x << 1 ) + ( s - '0' ), s = getchar();}x *= f;}template<typename _T>void write( _T x ){if( x < 0 ){ putchar( '-' ); x = ( ~ x ) + 1; }if( 9 < x ){ write( x / 10 ); }putchar( x % 10 + '0' );}struct oper{int type, id, x, y;}op[MAXN];int F[MAXN], I[MAXN];int temp[MAXN];int typ[MAXN], T[MAXN], E[MAXN];int Q, N, lg2, all;void up( int &x ) { x += x & ( -x ); }void down( int &x ) { x &= ( x - 1 ); }void uptF( int x, const int v ) { for( ; x <= N ; up( x ) ) F[x] += v; }void uptI( int x, const int v ) { for( ; x <= N ; up( x ) ) I[x] += v; }int getF( int x ) { int ret = 0; for( ; x ; down( x ) ) ret += F[x]; return ret; }int getI( int x ) { int ret = 0; for( ; x ; down( x ) ) ret += I[x]; return ret; }int find1(){int p = 0, ice = 0, fire = 0, tmp;for( int s = 1 << lg2 ; s ; s >>= 1 ){tmp = p + s;if( tmp > N ) continue;ice += I[tmp];fire += F[tmp];if( ice <= all - fire ) p = tmp;else ice -= I[tmp], fire -= F[tmp];}return p;}int find2( const int tar ){int p = 0, fire = 0, tmp;for( int s = 1 << lg2 ; s ; s >>= 1 ){tmp = p + s;if( tmp > N ) continue;fire += F[tmp];if( all - fire >= tar ) p = tmp;else fire -= F[tmp];}return p;}int main(){read( Q );for( int i = 1 ; i <= Q ; i ++ ){read( op[i].type ), read( op[i].id );if( op[i].type == 1 ) read( op[i].x ), read( op[i].y ), temp[++ N] = op[i].x;}std :: sort( temp + 1, temp + 1 + N );N = std :: unique( temp + 1, temp + 1 + N ) - temp - 1;lg2 = log2( N ); int pos, p1, e1, p2, e2;for( int i = 1 ; i <= Q ; i ++ ){if( op[i].type == 1 ){pos = std :: lower_bound( temp + 1, temp + 1 + N, op[i].x ) - temp;if( op[i].id ) all += op[i].y, uptF( pos + 1, op[i].y );else uptI( pos, op[i].y );typ[i] = op[i].id, T[i] = pos, E[i] = op[i].y;}else{pos = op[i].id;if( typ[pos] ) all -= op[pos].y, uptF( T[pos] + 1, -E[pos] );else uptI( T[pos], - E[pos] );}p1 = find1(), e1 = getI( p1 );p2 = p1 == N ? N : p1 + 1, e2 = all - getF( p2 );if( e1 == 0 && e2 == 0 ) { puts( "Peace" ); continue; }if( e1 > e2 ) write( temp[p1] ), putchar( ' ' ), write( e1 * 2ll ), putchar( '\n' );else write( temp[find2( e2 )] ), putchar( ' ' ), write( e2 * 2ll ), putchar( '\n' );}return 0;}
          標簽:冰火戰士-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          4399僵尸危機為什么沒了?僵尸危機是一款在國外非常流行的僵尸射擊游戲。游戲的故事是基于一個法師,MM,他誘使大樓里的人逃離。玩家扮演 "樂府悅 "在游戲中。游戲的目的是在喪尸橫行的大樓里找到沒有及時逃出來的人,并在爆破前把他們帶到安全的地方。最后,這個游戲應用商城還沒有下載,但是在網上還是可以玩的。還有一種可能是游戲永遠下架。4399僵尸危機改名成什么了?4399小游戲中的僵尸危機并沒有改名,只...

          北京到青島動車最快時間?最新的復興號高鐵G187北京南至青島北3小時40分d725次列車每天都有嗎?D725次列車是北京至青島北的空調動車組列車。這列火車每天都有。但目前停運,預計2022年11月初恢復正常運行。每天22: 42從北京站始發,途經大明湖、淄博、濰坊,次日6: 34到達青島北站。全程873公里,運行7小時52分鐘。d725次列車每天都有嗎?D725次列車每天發車。D725次列車從北京...

          360瀏覽器如何恢復歷史記錄?360瀏覽器發歷史記錄方法萬分感謝:1、簡單的方法然后打開電腦可以找到360瀏覽器,可以打開瀏覽器后直接點擊右上角的三條杠菜單選項2、再點后在自動彈出的頁面點擊你選歷史這個選項3、之后點擊左邊的日期就也可以參與恢復記錄,那樣的話完全恢復360瀏覽器歷史記錄的問題就能解決了。360瀏覽器怎么找回歷史瀏覽記錄?簡單的方法你可以打開你的360瀏覽器,然后再可以找到上方的一個...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>