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

题解:洛谷 P6824 「EZEC-4」可乐

【题目来源】

洛谷:P6824 「EZEC-4」可乐 - 洛谷

【题目描述】

pigstd 现在有 \(n\) 箱可乐,第 \(i\) 箱可乐上标着一个正整数 \(a_i\)

若 pigstd 的聪明值为一个非负整数 \(x\),对于第 \(i\) 箱可乐,如果 \((a_i\oplus x)≤k\),那么 pigstd 就能喝到这箱可乐。

现在 pigstd 告诉了你 \(k\) 与序列 \(a\),你可以决定 pigstd 的聪明值 \(x\),使得他能喝到的可乐的箱数最大。求出这个最大值。

【输入】

第一行两个由空格分隔开的整数 \(n,k\)

接下来 \(n\) 行,每行一个整数 \(a_i\),表示第 \(i\) 箱可乐上标的数。

【输出】

一行一个正整数,表示 pigstd 最多能喝到的可乐的箱数。

【输入样例】

3 5
2
3
4

【输出样例】

3

【解题思路】

image

【算法标签】

《洛谷 P6824 可乐》 #贪心# #字典树,Trie# #差分#

【代码详解】

#include <bits/stdc++.h>
using namespace std;// 全局变量声明
int trie[2000005][3];  // 字典树数组,[0]和[1]表示二进制位,[2]表示计数
int len = 1;           // 字典树节点计数器
int k, n, x, maxs;      // k:异或阈值,n:数字数量,x:临时变量,maxs:最大满足条件的数对数量/*** 构建字典树* @param x 要插入的数字*/
void build(int x)
{int fa = 0;  // 当前父节点索引(从根节点0开始)for (int i = (1 << 20); i > 0; i >>= 1)  // 从最高位到最低位处理{bool a = x & i;  // 获取当前位的值(0或1)if (!trie[fa][a])  // 如果当前位对应的子节点不存在{trie[fa][a] = len;  // 创建新节点fa = len++;         // 移动到新节点}else{fa = trie[fa][a];   // 移动到已有节点}trie[fa][2]++;          // 增加当前节点的计数}
}/*** 查询满足条件的数对数量* @param x 要查询的数字* @return 满足x^y >= k的数对(x,y)数量*/
int query(int x)
{int fa = 0, ans = 0, child, f = 0;  // fa:当前节点,ans:结果计数,child:子节点,f:提前终止标志for (int i = (1 << 20); i > 0; i >>= 1)  // 从最高位到最低位处理{bool a = x & i;  // 当前数字的当前位bool b = k & i;  // 阈值k的当前位if (b)  // 如果k的当前位为1{child = trie[fa][1 - (a ^ b)];  // 计算满足条件的子节点ans += trie[child][2];          // 累加满足条件的数量}fa = trie[fa][a ^ b];  // 移动到下一个节点if (fa == 0)           // 如果节点不存在{f = 1;             // 设置提前终止标志break;}}if (f == 0)  // 如果没有提前终止{ans += trie[fa][2];   // 累加最后节点的计数}return ans;
}int main()
{// 输入数字数量和异或阈值cin >> n >> k;// 构建字典树for (int i = 0; i < n; i++){cin >> x;build(x);}// 查找最大满足条件的数对数量for (int i = 0; i <= 2e6; i++){maxs = max(maxs, query(i));if (maxs == n)  // 如果已经找到最大可能值{break;}}// 输出结果cout << maxs << endl;return 0;
}

【运行结果】

3 5
2
3
4
3
http://www.jsqmd.com/news/394410/

相关文章:

  • COMSOL石墨烯/钙钛矿太阳能电池仿真模型:光电耦合模型文章复现
  • 2026年机械设计/CNC编程技术培训推荐:欧凡CNC数控编程技术培训全系课程解析 - 品牌推荐官
  • 论文写不动?AI论文工具千笔ai写作 VS 知文AI,专科生专属利器!
  • 题解:洛谷 P1379 八数码难题
  • 题解:洛谷 P1120 [CERC 1995] 小木棍
  • 2026年滤芯专业厂家推荐:河南纵达过滤设备,天然气/氢气/聚结滤芯等全系产品供应 - 品牌推荐官
  • 吐血推荐!继续教育必备AI论文工具 —— 千笔写作工具
  • 2026年比较好的山东橡胶靠球厂家选型推荐指南 - 品牌鉴赏师
  • 2026年天然植物提取物厂家推荐:涟源康麓生物科技,新橙皮苷/橙皮苷95%等全系产品供应 - 品牌推荐官
  • 2026年食用油/液压油/机油/亚麻油灌装机推荐:青州市同兴源包装机械有限公司全品类覆盖 - 品牌推荐官
  • 2026订制彩盒厂家实力推荐:昆山和特富包装材料有限公司,化妆品/食品/文具/日化彩盒全品类供应 - 品牌推荐官
  • 2026年评价高的火山石填料,人工湿地滤料火山石厂家行业精选名录 - 品牌鉴赏师
  • 2026年工业用/滤布/化工/酒店台布/商用洗衣机推荐:泰州市海豚洗涤设备全系解决方案 - 品牌推荐官
  • 2026动力母线槽/动力母线厂家推荐:腾霖电气有限公司,铝基/铜动力母线全系供应 - 品牌推荐官
  • 2026年岗亭屋厂家实力推荐:青州喜邦工贸治安/收费/门卫/成品/值班岗亭屋全系解决方案 - 品牌推荐官
  • 2026年热门的双U型丝杆升降机厂家品牌推荐名录 - 品牌鉴赏师
  • 2026年市政水泥涵管/钢筋水泥盖板/定制水泥制品厂家推荐:安徽亦然建材全系供应 - 品牌推荐官
  • 2026年铝翅片生产厂家实力推荐:镇江银海铝业,铝箔/钢管/航空/折弯铝翅片全系供应 - 品牌推荐官
  • 2026年合成/320/食品级/高温/350/300导热油及检测清洗剂推荐:濮阳市永龙化工 - 品牌推荐官
  • 2026年工业除尘器厂家推荐:廊坊友诚过滤设备有限公司,布袋/脉冲/不锈钢除尘器全系供应 - 品牌推荐官
  • 2026高考志愿填报全攻略:北京金如愿教育科技,低分策略/位次定位/智能填报指南一站式服务 - 品牌推荐官
  • 2026年起重电磁铁专业厂家推荐:山东鲁磁工业科技,全系产品适配多场景吊运需求 - 品牌推荐官
  • 2026年改性尼龙PA66厂家推荐:江苏腾越新材料科技,抗静电/耐磨/阻燃等全系高性能产品 - 品牌推荐官
  • 2026陶瓷膜设备厂家实力推荐:南京艾宇琦膜科技,旋转/碟片/过滤陶瓷膜全系供应 - 品牌推荐官
  • 2026北京汽车租赁服务推荐:永东鑫晨汽车服务,多元业务适配多场景用车需求 - 品牌推荐官
  • 话费卡的回收方式对比,哪种流程最适合你? - 团团收购物卡回收
  • 2026年特种防护服厂家推荐:河北冀龙凤劳保服装,防酸/阻燃/防辐射/防静电全系供应 - 品牌推荐官
  • 2026年优秀的核级高纯硼酸厂家选型推荐榜单 - 品牌鉴赏师
  • 2026年石材切割机厂家推荐:郑州铭泽机械,高速石墨/箱板/电熔砖切割机全系解决方案 - 品牌推荐官
  • 题解:洛谷 P1470 [IOI 1996 / USACO2.3] 最长前缀 Longest Prefix