吴传之火烧连营

时间限制: 1 Sec 内存限制: 128 MB
题目描述
蜀汉章武元年(221年),刘备为报吴夺荆州、关羽被杀之仇,率大军攻吴。吴将陆逊为避其锋,坚守不战,双方成对峙之势。蜀军远征,补给困难,又不能速战速决,加上入夏以后天气炎热,以致锐气渐失,士气低落。刘备为舒缓军士酷热之苦,命蜀军在山林中安营扎寨以避暑热。陆逊看准时机,命士兵每人带一把茅草,到达蜀军营垒时边放火边猛攻。蜀军营寨的木栅和周围的林木为易燃之物,火势迅速在各营漫延。蜀军大乱被吴军连破四十余营。陆逊火烧连营的成功,决定了夷陵之战蜀败吴胜的结果。

刘备带兵深入吴境,陆逊却避而不出,蜀军只得在山林中安营扎寨。而刘备在扎营时却犯了兵家大忌,将兵营排列成一条直线,远远看去,就像是一条串着珠子的链,美其名曰:链寨。如果吴军将领是一般人,那么这也许不算什么,而陆逊何许人也,他可是江东才子,能力不低于周瑜的一代儒将。他看到刘备这样排阵,心生一计,决定用火攻破阵。然而,火计除了要有风,选定引火点也非常重要,对于刘备的布阵,最佳引火点一定是n个兵营中的一个。而因为风水轮流转,每天的最佳引火点都不一样。我们给每个兵营定下一个固定不变的火攻值Ai,每天定下一个风水值K,对于每天的最佳引火点,显然是所有兵营中火攻值与风水值异或的结果最大的那一个兵营。然而,陆逊是个谨慎的人,他要观察时机,在m天中选定一个最佳的进攻的日期,为此他演算出了这m天每天的风水值,然后他希望你能够告诉他这m天每天最大的异或结果。

输入
第一行n,m,代表有n个兵营,m天。

接下来一行有n个非负整数,代表这n个兵营的火攻值。

接下来一行有m个非负整数,代表这m天的风水值。

输出
输出共m行,每行输出一个整数,代表每天最大的异或结果。

样例输入
3 2
1 2 3
4 5
样例输出
7
7
提示
【样例说明】

对于第1天,由于4 xor 1=5, 4 xor 2=6, 4 xor 3=7,最大异或结果为7

对于第2天,由于5 xor 1=4, 5 xor 2=7, 5 xor 3=6,最大异或结果为7

【数据规模和约定】

对于30%数据,n<=1000,m<=1000

对于100%数据,n<=100000,m<=100000, 0<=k,ai<=2147483647
运用trie树 0 1 与异或
借鉴于ACTY

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#define ll long long
#define oo 1000000007
using namespace std;
int n,m,tot,x;
int a[50];
struct node
{int Next[2];void init(){memset(Next,-1,sizeof(Next));}
}p[3200005];
void work(int x)
{int k=0;while (x){a[++k]=x%2;x/=2;}for (int i=k+1;i<=31;i++)a[i]=0;
}
void update()
{int now=0;for (int i=31;i>=1;i--){int j=a[i];if (p[now].Next[j]==-1){p[++tot].init();p[now].Next[j]=tot;}now=p[now].Next[j];}
}
int query()
{int now=0,ret=0;for (int i=31;i>=1;i--){int j=(a[i]^1);if (p[now].Next[j]==-1) j^=1;if ((a[i]^j)==1) ret+=(1<<(i-1));now=p[now].Next[j];}return ret;
}
int main()
{p[0].init();scanf("%d%d",&n,&m);for (int i=1;i<=n;i++){scanf("%d",&x);work(x);update();               }for (int j=1;j<=m;j++){scanf("%d",&x);work(x);printf("%d\n",query());}return 0;
}

