目录

  • 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 绝世好题相关推荐

  1. BZOJ4300 绝世好题(动态规划)

    设f[i][j]为前i个数中所选择的最后一个数在第j位上为1时的最长序列长度,转移显然. #include<iostream> #include<cstdio> #includ ...

  2. BZOJ-4300 绝世好(蛋疼)题 DP(递推)

    翻zky学长的blog时翻出来的..... 4300: 绝世好题 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 736 Solved: 393 [Sub ...

  3. 【bzoj4300】绝世好题

    绝世傻题= = 既然要求bi and bi=−1≠0b_{i}\ and\ b _{i=-1}\neq0,那么就让他一定成立咯. 从1到n枚举,当前数为x,前面的数都操作完了,那么 fx=max{gi ...

  4. 【位运算】解题报告:luoguP4310 绝世好题(位运算优化DP)

    题目链接:luoguP4310 绝世好题 这是链接 因为答案只能是由两个在二进制表示下至少有一位同是1的a序列里的数&得到的,最后求子序列的个数 f[i]存的是对于a序列中当前遍历到的数中有几 ...

  5. BZOJ 4300: 绝世好题( dp )

    dp(i)表示二进制的第i位为1时的最大值, 然后从左到右dp -------------------------------------------------------------------- ...

  6. HYSBZ(BZOJ) 4300 绝世好题(位运算,递推)

    HYSBZ(BZOJ) 4300 绝世好题(位运算,递推) Description 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<= ...

  7. bzoj 4300: 绝世好题

    4300: 绝世好题 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 1930  Solved: 1017 [Submit][Status][Discu ...

  8. 【BZOJ4300】—绝世好题(二进制dp)

    传送门 考虑到只需要bi&bi−1≠0b_i\&b_{i-1} =\not0bi​&bi−1​≠​0 由于&\&&,我们考虑二进制下只需要一位不为0 ...

  9. 【BZOJ4300】绝世好题,位运算相关DP

    传送门 思路: 按照每一位来进行DP f[i]f[i]表示最后一个数的第i个二进制为1的最长子序列个数 每次转移时把a[i]a[i]拆成二进制位,然后取数为1的位上f<script type=& ...

最新文章

  1. docker+springboot部署总结
  2. python turtle画椭圆-Python易学就会(五)turtle绘制椭圆与递归
  3. 跌宕起伏之windows 7安装
  4. 数据结构源码笔记(C语言):直接插入排序
  5. C++ Primer 5th笔记(chap 16 模板和泛型编程)可变参数模板
  6. 两篇很牛的vim使用技巧
  7. Windows10安装并使用Unity3D项目AirSim教程(附问题解决方案及相关库下载)
  8. java 之 桥接模式(大话设计模式)
  9. 四面体的表面积_为了解释南北两极海陆的分布,科学家提出了一个“四面体”的观点...
  10. 如何制作一个360度全景
  11. [转载] 希腊字母读音表
  12. js判断数据类型(如数组)及数组操作函数
  13. asp.net中控制反转的理解
  14. 数据结构严蔚敏版课后答案
  15. 三菱FX3U与三菱变频器 modbus RTU通讯案例 采用485方式,modbus RTU协议。 与变频器通讯,控制启停,频率,加减速时间设定,频率
  16. 用spss进行数据的标准化处理_用spss怎样对数据进行标准化
  17. 【单片机】2.9 看门狗定时器(WDT)功能简介
  18. 谈谈谈zookeeper
  19. EXCEL兼容性检查
  20. 图书馆管理系统测试计划说明书

热门文章

  1. 搭建java_搭建JAVA环境
  2. 提权命令_利用Linux文本操作命令ed进行提权
  3. 计算机视觉实验数学形态学,计算机视觉形态学边缘检测.doc
  4. java局部变量简述
  5. java jsp if else if_jsp页面使用if else语句 | 学步园
  6. 命令行cd到_前端(只)需要掌握这些命令行(就还行了)
  7. 在MySQL查询山东省男生信息_MySQL-查询
  8. linux下安装mysql5.7.19,Linux下MySQL5.1升级到高版本MySQL5.7.19详解 | zifangsky的个人博客...
  9. 安全模式 提权_记一次渗透挖洞提权实战
  10. cas4.2.7与shiro进行整合