BZOJ4300 绝世好题
目录
- BZOJ4300 绝世好题
- 题解
- code
BZOJ4300 绝世好题
题目传送门
题解
比较简单的\(DP\),记\(f[i]\)表示第\(i\)位为1,最长的长度为多少。只需要枚举每一个数字,对于这个数字二进制下为1的那一位进行更新就行了。
code
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
bool Finish_read;
template<class T>inline void read(T &x){Finish_read=0;x=0;int f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;if(ch==EOF)return;ch=getchar();}while(isdigit(ch))x=x*10+ch-'0',ch=getchar();x*=f;Finish_read=1;}
template<class T>inline void print(T x){if(x/10!=0)print(x/10);putchar(x%10+'0');}
template<class T>inline void writeln(T x){if(x<0)putchar('-');x=abs(x);print(x);putchar('\n');}
template<class T>inline void write(T x){if(x<0)putchar('-');x=abs(x);print(x);}
/*================Header Template==============*/
const int maxn=1e5+500;
int n;
int a[maxn];
int f[40];
/*==================Define Area================*/
int main() {read(n);for(int i=1;i<=n;i++) {read(a[i]);}for(int i=1;i<=n;i++) {int p=a[i];int len=0;for(int j=0;j<=30;j++) {if(p&(1<<j)) len=max(len,f[j]+1);}for(int j=0;j<=30;j++) {if(p&(1<<j)) f[j]=len;}}int ans=0;for(int i=0;i<40;i++) {ans=max(ans,f[i]);}printf("%d\n",ans);return 0;
}
转载于:https://www.cnblogs.com/Apocrypha/p/9431657.html
BZOJ4300 绝世好题相关推荐
- BZOJ4300 绝世好题(动态规划)
设f[i][j]为前i个数中所选择的最后一个数在第j位上为1时的最长序列长度,转移显然. #include<iostream> #include<cstdio> #includ ...
- BZOJ-4300 绝世好(蛋疼)题 DP(递推)
翻zky学长的blog时翻出来的..... 4300: 绝世好题 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 736 Solved: 393 [Sub ...
- 【bzoj4300】绝世好题
绝世傻题= = 既然要求bi and bi=−1≠0b_{i}\ and\ b _{i=-1}\neq0,那么就让他一定成立咯. 从1到n枚举,当前数为x,前面的数都操作完了,那么 fx=max{gi ...
- 【位运算】解题报告:luoguP4310 绝世好题(位运算优化DP)
题目链接:luoguP4310 绝世好题 这是链接 因为答案只能是由两个在二进制表示下至少有一位同是1的a序列里的数&得到的,最后求子序列的个数 f[i]存的是对于a序列中当前遍历到的数中有几 ...
- BZOJ 4300: 绝世好题( dp )
dp(i)表示二进制的第i位为1时的最大值, 然后从左到右dp -------------------------------------------------------------------- ...
- HYSBZ(BZOJ) 4300 绝世好题(位运算,递推)
HYSBZ(BZOJ) 4300 绝世好题(位运算,递推) Description 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<= ...
- bzoj 4300: 绝世好题
4300: 绝世好题 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 1930 Solved: 1017 [Submit][Status][Discu ...
- 【BZOJ4300】—绝世好题(二进制dp)
传送门 考虑到只需要bi&bi−1≠0b_i\&b_{i-1} =\not0bi&bi−1≠0 由于&\&&,我们考虑二进制下只需要一位不为0 ...
- 【BZOJ4300】绝世好题,位运算相关DP
传送门 思路: 按照每一位来进行DP f[i]f[i]表示最后一个数的第i个二进制为1的最长子序列个数 每次转移时把a[i]a[i]拆成二进制位,然后取数为1的位上f<script type=& ...
最新文章
- docker+springboot部署总结
- python turtle画椭圆-Python易学就会(五)turtle绘制椭圆与递归
- 跌宕起伏之windows 7安装
- 数据结构源码笔记(C语言):直接插入排序
- C++ Primer 5th笔记(chap 16 模板和泛型编程)可变参数模板
- 两篇很牛的vim使用技巧
- Windows10安装并使用Unity3D项目AirSim教程(附问题解决方案及相关库下载)
- java 之 桥接模式(大话设计模式)
- 四面体的表面积_为了解释南北两极海陆的分布,科学家提出了一个“四面体”的观点...
- 如何制作一个360度全景
- [转载] 希腊字母读音表
- js判断数据类型(如数组)及数组操作函数
- asp.net中控制反转的理解
- 数据结构严蔚敏版课后答案
- 三菱FX3U与三菱变频器 modbus RTU通讯案例 采用485方式,modbus RTU协议。 与变频器通讯,控制启停,频率,加减速时间设定,频率
- 用spss进行数据的标准化处理_用spss怎样对数据进行标准化
- 【单片机】2.9 看门狗定时器(WDT)功能简介
- 谈谈谈zookeeper
- EXCEL兼容性检查
- 图书馆管理系统测试计划说明书
热门文章
- 搭建java_搭建JAVA环境
- 提权命令_利用Linux文本操作命令ed进行提权
- 计算机视觉实验数学形态学,计算机视觉形态学边缘检测.doc
- java局部变量简述
- java jsp if else if_jsp页面使用if else语句 | 学步园
- 命令行cd到_前端(只)需要掌握这些命令行(就还行了)
- 在MySQL查询山东省男生信息_MySQL-查询
- linux下安装mysql5.7.19,Linux下MySQL5.1升级到高版本MySQL5.7.19详解 | zifangsky的个人博客...
- 安全模式 提权_记一次渗透挖洞提权实战
- cas4.2.7与shiro进行整合