题面

题目都告诉我们是“金字塔”了,不妨分析分析$f$的性质

$f(a_1,a_2)=f(a_1$ $xor$ $a_2)=a1$ $xor$ $a_2$

$f(a_1,a_2,a_3)=f(a_1$ $xor$ $a_2,a_2$ $xor$ $a_3)=a_1$ $xor$ $a_3=f(a_1,a_2)$ $xor$ $f(a_2,a_3)$

$f(a_1,a_2,a_3,a_4)=f(a_1$ $xor$ $a_2,a_2$ $xor$ $a_3,a_3$ $xor$ $a_4)=f(a_1$ $xor$ $a_3,a_2$ $xor$ $a_4)=a_1$ $xor$ $a_2$ $xor$ $a_3$ $xor$ $a_4=f(a_1,a_2,a_3)$ $xor$ $f(a_2,a_3,a_4)$

......

可以用数(da)学(li)归(da)纳(biao)法证明,$f(a_1,a_2,...,a_n)=f(a_1,a_2,...,a_{n-1})$ $xor$ $f(a_2,a_3,...,a_n)$

然后就是不会DP的蒟蒻都会做的区间(大概不算?)DP辣

设$dp[i][j]$表示$(i,j)$的最优答案,那么有枚举长度$i$和起点$j$,就有$dp[j][j+i-1]=max(max(dp[j+1][j+i-1],dp[j][j+i-2]),f(j,j+i-1))$,水水

 //get~
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=;
int num[N],xorr[N][N],dp[N][N];
int n,m,t1,t2;
int xoring(int l,int r)
{
if(l==r) return num[l];
if(~xorr[l][r]) return xorr[l][r];
return xorr[l][r]=(xoring(l,r-)^xoring(l+,r));
}
int main ()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&num[i]);
scanf("%d",&m);
memset(xorr,-,sizeof xorr);
for(int i=;i<=n;i++)
for(int j=;j<=n-i+;j++)
dp[j][j+i-]=max(max(dp[j+][j+i-],dp[j][j+i-]),xoring(j,j+i-));
for(int i=;i<=m;i++)
scanf("%d%d",&t1,&t2),printf("%d\n",dp[t1][t2]);
return ;
}

解题:CF983B pyramid的更多相关文章

  1. 【LeetCode】756. Pyramid Transition Matrix 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 回溯法 日期 题目地址:https://leetco ...

  2. 【leetcode】756. Pyramid Transition Matrix

    题目如下: We are stacking blocks to form a pyramid. Each block has a color which is a one letter string, ...

  3. 【LeetCode】799. Champagne Tower 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 动态规划 参考资料 日期 题目地址:https:// ...

  4. SCNU ACM 2016新生赛决赛 解题报告

    新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...

  5. SCNU ACM 2016新生赛初赛 解题报告

    新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...

  6. HDU 3791二叉搜索树解题(解题报告)

    1.题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=3791 2.参考解题 http://blog.csdn.net/u013447865/articl ...

  7. 【BZOJ1700】[Usaco2007 Jan]Problem Solving 解题 动态规划

    [BZOJ1700][Usaco2007 Jan]Problem Solving 解题 Description 过去的日子里,农夫John的牛没有任何题目. 可是现在他们有题目,有很多的题目. 精确地 ...

  8. CH Round #56 - 国庆节欢乐赛解题报告

    最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...

  9. wechall.net/stegano 解题心得

    /* 转载请注明出处:http://www.cnblogs.com/Martinium/p/wechall_stegano.html */ 最近迷上了 www.wechall.net 网站,里面都是些 ...

随机推荐

  1. yocto-sumo源码解析(九): ProcessServer.main

    前面讲到BitbakeServer实际上是一个ProcessServer,因此对ProcessServer进行了一个大略的分析集,这里着重再介绍一下ProcessServer.main. 1. 初始化 ...

  2. Linux 文件搜索命令:find、which、whereis 和 locate

    Linux 提供了许多用于文件搜索的命令,这些命令都很强大,但是也有一些不同之处,这里分别介绍一下. 一.find 命令 find 是最常见和最强大的一个文件搜索命令.使用 find 命令可以在指定目 ...

  3. split命令详解

    基础命令学习目录首页 原文链接:https://blog.csdn.net/lkforce/article/details/71547313 Linux中的文件,特别是日志文件,特别大了不好打开,可以 ...

  4. 微信公众号开发笔记1(nodejs开发)

    本篇记录了微信公众号开发的一些笔记 一.微信服务器与我们服务器的交流 微信开发者拥有自己的服务器,在我们服务器上可以与微信服务器进行交流.既然可以交流,那就必定需要前提条件(微信认证),也就是说,只有 ...

  5. 团队项目M1阶段个人反思

    郑培蕾: 作为项目的PM,我前期的工作还是有很大的缺陷的,因为没有在开发之前对项目进行一个合理的评估,所以后来分配任务的时候就很不科学, 而且任务分配的比较粗糙,没有细化到每个人每天应该做什么,这就导 ...

  6. 2017-2018-20172311 暑期编程作业:APP

    2017-2018-20172311 暑期编程作业:实现一个简单倒计时APP 写在前面:暑假的时候就单纯的想要设计一个倒计时软件,然后就通过查阅资料等学了一些,包括实现倒计时功能及显示:背景音乐的添加 ...

  7. 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段

    2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段 最后的一周,时间越来越紧张,因为之前的拖沓和一些事情的耽误,导致了如今的紧张,这一周应该是我们小组效率最高 ...

  8. iOS开发学习-类似微信聊天消息中的电话号码点击保存到通讯录中的功能

    类似微信聊天消息中的电话号码点击保存到通讯录中的功能,ABAddress的实现在iOS9中是不能正常使用的,点击完成后,手机会非常的卡,iOS9之后需要使用Contact新提供的方法来实现该功能.快捷 ...

  9. B3

    吴晓晖(组长) 过去两天完成了哪些任务 一些细节的debug,部分优化,算法中有关记录的部分 展示GitHub当日代码/文档签入记录 接下来的计划 推荐算法 还剩下哪些任务 组员:刘帅珍 过去两天完成 ...

  10. 项目冲刺Beta第一篇博客

    Beta版本冲刺计划安排 1.当天站立式会议照片: 2.工作分工: 团队成员 分工 张洪滨060  排行榜界面美化 陈敬轩059  注册成功界面美化 黄兴067  登录界面美化 林国梽068  答题界 ...