Jzoj4348 打擊目標

又是被水題坑了。。。

一直想不出來看題解說要什么主席樹,于是開始打離線算法

結果打到一半發現要強制在線。。No!!!

發現直接AC自動機似乎可做?樹剖之后在AC自動機上跑的時候判斷一下不就好了嗎!連線段樹都不要

讓后快樂切掉,速度還可以(廢話,人家N^2暴力都跑得飛快)

#pragma GCC opitmize("O3")
#pragma G++ opitmize("O3")
#include<queue>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define vs (*s-'a')
#define N 100010
using namespace std;
struct AcAutomation{int son[N*10][26],f[N*10],c[N*10],cnt;queue<int> q; vector<int> p[N*10];inline void clear(){ cnt=1; }inline void insert(char* s,int pos){int x=1,l=0;for(;*s;++s,++l)x=son[x][vs]?son[x][vs]:son[x][vs]=++cnt;c[x]=l; p[x].push_back(pos);}inline void build(){p[1].push_back(N); sort(p[1].begin(),p[1].end());for(int i=0;i<26;++i)if(!son[1][i]) son[1][i]=1;else q.push(son[1][i]),f[son[1][i]]=1;for(int x;!q.empty();q.pop()){x=q.front(); p[x].push_back(N);sort(p[x].begin(),p[x].end());for(int i=0;i<26;++i)if(!son[x][i]) son[x][i]=son[f[x]][i];else q.push(son[x][i]),f[son[x][i]]=son[f[x]][i];}}inline int query(char* s,int l,int r){int ans=0;for(int x=1;*s;++s){x=son[x][vs];for(int j=x;j>1;j=f[j])if(c[j]>ans && *lower_bound(p[j].begin(),p[j].end(),l)<=r){ ans=c[j]; break; }}return ans;}
}AC;
char s[N][12],c[N];
struct edge{ int v,nt; } G[N<<1];
int h[N],d[N],f[N],top[N],son[N],sz[N];
int l[N],r[N],n,m,cnt=0,clk=0,T;
inline void adj(int x,int y){G[++cnt]=(edge){y,h[x]}; h[x]=cnt;G[++cnt]=(edge){x,h[y]}; h[y]=cnt;
}
void dfs(int x,int p){d[x]=d[p]+1; f[x]=p; sz[x]=1;for(int v,i=h[x];i;i=G[i].nt)if(!d[v=G[i].v]){dfs(v,x);sz[x]+=sz[v];if(sz[son[x]]<sz[v]) son[x]=v;}
}
void dgs(int x,int p){l[x]=++clk; top[x]=p; if(son[x]) dgs(son[x],p);for(int v,i=h[x];i;i=G[i].nt)if(!top[v=G[i].v]) dgs(v,v);
}
int gLca(int x,int y,char* s){int ans=0;for(;top[x]!=top[y];y=f[top[y]]){if(d[top[x]]>d[top[y]]) x^=y^=x^=y;ans=max(ans,AC.query(s,l[top[y]],l[y]));}if(d[x]>d[y]) x^=y^=x^=y;return max(ans,AC.query(s,l[x],l[y]));
}
int main(){scanf("%d%d",&n,&T); AC.clear();for(int i=1;i<=n;++i) scanf("%s",s[i]);for(int x,i=2;i<=n;++i) scanf("%d",&x),adj(x,i);dfs(1,0); dgs(1,1);for(int i=1;i<=n;++i) AC.insert(s[i],l[i]);scanf("%d",&m); AC.build();for(int x,y,ans=0;m--;){scanf("%d%d%s",&x,&y,c);x^=ans; y^=ans; ans=gLca(x,y,c);printf("%d\n",ans); ans*=T;}
}


轉載于:https://www.cnblogs.com/Extended-Ash/p/9477162.html

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

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

相關文章

深度學習之卷積神經網絡 VGGNet

2014年&#xff0c;牛津大學計算機視覺組&#xff08;Visual Geometry Group&#xff09;和Google DeepMind公司的研究員一起研發出了新的深度卷積神經網絡&#xff1a;VGGNet&#xff0c;并取得了ILSVRC2014比賽分類項目的第二名&#xff08;第一名是GoogLeNet&#xff0c;也是…

