D. XOR-pyramid Codeforces Round #483 (Div. 2) dp

题目链接:D. XOR-pyramid

题解:dp[i][j]表示以j开始长度为i的串的f()值,转移方程就很简单了dp[i][j]=(dp[i-1][j]^dp[i-1][j+1]);

然后求的是字段的最大值,用an数组维护dp的最大值就可以了。

#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
using namespace std;
const int maxn=5e3+5;
const int mod=1e6+3;
int dp[maxn][maxn],n,q,an[maxn][maxn];
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>dp[1][i];
        an[1][i]=dp[1][i];
    }
    for(int i=2;i<=n;i++)
    {
        for(int j=1;j<=n-i+1;j++)
        {
            dp[i][j]=(dp[i-1][j]^dp[i-1][j+1]);
            an[i][j]=max(an[i-1][j],an[i-1][j+1]);
            an[i][j]=max(an[i][j],dp[i][j]);
        }
    }
    cin>>q;
    while(q--)
    {
        int l,r;;
        cin>>l>>r;
        cout<<an[r-l+1][l]<<endl;
    }
    return 0;
}

原文地址:https://www.cnblogs.com/lhclqslove/p/9107426.html

时间: 2024-11-14 15:12:17

D. XOR-pyramid Codeforces Round #483 (Div. 2) dp的相关文章

Codeforces Round #483 (Div. 1) 简要题解

来自FallDream的博客,未经允许,请勿转载,谢谢. 为了证明一下我又来更新了,写一篇简要的题解吧. 这场比赛好像有点神奇,E题莫名是道原题,导致有很多选手直接过掉了(Claris 表演24s过题).然而D题比E题要难一些,分还少. A. Finite or not? 先把\(\frac{p}{q}\)约成最简分数,然后就是要判断是否\(q\)的所有质因数都是\(b\)的质因数. 每次取\(g=gcd(b,q)\),并尽可能的让\(q\)除\(g\),最后判断\(q\)是否是1即可. 还有一

【数论】Codeforces Round #483 (Div. 2) [Thanks, Botan Investments and Victor Shaburov!] C. Finite or not?

题意:给你一个分数,问你在b进制下能否化成有限小数. 条件:p/q假如已是既约分数,那么如果q的质因数分解集合是b的子集,就可以化成有限小数,否则不能. 参见代码:反复从q中除去b和q的公因子部分,并缩小该公因子,继续尝试.直到q没有和b的公共因子为止,如果q变成了1,那么有限,否则无限. #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; int T; ll q,p,b;

Codeforces Round #483 (Div. 2) C.Finite or not? 关于欧几里得的应用

C. Finite or not? Input The first line contains a single integer nn (1≤n≤10^5 ) - the number of queries. Next nn lines contain queries, one per line. Each line contains three integers p, q and b (0≤p≤10^18, 1≤q≤10^18 , 2≤b≤10^18). All numbers are giv

C. Finite or not? Codeforces Round #483 (Div. 2)

题目链接:C. Finite or not? 题意:问一p/q能在b进制下 有限表示吗? 题解:一个分数能在b进制下有限表示必须分母的质因子也是b的质因子.例如一个分数在10进制下有限小数表示的话分母质因子只有2,5: 1 #include<bits/stdc++.h> 2 #define ll long long 3 #define ull unsigned long long 4 using namespace std; 5 const int maxn=1e2+10; 6 const i

Codeforces Round #544 (Div. 3) dp + 双指针

https://codeforces.com/contest/1133/problem/E 题意 给你n个数(n<=5000),你需要对其挑选并进行分组,总组数不能超过k(k<=5000),每组数字差距不超过5,问最多能挑出多少数字 题解 先排序,在进行dp,定义dp[i][j]为前i个数分成j组的最大值 两个转移方向 不选 dp[i-1][j] -> dp[i][j] 和前面的分组 dp[lt[i]-1][j-1] -> dp[i][j] 怎么确定i前面的哪个点是最大的? 选择能

Codeforces Round #354 (Div. 2) ABCD

Codeforces Round #354 (Div. 2) Problems # Name     A Nicholas and Permutation standard input/output 1 s, 256 MB    x3384 B Pyramid of Glasses standard input/output 1 s, 256 MB    x1462 C Vasya and String standard input/output 1 s, 256 MB    x1393 D T

Codeforces Round #177 (Div. 2) 题解

[前言]咦?现在怎么流行打CF了?于是当一帮大爷在执着的打div 1的时候,我偷偷的在刷div 2.至于怎么决定场次嘛,一般我报一个数字A,随便再拉一个人选一个数字B.然后开始做第A^B场.如果觉得机密性不高,来点取模吧.然后今天做的这场少有的AK了.(其实模拟赛只做完了4题,最后1题来不及打了) 等等,话说前面几题不用写题解了?算了,让我难得风光一下啦. [A] A. Polo the Penguin and Segments time limit per test 2 seconds mem

线段树 Codeforces Round #197 (Div. 2) D. Xenia and Bit Operations

题目传送门 1 /* 2 线段树的单点更新:有一个交叉更新,若rank=1,or:rank=0,xor 3 详细解释:http://www.xuebuyuan.com/1154895.html 4 */ 5 #include <cstdio> 6 #include <iostream> 7 #include <algorithm> 8 #include <cstring> 9 #include <string> 10 #include <c

Codeforces Round #428 (Div. 2)

Codeforces Round #428 (Div. 2) A    看懂题目意思就知道做了 #include<bits/stdc++.h> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") #define rep(i,a,b) for (int i=a; i<=b; ++i) #define per(i,b,a) for (int i=b; i>=a; --i