zoukankan      html  css  js  c++  java
  • bitset

     1 #include<cstdio>
     2 #include<algorithm>
     3 #include<bitset>
     4 #include<iostream>
     5 using std::cin;
     6 using std::cout;
     7 using std::endl;
     8 using std::bitset; 
     9 const int maxn = 1e6;
    10 bitset<100000> bt[2]; 
    11 int a[maxn];
    12 int n;
    13 int main(){
    14     cin >> n;
    15     int m = 0;
    16     for(int i = 1 ; i <= n ; i ++) {
    17         cin >> a[i];
    18         m += a[i];
    19     }
    20     for(int i = 1 ; i <= n ; i ++) {
    21         bt[0] = bt[1] | (bt[1] << a[i]);
    22         bt[1] = bt[0];
    23         bt[1][a[i]] = 1;
    24     }
    25     for(int i = 1 ; i <= m ; i ++) {
    26         if(bt[1][i]) cout<<"exist : "<<i<<endl;
    27     }
    28     return 0;
    29 }

    子矩阵值最大

    枚举竖行上下界,横行记录最大值和次大值

    二分答案:枚举值,大于的为一,小于为0

                     找全是1的矩阵O(n^3)->bitset:数1的个数

    logn*(n^2+(n^3)/32)  

  • 相关阅读:
    java 学习帮助
    权限
    ftp mybatis
    注解
    hadoop english
    userDao
    发布订阅模式 和委托
    webservice
    rabbitMq视频教程
    blog url.txt
  • 原文地址:https://www.cnblogs.com/lcan/p/9555012.html
Copyright © 2011-2022 走看看