踩不出足迹(牛客练习赛88 )

题意:

长度为n的数组a,每个数是一个k位二进制
定义一下操作:
令第一次得到的结果为 a1a_1a1​。你需要从第二个数开始,每次可以选择与上一次得到的结果异或或者同或起来。
问最大值是多少?

题集:

队友盲猜结论正确,orz
考虑异或和同或的性质,异或和同或都是具有交换律的,可以任意调换顺序。同或运算相当于和另一个数取反异或起来
所以有:a⊗¬b=¬a⊗b,¬a⊗¬b=a⊗ba⊗¬ b=¬a⊗ b,¬a ⊗¬b=a⊗ba⊗¬b=¬a⊗b,¬a⊗¬b=a⊗b
也就是如果我们有若干同或操作,其实就是将这个数取反再异或。那就是若干个数取反后异或起来。根据上面写的等式,两个取反排在一起可以消除这两个取反符号,那也就是最后有可能只剩一个取反,或者一个也没有。又因为交换律,我们将取反符号转移到最后一个数上。所以答案就是所有数异或和,或者前n-1个数异或,最后一个数同或
同或的操作就是与k位1异或,但是注意k<=64,如果直接1<<64再减1,ull也顶不住,可以通过1<<63+1<<63+1来实现
longlong范围:[−263,263−1][-2^{63},2^{63}-1][−263,263−1]
ull范围:[0,264−1][0,2^{64}-1][0,264−1]

代码:

// Problem: 踩不出足迹
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/11178/C
// Memory Limit: 1048576 MB
// Time Limit: 2000 ms
// By Jozky#include <bits/stdc++.h>
#include <unordered_map>
#define debug(a, b) printf("%s = %d\n", a, b);
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;
clock_t startTime, endTime;
//Fe~Jozky
const ll INF_ll= 1e18;
const int INF_int= 0x3f3f3f3f;
void read(){};
template <typename _Tp, typename... _Tps> void read(_Tp& x, _Tps&... Ar)
{x= 0;char c= getchar();bool flag= 0;while (c < '0' || c > '9')flag|= (c == '-'), c= getchar();while (c >= '0' && c <= '9')x= (x << 3) + (x << 1) + (c ^ 48), c= getchar();if (flag)x= -x;read(Ar...);
}
template <typename T> inline void write(T x)
{if (x < 0) {x= ~(x - 1);putchar('-');}if (x > 9)write(x / 10);putchar(x % 10 + '0');
}
void rd_test()
{#ifdef ONLINE_JUDGE
#elsestartTime= clock();freopen("data.in", "r", stdin);
#endif
}
void Time_test()
{#ifdef ONLINE_JUDGE
#elseendTime= clock();printf("\nRun Time:%lfs\n", (double)(endTime - startTime) / CLOCKS_PER_SEC);
#endif
}
const int maxn= 1e6 + 9;
ull a[maxn];
int main()
{//rd_test();int n, k;cin >> n >> k;for (int i= 1; i <= n; i++) {cin >> a[i];}ull num= 0;for (int i= 1; i <= n; i++) {num= num ^ a[i];}// cout << num << endl;ull ans= max(num, ((num) ^ ((1ull << (k-1)) + ((1ull << (k-1))-1ull))));cout << ans;//Time_test();
}

踩不出足迹(牛客练习赛88 )相关推荐

  1. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  2. 牛客练习赛52 | C | [烹饪] (DP,裴蜀定理,gcd)

    牛客练习赛52 C 烹饪 链接:https://ac.nowcoder.com/acm/contest/1084/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...

  3. 牛客练习赛68 B.牛牛的算术

    牛客练习赛68 B.牛牛的算术 题目链接 题目描述 牛牛最近学习了取模是什么 于是他看到了下面这一道题: 多次询问:每次询问包含一个正整数 n 要求你输出下列结果 ∏i=1n∑j=1i∑k=1ji×j ...

  4. E-牛牛小数点_牛客练习赛89(数学)

    E-牛牛小数点_牛客练习赛89 (nowcoder.com) 题目描述 牛牛想和点点交朋友, 于是点点给了牛牛一个问题. 定义关于小数 xxx 的函数 f(x)f(x)f(x), 表示 xxx 中两个 ...

  5. 牛客练习赛54(A,B,C(ATCG相同的分在一起 暴力加巧妙差分))

    牛客练习赛54 日常刷一套牛客练习赛题 A-乘积 n这么小 暴力即可,不知道unsinged long long 操作,用java大数写了: import java.math.BigInteger; ...

  6. 牛客练习赛#105(A-D)

    牛客练习赛#105 文章目录 牛客练习赛#105 A.切蛋糕的贝贝 B.抱歉,这没有集美 C.打牌的贝贝 D.点分治分点 A.切蛋糕的贝贝 题意 有一个正n边形,想通过下列的切法切成面积比为1:1:4 ...

  7. 牛客练习赛58 C.矩阵消除游戏

    牛客练习赛58 C.矩阵消除游戏 题目链接 题目描述 牛妹在玩一个名为矩阵消除的游戏,矩阵的大小是n行m列,第i行第j列的单元格的权值为ai,ja_{i,j}ai,j​ ,牛妹可以进行k个回合的游戏, ...

  8. 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...

  9. 牛客练习赛34 E little w and Digital Root(数位dp)

    title: 牛客练习赛34 E little w and Digital Root(数位dp) date: 2018-12-17 22:38:37 tags: 数位dp categories:ACM ...

最新文章

  1. Spinnaker:云原生多云环境持续部署的未来这样玩!
  2. Linux RPM 常用命令
  3. java找哪一天是星期几_七夕节是几月几日农历时间 2019年七夕情人节哪一天星期几...
  4. android产品设计,Android产品设计
  5. 一步步使SSH连接您的github仓库
  6. window下配置SSH连接GitHub、GitHub配置ssh key
  7. 东莞计算机应用能力报名,2017广东职称计算机考试报名:东莞职称计算机报名入口...
  8. [Winodows Phone 7控件详解]Silverlight toolkit for Windows Phone 7.1控件-3
  9. ProcessPoolExecutor
  10. 数商云SCM供应链系统方案服务亮点:生产管理更智能、产业供应链协同管理更便捷
  11. 通过读取原始星历文件数据推算GPS卫星位置坐标
  12. 极光 MPush 资料
  13. 关闭445端口操作手册
  14. java excel进度条_EXCEL导入保存数据时加进度条显示
  15. sorted函数python_sorted函数
  16. 【CSS-定位和浮动】
  17. win10、win7系统重装教程
  18. 计算机组成原理 运算器实验
  19. c语言校友录系统,个人校友录管理系统下载
  20. 深度学习应用场景整理

热门文章

  1. 博古通今的孩子是怎么养成的?答案就在这本影响了无数中国人思想的奇书里……
  2. 火了!女教授把自己P成女娲,登上学术期刊封面
  3. 这才是真正的蛙泳,还挺能蹦跶......
  4. oracle中表截断是什么意思,Oracle截断表
  5. nginx php oracle,第8天 ORACLE安装及NGINX整合PHP环境
  6. sql重新注册服务器,sql server无法新建注册服务器怎么办?
  7. python编译安装没有c扩展_为什么在安装simplejson时得到“C扩展无法编译”?
  8. php数字转中文数字排序,php实现中文转数字
  9. as本地仓库更改_将gitee仓库连接GitHub Desktop。新建更改仓库并上传至gitee。
  10. java 继承 冒号_java继承(extends)简单介绍