BZOJ 2957 樓房重建 (分塊)

題解:分塊,然后暴力維護每一塊上升序列,注意是不是最長上升序列,二分查找第二塊中大于第一塊的最后一個上升序列中的數。

   注意:每一塊的大小不要用√n會T掉的,把塊的大小設為500-600都可以(T了一頁了)。或者你用線段樹去寫。

  

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <map>
#include <queue>
#include <vector>
#include <cstring>
#include <iomanip>
#include <set>
#include<ctime>
//#include<unordered_map>
//CLOCKS_PER_SEC
#define se second
#define fi first
#define ll long long
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define Pii pair<int,int>
#define Pli pair<ll,int>
#define ull unsigned long long
#define pb push_back
#define fio ios::sync_with_stdio(false);cin.tie(0)
const int N=1e5+10;
const ull base=163;
const int INF=0x3f3f3f3f;
using namespace std;int h[N];
struct node {int top,sta[600];
}p[600];
bool cmp(int x,int y){if(!y)return h[x]>0;return 1LL*y*h[x]>1LL*x*h[y];
}
int main(){int n,m;scanf("%d%d",&n,&m);int sz=550;for(int i=1;i<=m;i++){int x;scanf("%d",&x);scanf("%d",&h[x]);int l=x/sz*sz;int r=min(n+1,(x/sz+1)*sz);p[x/sz].top=0;for(int i=l;i<r;i++){if(cmp(i,p[x/sz].sta[p[x/sz].top])){p[x/sz].sta[++p[x/sz].top]=i;}}int last=0,ans=0;for(int i=0;i<=(n)/sz;i++){int l=1,r=p[i].top;int op=0;while (l<=r) {int mid=(l+r)>>1;if(cmp(p[i].sta[mid],last)){r=mid-1;op=mid;}else{l=mid+1;}}if(op){last=p[i].sta[p[i].top];ans+=p[i].top-op+1;}}printf("%d\n",ans);}return 0;
}

?

轉載于:https://www.cnblogs.com/Mrleon/p/9051784.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451749.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451749.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451749.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OpenBSD 5.1 正式版發布

OpenBSD 開發團隊于近日發布了 5.1 正式版。 OpenBSD是一個從NetBSD衍生出來的類Unix操作系統。項目領導人Theo de Raadt在1995年發起了OpenBSD項目&#xff0c;希望創造一個注重安全的操作系統&#xff0c;此外OpenBSD也以高品質的文件、堅持開放程式碼以及嚴格的軟件授權著名…

Spring事務傳播行為7種類型 --- 看一遍就能記住!

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一、Spring 事務傳播行為一共有7種類型&#xff0c;主要分為3類&#xff1a; 1&#xff09;支持當前事物、 2&#xff09;不支持當前事…

PowerShell變量——PowerShell三分鐘(七)

有了前面的PowerShell基礎&#xff0c;今天我們來學習一個可以極大提升PowerShell效率的用法——變量簡答來說呢&#xff0c;變量就是在內存中的一個帶有名字的盒子~~~~~你可以把所有想存放的東西都放到這個“盒子”里。然后通過名字去訪問這個盒子。在訪問過程中&#xff0c;可…

Machine Learning - Coursera week6 Evaluating a learning algorithm

Evaluating a learning algorithm 1. Design what to do next 在預測房價的學習例子&#xff0c;假如你已經完成了正則化線性回歸&#xff0c;也就是最小化代價函數J的值。假如在你得到你的學習參數以后把它應用到放到一組新的房屋樣本上進行測試&#xff0c;發現在預測房價時產…

Tiny Core Linux 4.5 發布,微型 Linux 操作系統

世界上最小的Linux桌面發行版——Tiny Core Linux 今天發布了4.5版本。Tiny Core Linux是一個基于Linux2.6版本內核&#xff0c;采用BusyBox、Tiny X、FLTK 和其它小型軟件構筑的帶圖形用戶界面的微型Linux操作系統。由于體積很小&#xff0c;大約10MB&#xff0c;故采用整體裝…

30-- 返回倒數第 k 個節點

文章目錄1.問題描述2.代碼詳情1.問題描述 實現一種算法&#xff0c;找出單向鏈表中倒數第 k 個節點。返回該節點的值。 輸入&#xff1a; 1->2->3->4->5 和 k 2 輸出&#xff1a; 4 2.代碼詳情 設置快和慢兩個指針&#xff0c;初始化時快指針比慢指針多走k-1步…

maven的web工程打包為war并部署到服務器

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1.在maven工程上右鍵 --> export --> 選擇WAR file --> next 2. 點擊Browse... 選擇導出后存放位置 3. 將工程名改為ROOT.war…

使用線程池的好處

第一&#xff1a;降低資源消耗。通過重復利用已創建的線程降低線程創建和銷毀造成的消耗。第二&#xff1a;提高響應速度。當任務到達時&#xff0c;任務可以不需要等到線程創建就能立即執行。第三&#xff1a;提高線程的可管理性。線程是稀缺資源&#xff0c;如果無限制的創建…

