hdu5489 Removed Interval dp+線段樹優化

現在看這題居然直接秒了。。。去年看的時候還以為神題。。

設以第i項為結尾的lis前綴為f[i],以第j項為結尾的lis后綴為g[i],如果求出f[i]和g[j],然后枚舉i,快速找到最大的滿足a[j]>a[i]的g[j]就可以了。注意到如果將f[i]從后往前枚舉,那么只要添加g[j]而不用刪除操作了,因此枚舉f[i],在線段樹中找(a[i]+1,Xn]中g的最大值就可以了,ans=f[i]+max(g[j]) (a[j]>a[i]且j>i+L),然后順勢把g[j]插入線段樹。

求f[i]也是dp+線段樹優化,f[i]=max(f[j])+1 (a[j]<a[i])。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#define REP(i,a,b) for(int i=a;i<=b;i++)
#define MS0(a) memset(a,0,sizeof(a))
#define key_val ch[ch[rt[i]][1]][0]
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1using namespace std;typedef long long ll;
const int maxn=1000100;
const int INF=1e9+10;int n,L;
int a[maxn],X[maxn],Xn;
int f[maxn],g[maxn];
int Max[maxn<<2];void push_up(int rt)
{Max[rt]=max(Max[rt<<1],Max[rt<<1|1]);
}void build(int l,int r,int rt)
{if(l==r){Max[rt]=0;return;}int m=(l+r)>>1;build(lson);build(rson);push_up(rt);
}void update(int p,int c,int l,int r,int rt)
{if(l==r){Max[rt]=max(Max[rt],c);return;}int m=(l+r)>>1;if(p<=m) update(p,c,lson);else update(p,c,rson);push_up(rt);
}int query(int L,int R,int l,int r,int rt)
{if(L>R) return 0;if(L<=l&&r<=R) return Max[rt];int m=(l+r)>>1;int res=0;if(L<=m) res=max(res,query(L,R,lson));if(R>m) res=max(res,query(L,R,rson));return res;
}int main()
{#ifndef ONLINE_JUDGEfreopen("in.txt","r",stdin);#endifint T;cin>>T;REP(casen,1,T){scanf("%d%d",&n,&L);REP(i,1,n) scanf("%d",&a[i]),X[i]=a[i];sort(X+1,X+n+1);Xn=unique(X+1,X+n+1)-(X+1);REP(i,1,n) a[i]=lower_bound(X+1,X+Xn+1,a[i])-X;build(1,Xn,1);f[0]=0;REP(i,1,n) f[i]=query(1,a[i]-1,1,Xn,1)+1,update(a[i],f[i],1,Xn,1);build(1,Xn,1);int ans=0,tmp=0;for(int i=n;i>=1;i--){int j=i-L;if(j>=0){tmp=f[j]+query(a[j]+1,Xn,1,Xn,1);ans=max(ans,tmp);}g[i]=query(a[i]+1,Xn,1,Xn,1)+1;update(a[i],g[i],1,Xn,1);}printf("Case #%d: %d\n",casen,ans);}return 0;
}
View Code

?

轉載于:https://www.cnblogs.com/--560/p/5211163.html

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

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

相關文章

JS原型鏈理解

1. 每個對象都有原型屬性(__proto__)2. 對象的原型(__proto__)指向其構造函數(Constructor)的prototype屬性3. 構造函數(Constructor)的prototype屬性本身也是一個對象&#xff0c;其原型(__proto__)亦指向其構造函數的prototype4. 如此形成一個鏈式結構&#xff0c;而Construc…

【深度學習】——2021年FPN特征金字塔

#!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2021/4/22 17:06 # Author : linlianqin # Site : # File : fpn.py # Software: PyCharm # description:其搭建的基本流程和resnet是一致的&#xff0c;只是將每一層的卷積結果保存了起來import torch impo…

NoSQL分類及ehcache memcache redis 三大緩存的對比

NoSQL分類 由于NoSQL中沒有像傳統數據庫那樣定義數據的組織方式為關系型的&#xff0c;所以只要內部的數據組織采用了非關系型的方式&#xff0c;就可以稱之為NoSQL數據庫。目前&#xff0c;可以將眾多的NoSQL數據庫按照內部的數據組織形式進行如下分類&#xff1a; Key/Value的…

52.4. APC Cache (php-apc - APC (Alternative PHP Cache) module for PHP 5)

$ apt-cache search php-apc php-apc - APC (Alternative PHP Cache) module for PHP 5$ sudo apt-get install php-apcapc cache 狀態監控 http://pecl.php.net/package/APC 下載解包找到apc.php,放到web服務器上 原文出處&#xff1a;Netkiller 系列 手札 本文作者&#xff1…

樂視云計算基于OpenStack的IaaS實踐

本文作者岳龍廣&#xff0c;現在就職于樂視云計算有限公司&#xff0c;負責IaaS部門的工作。 從開始工作就混在開源世界里&#xff0c;在虛擬化方面做過CloudStack/Ovirt開發&#xff0c;現在是做以OpenStack為基礎的樂視云平臺。所以對虛擬化情有獨鐘&#xff0c;也對虛擬化/云…

【深度學習】——如何提高map值

目錄 代碼獲取 map原理 map提高技巧 技巧總結&#xff1a; 實戰&#xff1a; 1、效果不佳map55.55% 1&#xff09;單獨調整get_dr_txt.py中的self.iou 0.3 2&#xff09;單獨調整get_map,py中的minoverlap: 3)同時調整minoverlap和self.iou 本文是在faster_rcnn模型的…

