Jzoj3908 吴传之火烧连营 (梦回三国系列)
2017-10-04 11:04
246 查看
【题目背景】
蜀汉章武元年(221年),刘备为报吴夺荆州、关羽被杀之仇,率大军攻吴。吴将陆逊为避其锋,坚守不战,双方成对峙之势。蜀军远征,补给困难,又不能速战速决,加上入夏以后天气炎热,以致锐气渐失,士气低落。刘备为舒缓军士酷热之苦,命蜀军在山林中安营扎寨以避暑热。陆逊看准时机,命士兵每人带一把茅草,到达蜀军营垒时边放火边猛攻。蜀军营寨的木栅和周围的林木为易燃之物,火势迅速在各营漫延。蜀军大乱,被吴军连破四十余营。陆逊火烧连营的成功,决定了夷陵之战蜀败吴胜的结果。
【问题描述】
刘备带兵深入吴境,陆逊却避而不出,蜀军只得在山林中安营扎寨。而刘备在扎营时却犯了兵家大忌,将兵营排列成一条直线,远远看去,就像是一条串着珠子的链,美其名曰:链寨。如果吴军将领是一般人,那么这也许不算什么,而陆逊何许人也,他可是江东才子,能力不低于周瑜的一代儒将。他看到刘备这样排阵,心生一计,决定用火攻破阵。然而,火计除了要有风,选定引火点也非常重要,对于刘备的布阵,最佳引火点一定是n个兵营中的一个。而因为风水轮流转,每天的最佳引火点都不一样。我们给每个兵营定下一个固定不变的火攻值Ai,每天定下一个风水值K,对于每天的最佳引火点,显然是所有兵营中火攻值与风水值异或的结果最大的那一个兵营。然而,陆逊是个谨慎的人,他要观察时机,在m天中选定一个最佳的进攻的日期,为此他演算出了这m天每天的风水值,然后他希望你能够告诉他这m天每天最佳引火点的兵营编号。
这题十分套路,就是Trie,具体不多说了
蜀汉章武元年(221年),刘备为报吴夺荆州、关羽被杀之仇,率大军攻吴。吴将陆逊为避其锋,坚守不战,双方成对峙之势。蜀军远征,补给困难,又不能速战速决,加上入夏以后天气炎热,以致锐气渐失,士气低落。刘备为舒缓军士酷热之苦,命蜀军在山林中安营扎寨以避暑热。陆逊看准时机,命士兵每人带一把茅草,到达蜀军营垒时边放火边猛攻。蜀军营寨的木栅和周围的林木为易燃之物,火势迅速在各营漫延。蜀军大乱,被吴军连破四十余营。陆逊火烧连营的成功,决定了夷陵之战蜀败吴胜的结果。
【问题描述】
刘备带兵深入吴境,陆逊却避而不出,蜀军只得在山林中安营扎寨。而刘备在扎营时却犯了兵家大忌,将兵营排列成一条直线,远远看去,就像是一条串着珠子的链,美其名曰:链寨。如果吴军将领是一般人,那么这也许不算什么,而陆逊何许人也,他可是江东才子,能力不低于周瑜的一代儒将。他看到刘备这样排阵,心生一计,决定用火攻破阵。然而,火计除了要有风,选定引火点也非常重要,对于刘备的布阵,最佳引火点一定是n个兵营中的一个。而因为风水轮流转,每天的最佳引火点都不一样。我们给每个兵营定下一个固定不变的火攻值Ai,每天定下一个风水值K,对于每天的最佳引火点,显然是所有兵营中火攻值与风水值异或的结果最大的那一个兵营。然而,陆逊是个谨慎的人,他要观察时机,在m天中选定一个最佳的进攻的日期,为此他演算出了这m天每天的风水值,然后他希望你能够告诉他这m天每天最佳引火点的兵营编号。
这题十分套路,就是Trie,具体不多说了
#pragma GCC opitmize("O3") #pragma G++ opitmize("O3") #include<stdio.h> #include<string.h> #include<algorithm> #define N 100010 using namespace std; int s[N<<5][2],cnt=1,n,m; void insert(int k,int pos){ int x=1; bool d; for(int i=31;~i;--i){ d=(k&(1<<i)); if(!s[x][d]) s[x][d]=++cnt; x=s[x][d]; } s[x][0]=pos; } int gMax(int k){ int x=1; bool d; for(int i=31;~i;--i){ d=!(k&(1<<i)); if(s[x][d]) x=s[x][d]; else x=s[x][!d]; } return s[x][0]; } int main(){ scanf("%d%d",&n,&m); for(int x,i=0;i<n;++i){ scanf("%d",&x); insert(x,i+1); } for(int x,i=0;i<m;++i){ scanf("%d",&x); printf("%d\n",gMax(x)); } }
相关文章推荐
- Jzoj3906 魏传之长坂逆袭(梦回三国系列)
- Jzoj3907 蜀传之单刀赴会(梦回三国系列)
- Jzoj4877 力场护盾(红警系列)
- jzoj3621 【BOI2011】Time is money (最小乘积系列:生成树)
- Jzoj4736 漆黑列车载运数个谎言(GOSICK系列)
- Jzoj4876 基因突变(红警系列)
- [分类汇总] 同步与异步系列
- 漫谈.Net关键字系列之一Sealed与Final
- 一步一步学Silverlight 2系列(22):在Silverlight中如何用JavaScript调用.NET代码
- ASP.NET MVC实践系列9-filter原理与实践
- Java NIO系列教程(六) Selector
- Exchange 2010系列部署报告-域控制器部署
- 【多线程系列--ManualResetEvent2】
- [feature phone系列]彩信的架构和实现原理
- 数据结构与算法(C#实现)系列---广义树(一)
- 对数据库用户名密码的加解密应用之系列
- LIS最长递增子系列nlogn算法Java实现
- Android设计模式系列(3)--SDK源码之单例模式
- 【系列】char->string类型转换 ||批处理bat之start
- 编码规范系列(一):Eclipse Code Templates设置