5.19 - Stacks and Queues

Decode Stringk[encoded_string] 的編碼字符串&#xff0c;將編碼的字符重復k次&#xff0c;最后打印出一個完整的字符串。 思路&#xff1a;使用棧結構&#xff0c;由里層向外層&#xff0c;層層解碼&#xff0c;當遇到了[ 字符時&#xff0c;向stack當中添加元素&#xff0c;…

Hive筆記之嚴格模式(strict mode)

Hive有一個嚴格模式&#xff0c;在嚴格模式下會對可能產生較大查詢結果的語句做限制&#xff0c;禁止其提交執行。 一、切換嚴格模式 查看當前的模式&#xff1a;hive> set hive.mapred.mode; hive.mapred.mode is undefined 未定義即為false&#xff0c;即no-strict模式。 …

Notepad++ 6.0 發布,優化了大文件加載性能

開源編輯器Notepad今天發布了最新的6.0版本。 Notepad 是一款免費的開源跨平臺代碼編輯器。它支持包括中文在內的多國語言&#xff0c;功能強大&#xff0c;除了可以用來制作一般的純文字說明文件外&#xff0c;也可以作為代碼編輯器。Notepad不僅可以實現語法高亮顯示&#x…

31-- 二叉搜索樹的范圍和

文章目錄1.問題描述2.代碼詳情1.問題描述 給定二叉搜索樹的根結點 root&#xff0c;返回 L 和 R&#xff08;含&#xff09;之間的所有結點的值的和。 二叉搜索樹保證具有唯一的值。 示例 1&#xff1a; 輸入&#xff1a;root [10,5,15,3,7,null,18], L 7, R 15 輸出&…

java中 flush()方法

一般主要用在IO中&#xff0c;即清空緩沖區數據&#xff0c;就是說你用讀寫流的時候&#xff0c;其實數據是先被讀到了內存中&#xff0c;然后用數據寫到文件中&#xff0c;當你數據讀完的時候不代表你的數據已經寫完了&#xff0c;因為還有一部分有可能會留在內存這個緩沖區中…

JDK下載地址、SecureCRT中JDK安裝和環境配置、SecureCRT窗口編程、linux下命令運行小程序

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 下載linux版本的JDK。java SE、java EE JDK是通用的&#xff0c; 32位系統選Linux x86&#xff0c; 64位系統選Linux x64&#xff…

HTMLTestRunner 漢化版---來源一個大神的源碼(加了失敗截圖,用例失敗重新執行 功能)...

HTMLTestRunner 漢化版 20170925 測試報告完全漢化&#xff0c;包括錯誤日志的中文處理針對selenium UI測試增加失敗自動截圖功能增加失敗自動重試功能增加餅圖統計同時兼容python2.x 和3.x20180402 表格樣式優化修復部分bug增加截圖組&#xff0c;可展示多張截圖&#xff0c;首…

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilder

一.問題描述&#xff1a;pom.xml導入依賴時報錯 PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilder 二.解決方法&#xff1a; 1.加入ali鏡像源 <repositories><repository><id>maven-ali</id><url>https://mave…

你很棒的---自我管理方法,一生受用!!!

激勵自己--自我暗示 每天寫下五件幸福的事 &#xff1a;&#xff08;例12月2日周日&#xff09;1、給爸媽各買了一件衣服 2、出門曬了一下太陽 3、認識了一個新朋友&#xff0c;去了青年湖公園&#xff0c;人生就是一種經歷&#xff01;4、看了場電影《命運呼叫轉移》悟人生真…

持續集成與自動化部署 - jenkins sonar代碼質量管理平臺 部署和基礎使用(五)...

1 jenkins 安裝參考鏈接 1.1 安裝jenkins [roottest-node3 ~]# yum install -y java-1.8.0 [roottest-node3 ~]# cd /etc/yum.repos.d/ [roottest-node3 yum.repos.d]# wget http://pkg.jenkins.io/redhat/jenkins.repo [roottest-node3 yum.repos.d]# rpm --import http://pkg…

【轉】數學與編程——求余、取模運算及其性質

一、求余運算&#xff08;Remainder&#xff09; &#xff08;參考維基百科&#xff1a; http://zh.wikipedia.org/wiki/余數 http://en.wikipedia.org/wiki/Remainder http://en.wikipedia.org/wiki/Euclidean_divisionhttp://zh.wikipedia.org/wiki/同余&#xff09; Euclid…

javax.net.ssl.SSLException MESSAGE: closing inbound before receiving peer‘s close_notify

1. 問題描述&#xff1a; ** BEGIN NESTED EXCEPTION ** javax.net.ssl.SSLException MESSAGE: closing inbound before receiving peers close_notifySTACKTRACE:javax.net.ssl.SSLException: closing inbound before receiving peers close_notifyat sun.security.ssl.Alert.…