2016暑期集训10 C吴传之火烧连营相关推荐

  1. 魏传之长坂逆袭、蜀传之单刀赴会、吴传之火烧连营

    A.魏传之长坂逆袭 时间限制: 1 Sec  内存限制: 128 MB 题目描述 众所周知,刘备在长坂坡上与他的一众将领各种开挂,硬生生从曹操手中逃了出去,随后与孙权一起火烧赤壁.占有荆益.成就霸业. ...

  2. trie树——【吴传之火烧连营】

    突然发现好像没有讲过一种叫做tire树的神奇东西. 问题描述: 题目描述 [题目背景] 蜀汉章武元年(221年),刘备为报吴夺荆州.关羽被杀之仇,率大军攻吴.吴将陆逊为避其锋,坚守不战,双方成对峙之势 ...

  3. Jzoj3908 吴传之火烧连营 (梦回三国系列)

    [题目背景] 蜀汉章武元年(221年),刘备为报吴夺荆州.关羽被杀之仇,率大军攻吴.吴将陆逊为避其锋,坚守不战,双方成对峙之势.蜀军远征,补给困难,又不能速战速决,加上入夏以后天气炎热,以致锐气渐失, ...

  4. JZOJ 3908 吴传之火烧连营

    题目大意 题目大意就是对于一个序列,多次询问求在 xor K 的情况下最大值. 原题 Description [题目背景] 蜀汉章武元年(221年),刘备为报吴夺荆州.关羽被杀之仇,率大军攻吴.吴将陆 ...

  5. 【NOIP2014模拟11.1B组】吴传之火烧连营(tree)

    题目大意 对于一个序列,多次询问求在 xor K 的情况下最大值. 分析 我们将每一个数拆分成 2 进制,然后映射进一棵 trie 中,然后对于每个询问,根据异或的性质(1 xor 1=0,1 xor ...

  6. 【NOIP2014模拟11.1B组】吴传之火烧连营

    trie,动态开点. 我们可以将输入的a[],b[]全部看成二进制数. 然后按照二进制中的位置从大到小开始建trie. 如果trie不会的可以自己手动普及一下. 建好a[]的trie后,我们可以对于每 ...

  7. YYHS-吴传之火烧连营(梦回三国系列T3)(trie树)

    题目描述 [题目背景] 蜀汉章武元年(221年),刘备为报吴夺荆州.关羽被杀之仇,率大军攻吴.吴将陆逊为避其锋,坚守不战,双方成对峙之势.蜀军远征,补给困难,又不能速战速决,加上入夏以后天气炎热,以致 ...

  8. 8.10 正睿暑期集训营 Day7

    目录 2018.8.10 正睿暑期集训营 Day7 总结 A 花园(思路) B 归来(Tarjan 拓扑) C 机场(凸函数 点分治) 考试代码 A B C 2018.8.10 正睿暑期集训营 Day ...

  9. 暑期集训5:并查集 线段树 练习题F:  HDU - 1166 ​​​​​​​

    2018学校暑期集训第五天--并查集 线段树 练习题F  --   HDU - 1166 敌兵布阵 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A ...

最新文章

  1. Rust 每天一库系列 Ftp 库
  2. 浏览器中xhr选项是做什么用的呢_XHR和AJAX终于搞懂了!!
  3. 进大厂必须掌握的50个微服务面试问题!
  4. 又一个神器!只需一行代码,纯文本秒变Markdown
  5. c++正则表达式_Python正则表达式教程-常用文本处理技巧
  6. 企业内部自建用户行为分析平台全过程
  7. ASP.NET 动态加载WebService功能
  8. 安装oracle9i时提示找不到文件OCS4J.properties的解决方法
  9. PyTorch代码出现“interrupted by signal 9: SIGKILL”
  10. 机器学习回顾篇(2):最小二乘法
  11. 前端面试题2016--CSS
  12. 项目1-员工(绩效)信息管理系统
  13. SQL Express几个版本的区别
  14. 小手的图标css,CSS中cursor属性给标签加上小手形状
  15. 任正非:实事求是的科研方向与二十年的艰苦努力(新年推荐)
  16. 数据库中的层次模型是什么(树形结构)
  17. 电容充电放电时间计算公式
  18. 课程学习笔记1:自然辩证法概论
  19. 一键解决steam打不开的问题
  20. 谷歌翻译下载-大家都在用的批量谷歌翻译软件下载

热门文章

  1. 读书笔记:《技术人修炼之道》
  2. STM32CubeIDE用Flash模拟Eeprom
  3. 【解决方案】国标EasyGBS视频平台联合烟草运输行业实现运输车辆无线视频监控方案
  4. Attempt to recreate a file for type io.realm.RealmStringRealmProxyInterface
  5. [19保研]关于上海交通大学“2019 软件工程优才夏令营”的通知
  6. 1.2.3存储结构:主存编址计算、主存编址的过程、存储单元、编址内容、存储总容量
  7. matlab画簇状堆积柱状图怎么调颜色,簇状柱形图实用技巧——“超额”的完美展示与设置!...
  8. 如果体内湿气重怎么办
  9. C# DataGridView DefaultCellStyle.ForeColor 改变颜色没有效果
  10. python同步异步,python异步回调转为同步并实现超时