NC219166. 小Q与彼岸花
描述
输入描述
第一行两个整数 。第二行 个整数,分别表示 。接下来 行,每行两个整数分别表示一个问题所给出的区间 。
输出描述
输出 行,表示每个问题的答案。
示例1
输入:
10 10 1 2 3 4 5 6 7 8 9 10 1 2 1 3 1 5 2 6 2 8 2 10 3 7 8 10 6 9 1 7
输出:
3 3 7 7 15 15 7 3 15 7
C++ 解法, 执行用时: 180ms, 内存消耗: 67520K, 提交时间: 2021-09-12 11:37:16
#include<bits/stdc++.h> using namespace std; int dp[5010][5010],a[5010],n,m,l,r; int main() { cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int len=1;len<=n;len++){ for(int s=1;s+len-1<=n;s++){ int t=s+len-1; dp[s][t]=max(a[s]^a[t],max(dp[s+1][t],dp[s][t-1])); } } while(m--){ cin>>l>>r; cout<<dp[l][r]<<"\n"; } return 0; }