SpringMVC 返回json的兩種方式

前后臺數據交互使用json是一種很重要的方式.本文主要探討SpringMVC框架使用json傳輸的技術. 請注意,本文所提到的項目使用Spring 版本是4.1.7,其他版本在具體使用上可能有不一樣的情況. 一、最常見——使用RequestBody的注解返回一個實體對象; 使用方式如下: 1:引入jar包&#…

word上怎么把圖片拼接到一起_如何用Word把自己插入的兩張圖片合在一起?

例如上面效果的設置方法&#xff1a;1、單擊插入----圖片按鈕&#xff1b;2、彈出插入圖片對話框&#xff0c;按住Ctrl鍵&#xff0c;同時選擇所需要的圖片&#xff1b;3、選中圖片&#xff0c;單擊圖片工具格式----文字環繞----緊密型環繞&#xff1b;4、此時&#xff0c;用鼠…

深度學習之卷積神經網絡 ResNet

論文 Identity Mappings in Deep Residual Networks 2015年&#xff0c;ResNet&#xff08;Residual Neural Network&#xff09;由微軟研究院的Kaiming He等四名華人提出&#xff0c;并在ILSVRC2015比賽中取得冠軍&#xff0c;在top5上的錯誤率為3.57%&#xff0c;同時參數量…

按照RFC3984協議實現H264視頻流媒體 RTSP H264

轉自&#xff1a;http://topic.csdn.net/u/20100104/16/0fd992e8-b0a6-4c2b-85a4-d9513d3b1491.html 相信有不少人和我一樣&#xff0c;希望實現H264格式視頻的流媒體播放。但是對于一個新手來說&#xff0c;往往不知道從何入手。利用百度&#xff0c;GOOGLE等搜索資料真是沙里…

搭建SSM框架之Spring

作為一枚大四準備畢業的學生&#xff0c;最重要的事便是畢業設計&#xff0c;前些日子剛剛拿到畢設題目&#xff1a;“3D網絡圖&#xff1a;面向網絡結構數據的可視化軟件設計”&#xff0c;(⊙o⊙)…&#xff0c;怎么說哪&#xff0c;看到題目就是一頭霧水&#xff08;前幾屆不…

audio unity 加速_淺談Unity中Android、iOS音頻延遲

在Unity上面做音游&#xff0c;當在移動端實機運行起來&#xff0c;會發現&#xff0c;音頻的發出會有一定的延遲&#xff0c;無論是長音效還是短音效&#xff0c;Unity內置的Audio內部使用的是FMOD&#xff0c;有以下手段改善通過設置稍微改善其延遲的問題Edit → Project Set…

深度學習之 hard negative mining (難例挖掘)

Hard Negative Mining Method 思想 hard是困難樣本&#xff0c;negative是負樣本&#xff0c;hard negative就是說在對負樣本分類時候&#xff0c;loss比較大&#xff08;label與prediction相差較大&#xff09;的那些樣本&#xff0c;也可以說是容易將負樣本看成正樣本的那些…

單列表_使用Excel中的quot;記錄單quot;功能快速錄入數據

在Excel中進行數據錄入的時候&#xff0c;平常都是一行一行地錄入數據&#xff0c;但是有時候在單元格之間&#xff0c;行與行&#xff0c;列與列之間頻繁地切換去錄入數據&#xff0c;費事費力還容易出錯。今天給你推薦一個既好用又有效率的Excel中的隱藏功能——“記錄單”。…

CentOS 6.9下的Setup工具(用于管理服務/防火墻/網絡配置/驗證服務)

說明&#xff1a;Setup工具套件好像是CentOS下特有的用于管理服務/防火墻/網絡配置等&#xff0c;其實就是基于命令行模式界面的GUI工具。唯一特點就是方便。 安裝&#xff1a; #安裝Setup命令工具 yum -y install setuptool #安裝Setup工具配套的系統服務組件 yum -y insta…

wireshark解析rtp協議,流媒體中的AMR/H263/H264包的方法

