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! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          CF786C-Till I Collapse【樹狀數組倍增,優先隊列】

          來源:互聯網轉載 時間:2024-01-29 08:30:44

          正題

          題目鏈接:https://www.luogu.com.cn/problem/CF786C


          題目大意

          給出一個長度為\(n\)的序列。

          對于每個\(k\in[1,n]\)求將\(n\)分成最少的段使得每段的長度不同。

          \(1\leq a_i\leq n\leq 10^5\)


          解題思路

          考慮對于一個\(k\)我們的做法顯然就是直接暴力往后匹配能多晚分段就多晚分段。

          然后考慮這題因為對于一個\(k\)答案的上界是\(\frac{n}{k}\)所以其實所有\(k\)的段數和是\(n\log n\)級別的。

          所以我們可以所有的\(k\)一起做,用優先隊列維護所有\(k\)的目前段結尾,然后每個數字記一下后面和他相等的第一個位置,在樹狀數組上倍增出需要的位置就好了。

          時間復雜度\(O(n\log^2 n)\)


          code

          #include<cstdio>#include<cstring>#include<algorithm>#include<queue>#define mp(x,y) make_pair(x,y)#define lowbit(x) (x&-x)using namespace std;const int N=1e5+10;int n,a[N],c[N],nxt[N],t[N],f[N];priority_queue<pair<int,int> > q;void Change(int x,int val){while(x<=n){t[x]+=val;x+=lowbit(x);}return;}int Ask(int k){int ans=0,x=0;for(int i=18;i>=0;i--)if(x+(1<<i)<=n&&ans+t[x+(1<<i)]<=k)x+=(1<<i),ans+=t[x];return x;}int main(){scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]),c[i]=n+1; for(int i=n;i>=1;i--)nxt[i]=c[a[i]],c[a[i]]=i;for(int i=1;i<=n;i++)Change(c[i],1);for(int i=1;i<=n;i++)q.push(mp(-1,i));for(int i=1;i<=n;i++){while(-q.top().first==i){int k=q.top().second;q.pop();f[k]++;q.push(mp(-Ask(k)-1,k));}Change(i,-1);Change(nxt[i],1);}for(int i=1;i<=n;i++)printf("%d ",f[i]);return 0;}
          標簽:tillicollapse-

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

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

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

          cfosspeed怎么設置啊~?cFossSpeed設置方法:步驟1:暫時掛起所有訪問Internet的程序,以便ADSL網絡沒有任何數據流量。第二步:右鍵點擊系統圖標欄中的cfossspeed圖標,從彈出菜單中選擇“設置”“連接”命令,激活流量調整設置界面。由于程序會自動列出所有可用的網絡訪問,因此有必要根據實際情況將訪問模式設置為“使用”。如果您不確定要使用哪種連接模式,可以將所有連接項設置為...

          北京六環包括哪些地方 北京六環在哪里?京六環有哪些市? 北京六環橫跨昌平區、順義區、房山區、大興區、門頭溝區、石景山區、通州區七個區。北京六環路187.6公里,以前的名字是公路二環。2001年底,六環路一期工程于2001年底完成。-通馬黃段建成并通車。2009年9月12日,隨著西六環路最后一段建成通車,全長通車。187.6北京六環路全線貫通。 北京六環屬于哪個區? 答:六環屬于七個區。它們...

          是白雪的冰柜好還是阪神的冰柜好?當然是白雪公主。它首先使用德國技術和壓縮機。全部采用純銅管,其展示柜全部采用風冷無霜技術。這是冰柜行業最優質的技術。該公司旗下還有兩個品牌,雪蜻蜓版神。它的生產基地在江蘇,阪神是白雪公主的品牌和白雪公主的公司做的,但是價格相對便宜,所以不夠切料。0-@qq.com阪神是明星買的,頂開式冰柜700多升如雪。阪神的價格在3800左右。阪神冰柜價格是多少?冰柜大多用于商場...

          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>