NC112798(XOR-pyramid )

感受


思路










#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const int maxn = 5e3 + 10;
ll f[maxn][maxn];
ll dp[maxn][maxn];
ll a[maxn];
int n;
int main(){
    scanf("%d", &n);
    for(int i = 1; i <= n; i++){
        scanf("%lld", &a[i]);
        dp[i][i] = f[i][i] = a[i];
    }
    for(int len = 2; len <= n; len++){
        for(int l = 1, r;; l++){
            r = l+ len - 1; if(r > n) break;
            dp[l][r] = f[l][r] = f[l][r - 1] ^ f[l + 1][r];
            dp[l][r] = max(dp[l][r], dp[l][r - 1]);
            dp[l][r] = max(dp[l][r], dp[l + 1][r]);
        }
    }
    int q, l, r;
    scanf("%d", &q);
    while(q--){
        scanf("%d%d", &l, &r);
        printf("%lld\n", dp[l][r]);
    }
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
分享
神哥了不得:(非引流)先把你的个人信息打码一下吧,看了几万份的简历,让我不知道该怎么说
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务