• P4310 绝世好题


    这题貌似在某叶姓教练员的网站上做过。。

    好吧实际上正解是位运算的DP,不是很好做,但是!!骗分大法好啊,暴力枚举,每一次至多比当前处理出来的答案多1,如果已经有答案是当前答案+1,break跳出循环,就可以实实在在地卡过100啦

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 #include<queue>
     6 #include<stack>
     7 #include<deque>
     8 #include<algorithm>
     9 #define ll long long
    10 using namespace std;
    11 const int oo=0x3f3f3f3f;
    12 const int N=100005;
    13 
    14 int n,maxn=1;
    15 int a[N],f[N];
    16 
    17 int Min(int a,int b){return a<b?a:b;}
    18 int Max(int a,int b){return a>b?a:b;}
    19 int Abs(int a){return a>0?a:-a;}
    20 
    21 int get(){
    22     char zy=getchar();
    23     int z=1,y=0;
    24     while(zy>'9'||zy<'0'){
    25         if(zy=='-') z=-1;
    26         zy=getchar();
    27     }
    28     while(zy>='0'&&zy<='9'){
    29         y=(y<<1)+(y<<3)+zy-'0';
    30         zy=getchar();
    31     }
    32     return z*y;
    33 }
    34 
    35 int main(){
    36     n=get();
    37     for(int i=1;i<=n;i++){
    38         a[i]=get();
    39         f[i]=1;
    40     }
    41     for(int i=2;i<=n;i++){
    42         for(int j=i-1;j>=1;j--){
    43             if(f[i]>maxn) break;
    44             if(a[i]&a[j]){
    45                 f[i]=Max(f[i],f[j]+1);
    46             }
    47         }
    48         maxn=Max(maxn,f[i]);
    49     }
    50     printf("%d
    ",maxn);
    51     return 0;
    52 }
  • 相关阅读:
    git reset 用法
    print、println、printf的区别
    GoLang(2)
    GoLang
    OpenCV 图像叠加or图像混合加权实现
    openpyxl
    EJB 的理解
    inotify-tool实时监控服务器文件状态变化 学习总结
    使用docker 安装maven私服 nexus
    dockerfile 学习总结
  • 原文地址:https://www.cnblogs.com/hahaha2124652975/p/11644835.html
Copyright © 2020-2023  润新知