Codeforces Round #648 (Div. 2) E. Maximum Subsequence Value 贪心
题意:E、Maximum Subsequence Value
题意:
给你n 个元素,你挑选k个元素,那么这个 k 集合的值为 ∑2i,其中,若集合内至少有 max(1,k−2)个数二进制下第 i 位为 1,则第 i 位有效,求一个集合可以得到的最大值。
题解:
应该是一种贪心
当k==3的时候,那么也就相当于从n个元素中挑选出来三个数进行或操作即可。如果你选择k==4,那么就相当于在k==3的基础上进行与操作,那么这个结果只会小于等于k==3时候的答案。
k==5之后的也是这样
代码:
1 #include<stdio.h>
2 #include<algorithm>
3 #include<iostream>
4 #include<string>
5 #include<queue>
6 #include<deque>
7 #include<string.h>
8 #include<map>
9 #include <iostream>
10 #include <math.h>
11 using namespace std;
12 typedef long long ll;
13 const int maxn=500+10;
14 ll v[maxn];
15 int main()
16 {
17 ll n,result=0;
18 scanf("%I64d",&n);
19 for(ll i=0; i<n; ++i)
20 scanf("%I64d",&v[i]);
21 if(n==1)
22 {
23 ll ans=v[0],ci=1,sum=0;
24 while(ans)
25 {
26 if(ans&1)
27 {
28 sum+=ci;
29 ci*=2;
30 }
31 ans>>=1;
32 }
33 result=max(result,sum);
34 printf("%I64d\n",result);
35 return 0;
36 }
37 else if(n==2)
38 {
39 ll ans=v[0]|v[1],ci=1,sum=0;
40 while(ans)
41 {
42 if(ans&1)
43 {
44 sum+=ci;
45 ci*=2;
46 }
47 ans>>=1;
48 }
49 result=max(result,sum);
50 printf("%I64d\n",result);
51 return 0;
52 }
53
54 for(ll i=0; i<n; ++i)
55 {
56 for(ll j=i+1; j<n; ++j)
57 {
58 for(ll k=j+1; k<n; ++k)
59 {
60 ll ans=v[i]|v[j],ci=1,sum=0;
61 ans=ans|v[k];
62 // while(ans)
63 // {
64 // if(ans&1)
65 // {
66 // sum+=ci;
67 // ci*=2;
68 // }
69 // ans>>=1;
70 // }
71 result=max(result,ans);
72 }
73 }
74 }
75 printf("%I64d\n",result);
76 return 0;
77 }
78 /*
79 10
80 582366931603099761 314858607473442114 530263190370309150 871012489649491233 877068367969362781 671646356752418008 390155369686708364 958695211216189893 919124874293325142 196726357117434998
81
82 */
Codeforces Round #648 (Div. 2) E. Maximum Subsequence Value 贪心的更多相关文章
- Codeforces Round #648 (Div. 2) E. Maximum Subsequence Value(鸽巢原理)
题目链接:https://codeforces.com/problemset/problem/1365/E 题意 有 $n$ 个元素,定义大小为 $k$ 的集合值为 $\sum2^i$,其中,若集合内 ...
- Codeforces Round #297 (Div. 2)C. Ilya and Sticks 贪心
Codeforces Round #297 (Div. 2)C. Ilya and Sticks Time Limit: 2 Sec Memory Limit: 256 MBSubmit: xxx ...
- Codeforces Round #651 (Div. 2) A Maximum GCD、B GCD Compression、C Number Game、D Odd-Even Subsequence
A. Maximum GCD 题意: t组输入,然后输入一个n,让你在区间[1,n]之间找出来两个不相等的数a,b.求出来gcd(a,b)(也就是a,b最大公约数).让你求出来最大的gcd(a,b)是 ...
- Codeforces Round #221 (Div. 1) B. Maximum Submatrix 2 dp排序
B. Maximum Submatrix 2 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset ...
- Codeforces Round #276 (Div. 1) B. Maximum Value 筛倍数
B. Maximum Value Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/484/prob ...
- Codeforces Round #508 (Div. 2) E. Maximum Matching(欧拉路径)
E. Maximum Matching 题目链接:https://codeforces.com/contest/1038/problem/E 题意: 给出n个项链,每条项链左边和右边都有一种颜色(范 ...
- Codeforces Round #479 (Div. 3) F. Consecutive Subsequence (简单dp)
题目:https://codeforces.com/problemset/problem/977/F 题意:一个序列,求最长单调递增子序列,但是有一个要求是中间差值都是1 思路:dp,O(n)复杂度, ...
- Codeforces Round #555 (Div. 3) C2. Increasing Subsequence (hard version)【模拟】
一 题面 C2. Increasing Subsequence (hard version) 二 分析 需要思考清楚再写的一个题目,不能一看题目就上手,容易写错. 分以下几种情况: 1 左右两端数都小 ...
- Codeforces Round #172 (Div. 2) D. Maximum Xor Secondary 单调栈应用
http://codeforces.com/contest/281/problem/D 要求找出一个区间,使得区间内第一大的数和第二大的数异或值最大. 首先维护一个单调递减的栈,对于每个新元素a[i] ...
随机推荐
- 一文搞懂MySQL前缀索引
引入 通常在开发中我们需要定义字符串类型的字段,例如用户名或者用户邮箱等. 假设我们在维护一个用户登录系统,用户表的定义: create table User( ID bigint unsigned ...
- Jmeter(三十五) - 从入门到精通进阶篇 - 关联(详解教程)
1.简介 上一篇中介绍了如果想要同时发送多条请求,那么怎样才能让每条数据某些请求参数改变呢.这就用到了jMeter参数化.在实际测试场景中,我们往往还有这样的需求,登录后服务器响应的token作为下次 ...
- 十七:SQL注入之二次加解密,DNS注入
加解密,二次,DNSlog注入 注入原理,演示案例,实际应用. less-21关,base64进行解密 encode加密decode解密 cookie处注入 判断加密算法,然后进行注入 less-24 ...
- 【ASM】从asm中复制文件到本地,或者从本地到asm中方法
工作中,有时需要把文件从ASM中复制到文件系统中或者反过来,做一些维护操作,本文介绍了4种复制文件的的方法: ASMCMD中的cp命令(11g) dbms_file_transfer包 rman的co ...
- linux系统中set、env、export关系
set 用来显示shell变量(包括环境变量.用户变量和函数名及其定义),同时可以设置shell选项来开启调试.变量扩展.路径扩展等开关env 用来显示和设置环境变量export 用来显示和设置导出到 ...
- VL02N发货过账BAPI
使用BAPI函数: BAPI_OUTB_DELIVERY_CONFIRM_DEC 进行delivery的发货过账,可能会有如此的需求,就是修改实际的发货日期.规划的GI.交货日期.装载日期.传输计划日 ...
- SAP下载文档为乱码
通过事物WE60下载的文档为乱码,主要原因是编码格式的不匹配,通常默认的编码格式为ANSI编码,那么我们需要将源码的编码格式转换成UTF-8,这样问题可以解决了. 附:编码格式介绍 不同的国家和地 ...
- Sentry(v20.12.1) K8S 云原生架构探索,JavaScript 性能监控之管理 Transactions
系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...
- matlab图像处理程序大集合
1.图像反转 MATLAB程序实现如下:I=imread('xian.bmp');J=double(I);J=-J+(256-1); %图像反转线性变换H=uint8( ...
- windows上传ipa到苹果开发者中(app store)的方法
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开发者中心才能在构建版本里选择构建版本上架 ...