Smiling & Weeping

              ----我对姑娘的喜欢,何止钟意二字

题目链接:Problem - C - Codeforces

自我分析:我感觉这是一道很有意义的题目,可以帮我们更好的理解二进制的本质

思路:首先先了解一下题目,我们是求由第i个数到末尾的异或和(异或:相同为0,不同为1),那么我们可以换种思路,可以求从1到i的异或和m,再^上从1到j的异或和(1 <= j <= i) ,毕竟异或相同的数两次等于0,那么有了这个算法思路,我们可以设计程序了:

  使用vis记录曾经出现的异或和(a < pow(2 , 8) ), 再从1遍历到n , 算法的复杂度为O(pow(2,8)*n) , 可以通过

  现在是代码时间(づ ̄3 ̄)づ╭~you

 1 #include<bits/stdc++.h>
2 using namespace std;
3 int t , n;
4 const int maxn = 1 << 8;
5 int main()
6 {
7 scanf("%d",&t);
8 while(t--)
9 {
10 scanf("%d",&n);
11 int cur = 0 , ans = 0;
12 vector<int> num(n+10);
13 vector<bool> vis(maxn+10);
14 for(int i = 1; i <= n; i++)
15 scanf("%d",&num[i]);
16 vis[0] = true;
17 for(int i = 1; i <= n; i++)
18 {
19 cur ^= num[i];
20 for(int j = 0; j < maxn; j++)
21 {
22 if(vis[j])
23 {
24 int an = j^cur;
25 ans = max(ans , an);
26 // vis[an] = true;
27 }
28 }
29 vis[cur] = true;
30 }
31 printf("%d\n",ans);
32 }
33 return 0;
34 }

其实对第26行,我还是深有感触的,我们大可不必去记录每个的前j个的异或和与新值(记录了一定出错,不符合题意,思考一下(ˇˍˇ) 想~),再填入vis中,就像二进制运算一样,它的所有可能出现的值都能用前i个异或和 以及 前j个异或和 来异或表示

这路遥马急的人间,你我平安喜乐就好 --o(╥﹏╥)o-- 此后烟雨皆尽散,一人撑伞一人行

Codeforces Round div.2 C的更多相关文章

  1. Codeforces Round #211 (Div. 2)

    难得一次比赛能够自己成功A掉四个题: A题:水题,模拟一下就行: #include <iostream> #include <cstdio> using namespace s ...

  2. Codeforces Round #324 (Div. 2)解题报告

    ---恢复内容开始--- Codeforces Round #324 (Div. 2) Problem A 题目大意:给二个数n.t,求一个n位数能够被t整除,存在多组解时输出任意一组,不存在时输出“ ...

  3. Codeforces Round #202 (Div. 2)

    第一题水题但是wa了一发,排队记录下收到的25,50,100,看能不能找零,要注意100可以找25*3 复杂度O(n) 第二题贪心,先找出最小的花费,然后就能得出最长的位数,然后循环对每个位上的数看能 ...

  4. Codeforces Round #404 (Div. 2) DE

    昨晚玩游戏竟然不小心错过了CF..我是有多浪啊. 今天总算趁着下课时间补了,感觉最后两题还是挺有意思的,写个题解. D: 题目大意: 给出一个括号序列,问有多少个子序列 是k个'(' + k个')' ...

  5. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  6. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  7. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  8. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  9. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  10. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

随机推荐

  1. 设置nginx允许服务端跨域

    目前项目大多使用前后端分离的模式进行开发,跨域请求当然就是必不可少了,很多时候我们会使用在客户端的ajax 请求中设置跨域请求,也有的在服务端设置跨域.但是有时候会遇到不使用ajax也没有使用后端服务 ...

  2. GitHub上SSH keys和Deploy keys的区别

    平时安装一个git然后去GitHub进行SSH keys 配置最后就开始使用,然后换一台电脑再使用$ ssh-keygen -t rsa -C "your email"生成一个ss ...

  3. JS逆向实战15——猿人学第五题 动态cookie乱码增强

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 网站 https://ma ...

  4. 解读与用户一起“跳动”的开源实时监控工具 HertzBeat

    摘要:开源项目遇上华为云,会擦出怎样的火花? 在本期<开源实时监控工具HertzBeat如何与用户一起"跳动?>的主题直播中,HertzBeat & TanCloud 创 ...

  5. elment UI + EasyExcel 实现 导入

    前端组件 <hd-flex> <el-dialog v-model="isUploadDialog" width="50%" lock-scr ...

  6. 基于ggplot2的解剖图和组织模块可视化

    摘要 将数据显示到解剖结构上,是一种可以快速观察组织相关信息的便捷技术.然而,绘制组织是一项复杂的任务(a complex task),需要解剖学和艺术方面的专业知识.虽然已经存在可用于在解剖图上显示 ...

  7. CANoe学习笔记(一):创建第一个仿真工程(基于CAN):点灯

    目录 内容: ①创建两个节点,Switch和Light节点 ②创建两个Panel界面 ③capl代码实现Switch控制Light亮灭 事先准备: 养成良好的习惯,将不同文件放入不同文件夹,创建如下几 ...

  8. 二维数组初始化vector, 以及类型转换问题

    //二维数组的初始化1 vector<vector<float>> _box_parm(class_row_num, vector<float>(class_col ...

  9. 【HarmonyOS】一文教你如何在低代码项目中跳转H5页面

    ​ [关键字] 元服务.低代码.H5页面跳转.WebView [1.写在前面] 今天我们来实现一个在低代码项目中通过按钮跳转到H5页面的功能,本项目是基于API6的JS工程,我们的实现思路是在页面B中 ...

  10. 生成式预训练Transformer在机器翻译中的应用与挑战

    目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 4. 应用示例与代码实现讲解 5. 优化与改进 6. 结论与展望 机器翻译是人工智能领域的重要应用之一,而生成式预训练Transforme ...