链接

题意

给定数组, 每次操作先将数组排序, 再将奇数位全部异或x, 求k次操作后数组最大值与最小值

(1 ≤ n ≤ 105, 0 ≤ k ≤ 105, 0 ≤ x ≤ 103)

题解

直接暴力模拟是O(nk)的, 注意到元素范围均较小可以用桶达到O(1024*k)

该题k过大时会好像一定出现循环, 然后暴力模拟几次也能过, 没看出来怎么证明...

#include <iostream>
#include <cstdio>
#include <algorithm>
#define REP(i,a,n) for(int i=a;i<=n;++i)
using namespace std; const int N = 1e5+;
int n, k, x, t;
int a[N], delta[N]; int main() {
cin>>n>>k>>x;
REP(i,,n) cin>>t, ++a[t];
REP(i,,k) {
REP(i,,) delta[i] = ;
int cur = ;
REP(i,,) {
int cnt = (a[i]+cur)/;
delta[i] -= cnt;
delta[i^x] += cnt;
cur ^= a[i]&;
}
REP(i,,) a[i] += delta[i];
}
int mi = 1e9, ma = ;
REP(i,,) if (a[i]) {
mi = min(mi, i);
ma = max(ma, i);
}
cout<<ma<<' '<<mi<<endl;
}

Jon Snow and his Favourite Number CodeForces - 768C (技巧)的更多相关文章

  1. 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 ...

  2. 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 ...

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

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

  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. codeforces 768 C. Jon Snow and his Favourite Number(思维+暴力)

    题目链接:http://codeforces.com/contest/768/problem/C 题意:给出n个数,k个操作,和一个x,每次操作先排序然后对奇数位数进行xor x操作,最后问k次操作后 ...

  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. XOR and Favorite Number CodeForces - 617E -莫队-异或前缀和

    CodeForces - 617E 给n个数, m个询问, 每次询问问你[l, r]区间内有多少对(i, j), 使得a[i]^a[i+1]^......^a[j]结果为k.(注意 i ! =  j) ...

随机推荐

  1. AppiumDriverLocalService 启动appium控制台不显示日志以及把日志保存到本地

    import java.io.File; import java.io.OutputStream; import java.lang.reflect.Field; import java.util.A ...

  2. Linux基础命令---znew

    znew 将compress压缩成的”.Z”文件,转换成“.gz”格式的文件.ZNew将文件从.z(压缩)格式重新压缩到.gz(Gzip)格式.如果要重新压缩已以gzip格式的文件,请重命名该文件以强 ...

  3. thinkphp标签实现bootsrtap轮播carousel实例

    thinkphp标签实现bootsrtap轮播carousel实例由于轮播carousel第一个div需要设置active样式才能正常显示,上面的圆点也同样需要数字,使用volist标签在循环的同时可 ...

  4. Linux学习笔记之Linux Centos关闭防火墙

    # Centos6.x /etc/init.d/iptables stop chkconfig iptables off sed -i 's/SELINUX=enforcing/SELINUX=dis ...

  5. Python入门之字典的操作详解

    这篇文章主要介绍了Python 字典(Dictionary)的详细操作方法,需要的朋友可以参考下: Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一 ...

  6. Confluence5.8更改数据库配置

    Confluence5.8更改数据库配置 第一步:是找到confluence的安装目录,我的安装目录在 /opt/atlassian/: 第二步:由于confluence把tomcat给改造了,所以c ...

  7. 01: Centos7 常用命令

    1.1 centos7中防火墙相关命令 1.查看状态 1.  getenforce           # 查看内核防火墙状态(disabled标识关闭) 2.  systemctl status f ...

  8. 20145222何志威《网络对抗》- Web安全基础实践

    20145322何志威<网络对抗>Exp9 Web安全基础实践 基础问题回答 1.SQL注入原理,如何防御 SQL注入 就是通过把SQL命令插入到"Web表单递交"或& ...

  9. CMD运行后关闭CMD 的窗口命令

    在命令前加上Start 例(打开服务管理):start services.msc

  10. cmd命令分类

    1.系统功能类 AT:计划在计算机上运行的命令和程序.ATTRIB:显示或更改文件属性.BREAK:设置或清除扩展式 CTRL+C 检查.CACLS:显示或修改文件的访问控制列表(ACLs).CALL ...