当前位置: 首页 > article >正文

2024牛客寒假算法基础集训营1——H


 

输入

3
4 11
1 8
1 4
1 5
1 1
4 11
5 8
1 4
1 5
1 1
4 0
2 0
0 0
3 0
4 1

输出

3
6
5

思路:

考虑二进制,有点像数位dp

本题考虑集合划分,累加最大值即可

代码如下:

#include<bits/stdc++.h>
using namespace std;

void solve()
{
	int n, m; cin >> n >> m;
	vector<int>v(n), w(n);
	for(int i = 0; i < n; i ++){
		cin >> v[i] >> w[i];
	}
	int ans = 0, pre = 0;
	for(int i = 31; i >= 0; i --){
		int x = pre;//置为前缀
		if((m >> i) & 1){
			x += (1 << i) - 1;//不选这一位是1,贪心出最大情况
			pre += (1 << i);//更新前缀
		}

		int sum = 0;
		for(int j = 0; j < n; j ++){
			if((x | w[j]) == x){
				sum += v[j];
			}
		}
		ans = max(ans, sum);
	}

    //补上x==m这种情况
	int sum = 0;
	for(int j = 0; j < n; j ++){
		if((m | w[j]) == m){
			sum += v[j];
		}
	}
	
	ans = max(ans, sum);

	cout << ans << endl;
}

signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t;
	//t = 1;
	cin >> t;
	while(t--)
	solve();
}

http://www.kler.cn/news/233545.html

相关文章:

  • 算法竞赛进阶指南——搜索
  • 鸿蒙学习-app.json5配置文件
  • EMNLP 2023精选:Text-to-SQL任务的前沿进展(下篇)——Findings论文解读
  • Blazor Wasm Gitee 码云登录
  • EMC学习笔记(二十三)降低EMI的PCB设计指南(三)
  • 四、机器学习基础概念介绍
  • 一文彻底搞懂Kafka如何保证消息不丢失
  • Arthas使用教程—— 阿里开源线上监控诊断产品
  • 数据结构-并查集
  • 力扣231. 2 的幂(数学,二分查找,位运算)
  • H5/CSS 笔试面试考题(61-70)
  • TCP 传输控制协议——详细
  • Java强训day16(选择题编程题)
  • 【项目问题解决】java. net.SocketException: Connection reset
  • python命令行参数Argparse
  • Django(十)
  • rtt设备io框架面向对象学习-框架
  • 探索C语言的内存魔法:动态内存管理解析
  • 6 scala-面向对象编程基础
  • [word] word2019段落中创建纵横混排的方法图解教程 #知识分享#其他#职场发展
  • google scholar引用出现问题
  • 上位机图像处理和嵌入式模块部署(利用python开发软件)
  • PYTHON 120道题目详解(73-75)
  • MySQL数据库语句总结
  • jvm问题自查思路
  • 【开源】SpringBoot框架开发超市账单管理系统 JAVA+Vue+SpringBoot+MySQL
  • ideaIU-2023.2.1安装教程
  • 【ROS机器人系统】实验 2 熟悉和使用 URDF 创建机器人模型
  • 分享76个表单按钮JS特效,总有一款适合您
  • 07 A B 从计数器到可控线性序列机