牛客小白月赛9: F. 暴力出奇迹(思维题)
链接:https://ac.nowcoder.com/acm/contest/275/F
来源:牛客网
题目描述
给定一个序列,寻找一对l,r,满足1 ≤ l ≤ r ≤ n
最大化的值
其中表示将al,al+1, ... , ar按位与后的结果
输入描述:
第一行一个整数n,表示数列长度. 第二行有n个整数,表示这个数列的初始数值.
输出描述:
一行一个整数表示答案.
输入
10 7 9 9 4 0 0 8 8 4 7
输出
162
设dp[x][i] = 最小的p满足a[p+1]&a[p+2]&…&a[x]的第i位为一
那么暴力每个数字a[x],按照dp[x][i]的大小排序贪心求当前最大值就行了
看代码很好懂
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<string>
#include<math.h>
#include<queue>
#include<stack>
#include<iostream>
using namespace std;
#define LL long long
#define mod 1000000007
LL sum[100005];
int a[100005], dp[100005][22];
typedef struct Res
{int val, l;bool operator < (const Res &b) const{if(l<b.l)return 1;return 0;}
}Res;
Res s[22];
int main(void)
{LL ans, now;int n, i, j;scanf("%d", &n);for(i=1;i<=n;i++){scanf("%d", &a[i]);sum[i] = sum[i-1]+a[i];}for(i=1;i<=n;i++){for(j=0;j<=20;j++){dp[i][j] = 0;if(a[i]&(1<<j))dp[i][j] = dp[i-1][j]+1;}}ans = 0;for(i=1;i<=n;i++){for(j=0;j<=20;j++){s[j].val = (1<<j);s[j].l = i-dp[i][j];}now = 0;sort(s, s+21);for(j=0;j<=20;j++){now ^= s[j].val;ans = max(ans, now*(sum[i]-sum[s[j].l]));}}printf("%lld\n", ans);return 0;
}
牛客小白月赛9: F. 暴力出奇迹(思维题)相关推荐
- 牛客小白月赛9 论如何出一道水题
链接:https://ac.nowcoder.com/acm/problem/19425 来源:牛客网 题目描述 给定 n,求一对整数 (i,j),在满足 1 ≤ i ≤ j ≤ n 且 gcd(i, ...
- 牛客小白月赛2 F.黑黑白白
牛客小白月赛2 F.黑黑白白 题目链接 题目描述 艮为山,动静得宜,适可而止:兑为泽,刚内柔外,上下相和. 艮卦:兼山,艮:君子以思不出其位.财帛常打心头走,可惜眼前难到手,不如意时且忍耐,逢着闲事休 ...
- 牛客小白月赛61 F.选座椅(双指针)
牛客小白月赛61 F.选座椅(双指针) 显然 ( l , r ) (l,r) (l,r)满足 ( l , r + 1 ) (l,r+1) (l,r+1)满足. 那么可以考虑双指针,枚举 l l l,然 ...
- 牛客小白月赛12 F 华华开始学信息学 (分块+树状数组)
链接:https://ac.nowcoder.com/acm/contest/392/F 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 牛客小白月赛17 F小黄鸭(计算几何+积分+二分)
链接:https://ac.nowcoder.com/acm/contest/1085/F 来源:牛客网 题目描述 小sun的寝室有一只小黄鸭,小黄鸭浮在水面上的样子特别可爱,现在小sun有一个问题: ...
- 牛客小白月赛17 F小黄鸭(计算几何+积分+二分)
题目链接:https://ac.nowcoder.com/acm/contest/1085/F 题解: 根据,,可得① 球的正视图是个圆心为(0,r),半径为r的圆,方程为② 侵入水中的体积: 体积公 ...
- 牛客小白月赛58 B(暴力)C(思维)D(dp滚动数组优化)
牛客小白月赛58 感觉没什么意思,这场月赛出题人有点问题. B 题意:给定一定的数据填充顺序和每一个填充层的名称,只有填充满了上一层才可以填充下一层. 但是每一层又属于某一个大层,一个大层中包含了若干 ...
- 牛客小白月赛28 E-会当凌绝顶,一览众山小 线段树+二分暴力模拟
牛客小白月赛28 E-会当凌绝顶,一览众山小 线段树+二分暴力模拟 题意 思路 Code 传送门: https://ac.nowcoder.com/acm/contest/16081/E 题意 登山顺 ...
- F.孤独(牛客小白月赛39)
F.孤独(牛客小白月赛39) 题意: 给定一棵树,寻找一个路径,将断掉所有与这个路径上的点相连的边,使得剩下的最大连通块的大小最小 题解: 这题有点印象,感觉做过,至少这个方法肯定遇到过 设dp[u] ...
最新文章
- 字典-变量的定义以及应用场景
- 0459-Repeated Substring Pattern(重复的子字符串)
- java注解中可使用对象_Java注解(二):实战 - 直接使用对象列表生成报表...
- Angularjs进阶笔记(1)—不同类型的双向数据绑定
- PostgreSQL13逻辑备份pg_dump
- linux 报错 bash ‘/bin/sh: Syntax error: “(” unexpected
- 1106冒泡排序语法树
- linux popen阻塞_linux popen()与system()的区别
- 放眼世界,一个人重整WP的整套代码,唯吾一人
- vue-router 修改或添加新参数
- Access数据库的模糊查询
- 计算机图形学-第一八分象限的DDA算法
- python手写数字识别实验报告_ANN MNIST手写数字识别总结
- 【论文阅读】深度学习与多种机器学习方法在不同的药物发现数据集进行对比
- 世界各国首都经纬度-json
- RabbitMq:java.lang.NoClassDefFoundError: org/springframework/util/backoff/BackOff
- java小组的队名,霸气小组名称口号大全
- PGP 对于JSON的加解密
- 金海佳学C++primer 练习9.4/9.5
- Wannfly挑战赛20 A 染色
热门文章
- python画50个图-Matplotlib如何绘制多个子图
- python快速入门教程-Python 开发 14 天快速入门
- 开课吧学python靠谱吗-开课吧9.9元学Python课程适合哪些人?开课吧靠谱吗?
- python是什么 自学-自学python用什么系统好
- python3 x默认使用的编码_Python3编码问题(Python2请忽略)
- 高职考计算机基础知识,高职计算机基础及应用教程
- 计算机网络实验5以太网链路帧实验,计算机网络实验-使用Wireshark分析以太网帧与ARP协议.docx...
- 手机能上wifi电脑不行_电脑如何当Wifi供手机使用
- python加载csv文件去重_用python读写和处理csv文件
- python os模块手册_Python OS模块常用函数说明