做梦梦见一道题,但是梦里好像做假了
  • 板块灌水区
  • 楼主HaneDaniko
  • 当前回复10
  • 已保存回复11
  • 发布时间2024/11/1 15:48
  • 上次更新2024/11/1 19:28:14
查看原帖
做梦梦见一道题,但是梦里好像做假了
1161172
HaneDaniko楼主2024/11/1 15:48

梦里觉得 or 的做法是贪心,但是醒来以后想想觉得假了,因为没法处理放在两边贡献一样的情况

另外两个操作符忘了怎么做的了

回忆了一遍题目大概长这样:

题目描述

事情是这样的,你现在有 nn 个数对,你需要在每个数对中挑出一个数字放入序列 AA,另一个则会被放入序列 BB

现在比特先生将会在 and orxor 中挑选一种位运算,然后分别计算出 A,BA,B 中所有元素进行比特先生挑选的位运算的结果

你需要求出最终两个序列结果的和的最大值

输入格式

第一行一个整数 nn,表示数对个数

随后 nn 行,每行两个整数 xi,yix_i,y_i,描述了一个数对

最后一行为操作符,操作符为 and orxor 中的一种,表示执行的位运算

输出格式

一个整数,表示和的最大值

样例 #1

样例输入 #1

2
1 2
2 1
and

样例输出 #1

3

样例 #2

样例输入 #2

2
1 2
2 1
or

样例输出 #2

6

样例 #3

样例输入 #3

2
1 2
2 1
xor

样例输出 #3

6

提示

样例解释

对于第一个样例,分成 {1,1},{2,2}\{1,1\},\{2,2\} 两组最优,最优答案为 1+2=31+2=3

对于后两个样例,分成 {1,2},{2,1}\{1,2\},\{2,1\} 两组最优,最优答案均为 3+3=63+3=6

数据范围约定

输入数据保证 xi,yi2311x_i,y_i\le 2^{31}-1

nn 的范围因为没想到正解所以暂时没有确定

2024/11/1 15:48
加载中...