题目链接:http://codeforces.com/contest/768/problem/C

题意:给出n个数,k个操作,和一个x,每次操作先排序然后对奇数位数进行xor x操作,最后问k次操作后最大值和最小值

为多少。

题解:看似是要找规律的但是只要暴力就行了。主要是a[i]的范围就只有10的3次,而且时间还有4s,直接来一个vis[i]表示

0~2048个数内取了几个,这样排序都不用了。直接for 0~2048就行。(2的10次1024,异或2的9次就是,2的11次减1

所以设最大为2048)然后稍微处理一下。可能还会用到一个re[i]辅助数组,具体看一下代码。

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
const int M = 1e5 + 10;
int a[M];
int vis[M] , re[M];
int main() {
int n , k , x;
scanf("%d%d%d" , &n , &k , &x);
for(int i = 0 ; i <= 2048 ; i++) {
vis[i] = 0;
re[i] = 0;
}
for(int i = 0 ; i < n ; i++) {
scanf("%d" , &a[i]);
vis[a[i]]++;
re[a[i]]++;
} if(n == 1) {
if(k % 2 == 0) {
printf("%d %d\n" , a[0] , a[0]);
}
else {
printf("%d %d\n" , (a[0] ^ x) , (a[0] ^ x));
}
}
else {
for(int i = 0 ; i < k ; i++) {
int flag = 0;
for(int j = 0 ; j <= 2048 ; j++) {
if(vis[j]) {
if(!flag) {
int gg = (vis[j] + 1) / 2;
re[j] -= gg;
re[(j ^ x)] += gg;
flag += vis[j];
flag %= 2;
continue;
}
else {
int gg = vis[j] / 2;
re[j] -= gg;
re[(j ^ x)] += gg;
flag += vis[j];
flag %= 2;
continue;
}
}
}
for(int j = 0 ; j <= 2048 ; j++) {
vis[j] = re[j];
}
}
for(int j = 2048 ; j >= 0 ; j--) {
if(vis[j]) {
printf("%d " , j);
break;
}
}
for(int j = 0 ; j <= 2048 ; j++) {
if(vis[j]) {
printf("%d\n" , j);
break;
}
}
}
return 0;
}

codeforces 768 C. Jon Snow and his Favourite Number(思维+暴力)的更多相关文章

  1. 【codeforces 768C】Jon Snow and his Favourite Number

    [题目链接]:http://codeforces.com/contest/768/problem/C [题意] 给你n个数字; 让你每次把这n个数字排序; 然后对奇数位的数字进行异或操作,然后对新生成 ...

  2. Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) C - Jon Snow and his Favourite Number

    地址:http://codeforces.com/contest/768/problem/C 题目: C. Jon Snow and his Favourite Number time limit p ...

  3. Codeforces768C Jon Snow and his Favourite Number 2017-02-21 22:24 130人阅读 评论(0) 收藏

    C. Jon Snow and his Favourite Number time limit per test 4 seconds memory limit per test 256 megabyt ...

  4. codeforces 768c Jon Snow And His Favourite Number

    题意: 给出一个数列,和一种操作,以及两个数x和k. 这个操作有两个步骤: 首先把这个数列按照升序排序,然后把所有奇数位上的数字与x异或. 问执行k次操作之后,这个数列的最大值和最小值是多少. 思路: ...

  5. CodeForces - 768C Jon Snow and his Favourite Number 桶排

    https://vjudge.net/problem/CodeForces-768C 题意:n个数,k次操作,x.每次操作先排序,再让奇数位置上的数据a[i]:=a[i] XOR x;   k< ...

  6. Jon Snow and his Favourite Number CodeForces - 768C (技巧)

    链接 题意 给定数组, 每次操作先将数组排序, 再将奇数位全部异或x, 求k次操作后数组最大值与最小值 (1 ≤ n ≤ 105, 0 ≤ k ≤ 105, 0 ≤ x ≤ 103) 题解 直接暴力模 ...

  7. 【基数排序】Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) C. Jon Snow and his Favourite Number

    发现值域很小,而且怎么异或都不会超过1023……然后可以使用类似基数排序的思想,每次扫一遍就行了. 复杂度O(k*1024). #include<cstdio> #include<c ...

  8. C. Jon Snow and his Favourite Number DP + 注意数值大小

    http://codeforces.com/contest/768/problem/C 这题的数值大小只有1000,那么可以联想到,用数值做数组的下标,就是类似于计数排序那样子.. 这样就可以枚举k次 ...

  9. codeforces 768 D. Jon and Orbs(概率dp)

    题目链接:http://codeforces.com/contest/768/problem/D 题意:一共有k种球,要得到k种不同的球至少一个,q个提问每次提问给出一个数pi,问概率大小大于等于pi ...

随机推荐

  1. maven添加oracle驱动包

    问题描述 项目用到了oracle,但由于oracle商业版权问题,maven在中心资源库直接下载jar包是要收费的 解决方法 第一步: 下载ojdbc6.jar 第二步: 将下载的jar放入项目的li ...

  2. Linux系统下增加LV(逻辑卷)容量 、Linux系统下减少LV(逻辑卷)容量

    查看文件系统现有lv_test容量,总计4.9G,已使用3% 命令 df -h   查看现有磁盘情况,我们发现磁盘sdb共有1305个柱面,每个柱面大小是8225280 bytes (大约8M).有一 ...

  3. 一份新的lilypond谱子,能设置页边距和设置换页符了

    给学生做的一份乐谱,这回能设置页边距了,以及设置换页符了. 顺带能设置一些代码片段(snippet),可以用热键代替使用 设置页边距的snippet: \paper { %双引号里面填页面大小 #(s ...

  4. ns3 802.11b PHY model

    I use the ubuntu and do not install the chinse input. The Code: c file requires gnu gsl library, it ...

  5. java并发编程(十七)----(线程池)java线程池架构和原理

    前面我们简单介绍了线程池的使用,但是对于其如何运行我们还不清楚,Executors为我们提供了简单的线程工厂类,但是我们知道ThreadPoolExecutor是线程池的具体实现类.我们先从他开始分析 ...

  6. JQGrid之文件上传

    文件/图片上传功能,简单总结如下 1.引入ajaxfileupload.js 注意:该文件需要在引入Jquery之后引入 下载链接:https://i.cnblogs.com/Files.aspx 2 ...

  7. 简述关于ASP.NET MVC与.NET CORE 的区别

    简述关于ASP.NET MVC与.NET CORE的区别1.关于ASP.NET 关于MVC刚开始接触这个技术的时候我经常不理解他们的名字,我相信许多学ASP.NET开发人员开始接触MVC应该也和我一样 ...

  8. Unity进阶之ET网络游戏开发框架 03-Hotfix层启动

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...

  9. 【Node/JavaScript】论一个低配版Web实时通信库是如何实现的( WebSocket篇)

    引论 simple-socket是我写的一个"低配版"的Web实时通信工具(相对于Socket.io),在参考了相关源码和资料的基础上,实现了前后端实时互通的基本功能 选用了Web ...

  10. 实现API管理系统的几个重要关键词

    管理API的需求源自于Web API开展业务.从2006年开始,然后逐渐成熟,并在2016年之前进入市场.无论是通过代理现有API的管理网关.本身作为用于部署API本身的网关的一部分,还是作为连接层在 ...