낙 곡 st 표 템 플 릿 문제

10172 단어 데이터 구조
https://www.luogu.com.cn/problem/P3865 nlogn 예비 처리 o1 조회 f [i] [j] i 왼쪽 점 j 의 대표 길 이 는 2 ^ j - 우선 순위 비 < > 보다 크다.
#include
using namespace std;
const int maxn=1e5+5;//2^17=131072
const int lgn=19;
#define endl '
'
#define IO ios::sync_with_stdio(false);cin.tie(0); int n,q; int f[maxn][lgn],lg[maxn]; void init(){ lg[1]=0;lg[2]=1; for(int i=3;i<maxn;i++){ lg[i] = lg[i>>1] + 1; // } } void st(){ for(int j = 1;j < lgn;j++) //2^0 { for(int i = 1;i + (1 << j) - 1 <= n;i++){ //i i+(1< - f[i][j] = max(f[i][j-1] , f[i + (1<< j-1)][j-1]); // f[1][1] 1 2 f[1][0] 1 f[1+1][0] 1 } } } int Q(int l,int r){ int len=lg[r-l+1]; return max(f[l][len],f[r-(1<<len)+1][len]);//2-6 len=2 2-5 3-6 } int main(){ IO; init(); cin>>n>>q; for(int i=1;i<=n;i++){ cin>>f[i][0]; } st(); while(q--){ int l,r; cin>>l>>r; cout<<Q(l,r)<<endl; } return 0; }

좋은 웹페이지 즐겨찾기