标签:std 10 const int ST 算法 include 模板
#include <iostream> #include <cstdio> #include <cmath> using namespace std; const int N = 1e5 + 10; int n, m; int a[N]; int f[N][20]; int mp[N]; void ST_prework() { for(int i = 1; i <= n; i++) f[i][0] = a[i]; int t = log(n) / log(2); for(int j = 1; j <= t; j++) for(int i = 1; i <= n - (1 << j) + 1; i++) f[i][j] = max(f[i][j - 1], f[i + (1 << j - 1)][j - 1]); } int ST_query(int l, int r) { int k = mp[r - l + 1]; return max(f[l][k], f[r - (1 << k) + 1][k]); } int main() { cin >> n >> m; for(int i = 1; i <= n; i++) scanf("%d", &a[i]); for(int i = 0; i <= n; i++) mp[i] = log(i) / log(2); ST_prework(); for(int i = 1; i <= m; i++) { int l, r; scanf("%d%d" ,&l, &r); printf("%d\n", ST_query(l, r)); } return 0; }
标签:std,10,const,int,ST,算法,include,模板 来源: https://www.cnblogs.com/9r2pqvv88/p/16438490.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。