zoukankan      html  css  js  c++  java
  • CF1365E Maximum Subsequence Value(思维)

    题意:

    在给定的序列中选择一个子序列,假设子序列里有k个数,当至少有max(1,k-2)个数在二进制第i位上为1的时候,对答案有2^i贡献。

    题解:

    假设选了k个数,那么根据题面,假设有大于等于k-2个数包含二进制的第i位。

    现在从k个数中任选3个,如果原来有大于等于k-2个数包含二进制的第i位,那么我选择的三个数也至少有一个数包含这一位二进制,所以选择三个数就能达到最优解。

    暴力枚举,时间复杂度O(n^3)。

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1e5+100;
    typedef long long ll;
    ll a[maxn];
    int n;
    int main () {
        scanf("%d",&n);
        for (int i=1;i<=n;i++) scanf("%lld",&a[i]);
        ll Max=0;
        for (int i=1;i<=n;i++)
            for (int j=1;j<=n;j++)
                for (int k=1;k<=n;k++)
                    Max=max(Max,a[i]|a[j]|a[k]);
        printf("%lld
    ",Max);
    }
     
  • 相关阅读:
    numpy通用函数
    机器学习之随机森林
    机器学习之支持向量机
    机器学习之逻辑回归
    机器学习之决策树
    机器学*之K*邻
    机器学习之线性回归
    模型之各个指标
    模型之信息熵
    模型之决策树
  • 原文地址:https://www.cnblogs.com/zhanglichen/p/13092929.html
Copyright © 2011-2022 走看看