CF 983B 序列函数
CF 983B 序列函数
一道本校神仙wucstdio出的毒瘤签到题。
题意:
给你一段序列,求出它们的最大异或和。
解法:
其实这道题并不很难,但读题上可能会有困难。
其实样例我是用Python 3才看懂的。。。emmm
递归思想,令dp[0][i] = a[i],令dp[i][j] 为 第i层递归的第j个连续(i+1)个数的 f() 值,则再将dp[i][j] 更新为 dp[i][j], dp[i-1][j] 、dp[i-1][j-1] 的最大值。则查找 l~r 的最大值时,只需要输出 dp[r-l][l-1] 即可。
CODE :
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 5100;
int m,n,a[N];
int xor_sum[N][N];
void work_first() {
for(int i = 2 ; i <= n ; i++) {
for(int j = i ; j <= n ; j++) {
xor_sum[i][j] = xor_sum[i - 1][j - 1] ^ xor_sum[i - 1][j];
}
}
for(int i = 1 ; i <= n ; i++) {
for(int j = i ; j <= n ; j++) {
int xor_num = max(xor_sum[i - 1][j - 1] , xor_sum[i - 1][j]);
xor_sum[i][j] = max(xor_sum[i][j] , xor_num);
}
}
}
void check_them() {
scanf("%d",&m);
for(int i = 1 ; i <= m ; i++) {
int l,r;
scanf("%d%d",&l,&r);
int ans = xor_sum[r - l + 1][r];
printf("%d\n",ans);
}
}
int main() {
freopen("function.in","r",stdin);
freopen("function.out","w",stdout);
scanf("%d",&n);
for(int i = 1 ; i <= n ; i++) {
scanf("%d",&a[i]);
xor_sum[1][i] = a[i];
}
work_first();//预处理
check_them();//查询
return 0;
}
CF 983B 序列函数的更多相关文章
- CF 983B XOR-pyramid(区间dp,异或)
CF 983B XOR-pyramid(区间dp,异或) 若有一个长度为m的数组b,定义函数f为: \(f(b) = \begin{cases} b[1] & \quad \text{if } ...
- Python序列函数、高级特性及高阶函数
序列函数: enumerate: for循环时记录索引,逐个返回元组(i, item) sorted:返回新的有序列表 zip:压缩将多个序列的对应位置的元素组成元组 zip(*元组列表): 解压缩 ...
- MYSQL 自定义序列函数
代码如下: DROP TABLE SEQNUM; -- 创建序列表 CREATE TABLE SEQNUM( ID BIGINT ); -- 插入初识值 insert INTO SEQNUM valu ...
- r语言之生成规则序列,规则序列函数及用法
在生成序列时,“:”的优先级最高 (1)从1到20的整数序列: > 1:20 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 (2) ...
- python序列函数
zip:序列并行处理 >>> name=['ghostwu','wukong','bajie'] >>> age=['] >>> sex=['ma ...
- 个人永久性免费-Excel催化剂功能第36波-新增序列函数用于生成规律性的循环重复或间隔序列
啃过Excel函数的表哥表姐们,一定对函数的嵌套.数组公式等高级的应用有很深的体会,威力是大,但也烧死不少脑细胞,不少人就在这样的绕函数中光荣地牺牲了,走向从入门到放弃.Excel催化剂的创立,初衷就 ...
- c++合并两个序列函数merge()和inplace_merge()
大家在写归并排序时是不是觉得合并两个序列有点麻烦,有快速的方法吗? 我们全部函数自己写,比如: #include<bits/stdc++.h> using namespace std; # ...
- HIVE常用函数(1)聚合函数和序列函数
SUM--sum(汇总字段) over (partition by 分组字段 order by 排序字段) 如果不指定ROWS BETWEEN,默认为从起点到当前行;如果不指定ORDER BY,则将分 ...
- [题解]BZOJ1004 序列函数
原题找不到了,应该是usaco之类的题目吧.给一个可以交题的链接:http://www.cqoi.net:2012/problem.php?id=1004 思路:将素数一个一个往里乘,保证扫描的顺序是 ...
随机推荐
- mysql source导入多个sql文件
mysql>use dbtest; mysql>set names utf8; mysql>source D:/mysql/all.sql; 通过source命令导入多个文件,可以新 ...
- PDF文档小技巧整理一览
1.福昕阅读器文档背景修改为保护眼睛的颜色? 1)文件 -> 偏好设置 -> 访问 -> 勾选 "改变文档颜色" 2)选择 '自定义颜色'->'页面背景颜色 ...
- 得到不知道维度的string数组的维度
在项目中常用到一类数组,那就是不知道个数的数组,例如: string ParamTable[] = {"frequency","ifbw","span ...
- 字符串化#、拼接字符##和可变参数宏(...和_ _VA_ARGS_ _)
宏定义的使用与注意事项 ##是一个连接符号,用于把参数连在一起 #是“字符串化”的意思.出现在宏定义中的#是把跟在后面的参数转换成一个字符串#define paster( n ) printf( &q ...
- CSS之float样式
一.简介 Css样式的float浮动属性,用于设置标签对象(如:<div>标签盒子.<span>标签.<a>标签.<em>标签等html标签)的浮动布局 ...
- GeoDa计算全局Moran‘I
GeoDa计算全局Moran‘I 1.导入包含数据的.shp文件 2.创建权重矩阵,点击Weight Manger,再点击Create, weights file ID variable(其中包含的数 ...
- 「Vue」实用组件
一.时间格式 1.安装Moment模块 npm i moment -S2.main.js中设置全局过滤器 import moment from 'moment' Vue.filter('ctime', ...
- OpenResty 扩展库之(一)——lua-resty-shell 库
介绍 当您需要执行子进程(或shell命令)时,这是一个打算与OpenResty应用程序一起使用的小型库. 它类似于os.execute和io.popen,除了它是完全非阻塞的,因此即使对于需要很长时 ...
- CloseableHttpClient与 CloseableHttpResponse应用
最近在使用Apache的httpclient的时候,maven引用了最新版本4.3,发现Idea提示DefaultHttpClient等常用的类已经不推荐使用了,之前在使用4.2.3版本的时候,还没有 ...
- 你知道吗?什么是 Responsive JavaScript ?
Responsive Javascript 是什么? 简单来说就是可以根据浏览器的状态做出响应.响应包括对视窗大小的反应,根据你设备是否支持触摸事件或地理定位功能来决定是否显示特定内容,不一而足. 什 ...