原文教程&#xff1a;http://hi.baidu.com/zjxiaoyu3/blog/item/22f9f18f32b45de5f11f3670.html 抓到完整的流媒體包之后&#xff0c;用wireshark打開&#xff0c;其中的包可能不會自動映射成RTP&#xff0b;AMR&#xff0f;H263&#xff0f;H264的包&#xff0c;做如下修改操作…

深度學習之非極大值抑制(Non-maximum suppression,NMS)

非極大值抑制&#xff08;Non-maximum suppression&#xff0c;NMS&#xff09;是一種去除非極大值的算法&#xff0c;常用于計算機視覺中的邊緣檢測、物體識別等。 算法流程 給出一張圖片和上面許多物體檢測的候選框&#xff08;即每個框可能都代表某種物體&#xff09;&…

148. 顏色分類

給定一個包含紅&#xff0c;白&#xff0c;藍且長度為 n 的數組&#xff0c;將數組元素進行分類使相同顏色的元素相鄰&#xff0c;并按照紅、白、藍的順序進行排序。 我們可以使用整數 0&#xff0c;1 和 2 分別代表紅&#xff0c;白&#xff0c;藍。 注意事項 不能使用代碼庫中…

vue項目token放在哪里_關于vue動態菜單的那點事

vue-element-admin4.0國內節點訪問地址&#xff1a;https://panjiachen.gitee.io/vue-element-admin-site/zh/本此使用的是https://github.com/PanJiaChen/vue-element-admin/tree/i18n 國際化分支的版本。說是除了國際化其他都一樣。本文主要介紹前臺動態的使用資源權限。后臺…

H264學習方法歷程資料

我的H.264學習歷程 半年前&#xff0c;我知道了H.264這個名詞。那個時候決定學習H.264&#xff0c;可是我連資料都不知道如何收集。而且整個學校就只有我一個人在學習H.264&#xff0c; 找不到人交流&#xff0c;所以那個時候學得真的是舉步維艱&#xff0c;很痛苦&#xff0c…

深度學習之 ROI Pooling

什么是ROI&#xff1f; ROI是 Region of interest 的簡寫&#xff0c;指的是 Faster R-CNN 結構中&#xff0c;經過 RPN 層后&#xff0c;產生的 proposal 對應的 box 框。 ROI Pooling 顧名思義&#xff0c;是 pooling 層的一種&#xff0c;而且是針對 ROIs 的 pooling。整個…

KD樹小結

很久之前我就想過怎么快速在二維平面上查找一個區域的信息&#xff0c;思考許久無果&#xff0c;只能想到幾種優秀一點的暴力。 KD樹就是干上面那件事的。 別的不多說&#xff0c;趕緊把自己的理解寫下來&#xff0c;免得涼了。 KD樹的組成 以維護k維空間(x,y,……)內的KD樹為例…

多元函數求極值中的a_多元函數的條件極值和拉格朗日乘數法

、條件極值、拉格朗日乘數法1. 轉化為無條件極值在討論多元函數極值問題時&#xff0c;如果遇到除了在定義域中尋求駐點(可能的極值點)外&#xff0c;對自變量再無別的限制條件&#xff0c;我們稱這類問題為函數的無條件極值。如求的極值&#xff0c;就是無條件極值問題。然而在…

深度學習之 RPN(RegionProposal Network)- 區域候選網絡

anchor boxes基本概念與作用: feature map 上的一個點可以映射回輸入圖片上的一個點&#xff0c;以特征圖上這個點為中心&#xff0c;預先人為設定 k 個 boxes&#xff0c;這些 boxes 就稱為在這個點上生成的 k 個 anchor boxes&#xff08;所有anchor boxes的中心點坐標是一樣…

h264的碼率控制 JVT-G012

開始看h264的碼率控制&#xff0c;很多地方都提到 G012&#xff0c;拿來做為參考比較&#xff0c;看來很有必要研究清楚。 偶這人&#xff0c;E文文檔不翻譯的話&#xff0c;看過就忘了&#xff0c;于是草草翻譯了下&#xff0c;因為不打算做B幀&#xff0c;也不準備在同一幀中…