每日站立會議個人博客(沖刺周)-Wednesday

時間未完成不知道如何獲取具體標簽里的內容正在做爬蟲技術之獲取標簽里的內容將要做對運用爬蟲技術獲取的數據進行處理轉載于:https://www.cnblogs.com/andibier/p/8075098.html

數據庫水平切分的實現原理解析——分庫,分表,主從,集群,負載均衡器(轉)...

第1章 引言 隨著互聯網應用的廣泛普及&#xff0c;海量數據的存儲和訪問成為了系統設計的瓶頸問題。對于一個大型的互聯網應用&#xff0c;每天幾十億的PV無疑對數據庫造成了相當高的負載。對于系統的穩定性和擴展性造成了極大的問題。通過數據切分來提高網站性能&#xff0c;橫…

【深度學習】——糾錯error: Unable to find vcvarsall.bat:關于安裝pycocotools

1、安裝包下載 大佬改寫支持 Windows 的 COCO 地址&#xff1a;https://github.com/philferriere/cocoapi 下載后如下&#xff1a; 進入pythonAPI 先后運行&#xff1a; python setup.py build_ext --inplacepython setup.py build_ext install 出現以下標志時&#xff0c…

【小貼士】虛擬鍵盤與fixed帶給移動端的痛!

前言今天來公司的主要目的就是研究虛擬鍵盤與fixed的問題&#xff0c;期間因為同事問起閉包與事件委托&#xff08;阻止冒泡&#xff09;相關問題&#xff0c;便穿插了一篇別的&#xff1a;【小貼士】工作中的”閉包“與事件委托的”阻止冒泡“&#xff0c;有興趣的朋友可以去看…

[OJ] Wildcard Matching (Hard)

LintCode 192. Wildcard Matching (Hard)LeetCode 44. Wildcard Matching (Hard) 第二次刷還是被這題虐. 其實就是跪在一個地方, 就是關于mustFail的地方. 當*p && !*s的時候, 說明s已經被用完了, p還沒有被窮盡, 這種情況下要直接退出所有的遞歸返回false, 因為s都匹配…

CSS3 -webkit-transition(屬性漸變)

-webkit-transition&#xff1a;CSS屬性(none|all|屬性) 持續時間 時間函數 延遲時間 CSS屬性(transition-property)&#xff1a;要變化的屬性&#xff0c;比如元素變寬則是width&#xff0c;文字顏色要變色這是color&#xff1b;W3C給出了一個可變換屬性的列表&#xff1a;…

vxworks的default boot line說明

boot程序的主要功能是引導vxworks 內核,所以boot程序需要知道vxworks的內核存放在何處&#xff0c;通過什么手段去獲取。在vxworks缺省的boot程序里有一條內建的default boot line,它指明了獲得vxworks內核的途徑&#xff0c;在boot程序啟動時&#xff0c;它先尋找NVRAM里面有無…

【機器視覺】——相機和鏡頭的選擇

目錄 1、相機選擇 2、鏡頭選擇 3、其他計算公式 1)芯片尺寸計算:

React Native中pointerEvent屬性

在React Native界面開發中, 如果使用絕對定位布局,在代碼運行時的某個時刻有可能會遮蓋住它的下方的某個組件。這是因為絕對定位只是說這個組件的位置由它父組件的邊框決定。 絕對定位的組件可以被認為會覆蓋在它前面布局&#xff08;JSX代碼順序&#xff09;的組件的上方. 如果…

Rar Java Zip

http://wolfdream.iteye.com/blog/428588轉載于:https://www.cnblogs.com/diyunpeng/p/5218381.html

庫卡機器人CELL程序解析

KUKA機器人 CELL程序 解析及注釋&ACCESS RVP&REL 4&COMMENT HANDLER on external automaticDEF CELL ( );EXT EXAMPLE1 ( );EXT EXAMPLE2 ( );EXT EXAMPLE3 ( ) ;FOLD INITDECL CHAR DMY[3]DMY[]"---";ENDFOLD (INIT);FOLD BASISTECH INIIR_STOPM ( )…

Ubuntu 16.04服務器安裝及軟件配置

1.配置靜態地址 vim /etc/network/interfaces auto enp1s0 iface enp1s0 inet static address 192.168.1.131 netmask 255.255.255.0auto enp2s0 iface enp2s0 inet static address 192.168.2.131 netmask 255.255.255.0auto enp3s0 iface enp3s0 inet static address 192.168.…

[軟件測試airtest軟件安裝]——填坑

目錄 1、安裝Python環境&#xff08;版本問題&#xff09; 2、連接手機出現連接上了但是無法進行點擊 airtest官網&#xff1a; https://airtest.doc.io.netease.com/for_newer/ 關于軟件測試剛入門的可以參考進行了解&#xff1a;https://airtest.doc.io.netease.com/tuto…

KUKA 機器人SPS.SUB程序解析

&ACCESS RVO&COMMENT PLC on controlDEF SPS ( );FOLD DECLARATIONS;FOLD BASISTECH DECL;Automatik externDECL STATE_T STAT定義STATE_T類型的變量。該結構為&#xff1a;STRUC STATE_T CMD_STAT RET1&#xff0c; CMD_STAT是枚舉類型數據&#xff0c;組成了STATE_…