首先向颜神犇致敬。。。还是自己太菜,又不仔细思考,上来就翻题解$qwq$


首先有一种贪心方法:即,$ans=2*max(dirty_i)$

证明:若现在的答案为$ans$,考虑一个新的数$x$对答案的贡献

  1. 若$x>ans$,则$x\&ans$相当于是取了$ans$的低位,答案会没有增加甚至减少;$x|ans$相当于是取了$x$的高位;即上面的方式只增加了与和,,那我们不如都取位数更高的$x$当做$ans$。
  2. 若$x<ans$,则$x\&ans$会失去$ans$的较高位,而$x|ans$只会增加较低位;所以不让$x$参与贡献。
  3. 若$x==ans$,则选与不选无所谓。
  1. #include<cstdio>
  2. #include<iostream>
  3. #include<algorithm>
  4. #include<cstring>
  5. #include<cmath>
  6. #include<cctype>
  7. #include<cstdlib>
  8. #include<vector>
  9. #include<queue>
  10. #include<map>
  11. #include<set>
  12. #define ll long long
  13. #define R register ll
  14. using namespace std;
  15. namespace Fread {
  16. static char B[<<],*S=B,*D=B;
  17. #define getchar() (S==D&&(D=(S=B)+fread(B,1,1<<15,stdin),S==D)?EOF:*S++)
  18. inline ll g() {
  19. R ret=,fix=; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-:fix;
  20. do ret=ret*+(ch^); while(isdigit(ch=getchar())); return ret*fix;
  21. }
  22. }using Fread::g; ll n,b,p,ans;
  23. inline ll qpow(ll a) { R ret=%p; a%=p;
  24. for(;b;b>>=,(a*=a)%=p) if(b&) (ret*=a)%=p; return ret;
  25. }
  26. signed main() {
  27. #ifdef JACK
  28. freopen("NOIPAK++.in","r",stdin);
  29. #endif
  30. n=g(),b=g(),p=g(); for(R i=;i<=n;++i) ans=max(ans,g());
  31. printf("%lld\n",qpow(*ans+));
  32. }

然后有一种很强的做法


再次致敬。。。在$OI$中如果不能仔细思考,也只能$retire$了 2019.06.09

Luogu P4144 大河的序列 贪心+脑子的更多相关文章

  1. l洛谷 (水题)P4144 大河的序列

    题目戳 Solution: 这题前面都是废话,关键的一句就是本题求的是序列中连续一段的相与值(&)+相或值(|)最大,然后对这个值进行快速幂取模.考虑到两个数相与最大能得到的就是这两个数中的最 ...

  2. Luogu 1970 NOIP2013 花匠 (贪心)

    Luogu 1970 NOIP2013 花匠 (贪心) Description 花匠栋栋种了一排花,每株花都有自己的高度.花儿越长越大,也越来越挤.栋栋决定把这排中的一部分花移走,将剩下的留在原地,使 ...

  3. [Luogu 1963] NOI2009 变换序列

    [Luogu 1963] NOI2009 变换序列 先%Dalao's Blog 什么?二分图匹配?这个确定可以建图? 「没有建不成图的图论题,只有你想不出的建模方法.」 建图相当玄学,不过理解大约也 ...

  4. Luogu 1090 合并果子(贪心,优先队列,STL运用)

    Luogu 1090 合并果子(贪心,优先队列,STL运用) Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每 ...

  5. [Luogu 2023] AHOI2009 维护序列

    [Luogu 2023] AHOI2009 维护序列 恕我冒昧这和线段树模板二有个琴梨区别? #include <cstdio> int n,m; long long p; class S ...

  6. 【洛谷P4144】大河的序列

    题目大意:给定一个长度为 N 的序列,求序列中连续区间最大的(或和加与和)是多少. 题解: 引理:任意两个数 \(i, j\),若 \(i>j\),则在二进制表示下,i 对应的二进制串的字典序一 ...

  7. [luogu P2647] 最大收益(贪心+dp)

    题目传送门:https://www.luogu.org/problem/show?pid=2647 题目描述 现在你面前有n个物品,编号分别为1,2,3,--,n.你可以在这当中任意选择任意多个物品. ...

  8. uoj #31. 【UR #2】猪猪侠再战括号序列 贪心

    #31. [UR #2]猪猪侠再战括号序列 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/31 Descript ...

  9. BZOJ5092:[Lydsy1711月赛]分割序列(贪心,高维前缀和)

    Description 对于一个长度为n的非负整数序列b_1,b_2,...,b_n,定义这个序列的能量为:f(b)=max{i=0,1,...,n}((b_1 xor b_2 xor...xor b ...

随机推荐

  1. 倍增模板orz

    #include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #i ...

  2. ACM学习历程—HDU5490 Simple Matrix (数学 && 逆元 && 快速幂) (2015合肥网赛07)

    Problem Description As we know, sequence in the form of an=a1+(n−1)d is called arithmetic progressio ...

  3. 洛谷P2878 [USACO07JAN]保护花朵Protecting the Flowers

    题目描述 Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. ...

  4. 苹果公司CEO乔布斯在斯坦福大学毕业典礼上的演讲

    苹果公司CEO乔布斯在斯坦福大学毕业典礼上的演讲 摘要:这是苹果公司CEO乔布斯2005年在斯坦福大学毕业典礼上的演讲,大学途中退学,创业,被解雇,东山再起,死亡威胁,这些他都一一经历了.经营自己与众 ...

  5. poj 1273 Drainage Ditches(最大流,E-K算法)

    一.Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clove ...

  6. 类方法,实例方法,静态方法,@property的应用

    class test(object): h = 'hello' w = 'world' def demo(self): print("demo") def test_class(s ...

  7. 二 kafka设计原理

    kafka的设计初衷是希望作为一个统一的信息收集平台,能够实时的收集反馈信息,并需要能够支撑较大的数据量,且具备良好的容错能力. 1.持久性     kafka使用文件存储消息,这就直接决定kafka ...

  8. tar 排除某个目录

    tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs tomcat

  9. 推荐!Html5精品效果源码分享

    一直在看别人的汇总,看到了一些不错的关于 HTML5内容的源码,我也汇总下分享出来,好东西需要共享!希望可以帮到需要的朋友. 1.劲爆分享:HTML5动感的火焰燃烧动画特效 这又是一款基于HTML5的 ...

  10. C++知识点总结(二)

    1.字符串的部分拷贝 ① 利用标准库函数strncpy(),可以将一字符串的一部分拷贝到另一个字符串中.strncpy()函数有3个参数:第一个参数是目录字符串:第二个参 数是源字符串:第三个参数是一 ...