Code:

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
void setIO(string a){freopen((a+".in").c_str(),"r",stdin),freopen((a+".out").c_str(),"w",stdout);}
void shutIO(){ fclose(stdin),fclose(stdout);} #define ll long long
#define maxn 50
int arr[maxn],brr[maxn],p[maxn];
int A[5000000],B[5000000],cnta,cntb;
bool cmp1(int i,int j){return i<j;} //min->max
bool cmp2(int i,int j){return i>j;} //max->min
int main(){
//setIO("sweet");
int n,mod,l,r;
scanf("%d%d",&n,&mod);
l=n/2,r=n-l;
for(int i=1;i<=l;++i)scanf("%d",&arr[i]);
for(int i=1;i<=r;++i)scanf("%d",&brr[i]);
for(int i=1;i<=22;++i) p[i]=(1<<i);
for(int sta=1;sta<p[l];++sta){
int k=sta,len=1,sum=0;
while(k>0){
if(k&1) sum=((ll)(sum+arr[len])%mod);
++len;
k>>=1;
}
A[++cnta]=sum;
}
for(int sta=1;sta<p[r];++sta){
int k=sta,len=1,sum=0;
while(k>0){
if(k&1) sum=((ll)(sum+brr[len]))%mod;
++len;
k>>=1;
}
B[++cntb]=sum;
}
sort(A+1,A+1+cnta,cmp1);
sort(B+1,B+1+cntb,cmp2);
int i,j,ans=0;
for(i=1,j=1;i<=cnta&&j<=cntb;){
while(A[i]+B[j]>=mod && j<=cntb) ++j;
if(j>cntb) break;
while(A[i]+B[j]<mod && i<=cnta) ans=max(ans,A[i]+B[j]),++i;
if(i>cnta) break;
} sort(A+1,A+1+cnta,cmp2);
sort(B+1,B+1+cntb,cmp1);
for(i=1,j=1;i<=cnta&&j<=cntb;){
while(A[i]+B[j]>=mod && i<=cnta) ++i;
if(i>cnta) break;
while(A[i]+B[j]<mod && j<=cntb) ans=max(ans,A[i]+B[j]),++j;
if(j>cntb) break;
}
printf("%d",ans);
// shutIO();
return 0;
}

  

888E - Maximum Subsequence 中途相遇法的更多相关文章

  1. uva 6757 Cup of Cowards(中途相遇法,貌似)

    uva 6757 Cup of CowardsCup of Cowards (CoC) is a role playing game that has 5 different characters (M ...

  2. LA 2965 Jurassic Remains (中途相遇法)

    Jurassic Remains Paleontologists in Siberia have recently found a number of fragments of Jurassic pe ...

  3. HDU 5936 Difference 【中途相遇法】(2016年中国大学生程序设计竞赛(杭州))

    Difference Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  4. 【中途相遇法】【STL】BAPC2014 K Key to Knowledge (Codeforces GYM 100526)

    题目链接: http://codeforces.com/gym/100526 http://acm.hunnu.edu.cn/online/?action=problem&type=show& ...

  5. 高效算法——J 中途相遇法,求和

    ---恢复内容开始--- J - 中途相遇法 Time Limit:9000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Su ...

  6. Codeforces 888E - Maximum Subsequence(折半枚举(meet-in-the-middle))

    888E - Maximum Subsequence 思路:折半枚举. 代码: #include<bits/stdc++.h> using namespace std; #define l ...

  7. 【UVALive】2965 Jurassic Remains(中途相遇法)

    题目 传送门:QWQ 分析 太喵了~~~~~ 还有中途相遇法这种东西的. 嗯 以后可以优化一些暴力 详情左转蓝书P58 (但可能我OI生涯中都遇不到正解是这个的题把...... 代码 #include ...

  8. uva1152 - 4 Values whose Sum is 0(枚举,中途相遇法)

    用中途相遇法的思想来解题.分别枚举两边,和直接暴力枚举四个数组比可以降低时间复杂度. 这里用到一个很实用的技巧: 求长度为n的有序数组a中的数k的个数num? num=upper_bound(a,a+ ...

  9. LA 2965 中途相遇法

    题目链接:https://vjudge.net/problem/UVALive-2965 题意: 有很多字符串(24),选出一些字符串,要求这些字符串的字母都是偶数次: 分析: 暴力2^24也很大了, ...

随机推荐

  1. xBIM 实战01 在浏览器中加载IFC模型文件

    系列目录    [已更新最新开发文章,点击查看详细]  一.创建Web项目 打开VS,新建Web项目,选择 .NET Framework 4.5  选择一个空的项目 新建完成后,项目结构如下: 二.添 ...

  2. HTTP的请求及响应

    前言 本文主要包括以下内容: HTTP是什么? HTTP 请求包括哪些部分? HTTP 响应包括哪些部分? 如何用Chrome开发者工具查看 HTTP 请求及请求的内容? 如何使用 curl 命令? ...

  3. STM8S103之串口

    1.串口发送中断标志的清除,只能靠往UART_DR中写数据,这个的本质含义是,发送中断是指发送完成中断,所以往UART_DR中写数据可以清除发送中断标志.但是这样又会导致新写的数据完成后又会产生中断, ...

  4. The Structure of an App-ios应用架构-MVC

    During startup, the UIApplicationMain function sets up several key objects and starts the app runnin ...

  5. RocketMQ学习笔记(3)----RocketMQ物理结构和逻辑部署结构

    1. RocketMQ的物理结构 RecketMQ网络部署的特点: Name Server是一个几乎无状态特点,可集群部署,节点之间无任何信息同步的(相对于zookeeper是较为轻量级的). Bro ...

  6. 2017-2-10 bash基础脚本

    练习:写一脚本,实现如下功能: 1.让用户通过键盘输入一个用户名,如果用户不存在就退出: 2.如果其UID等于其GID,就说它是个"good guy" 3.否则,就说它是个“bad ...

  7. 搭建ss总结

    今天晚上做的事情: 1. https://www.vultr.com/ 购买vps 2. ssh连接到服务器 参照网上帖子安装 https://blog.csdn.net/littlepig19930 ...

  8. k8s使用ceph存储

    目录 ceph配置 k8s 配置 通过静态pv,pvc使用ceph 测试多pod挂载静态pv数据不一致问题 StoragaClass 方式 ceph 常用命令 k8s 常用命令 k8s各类端口及IP说 ...

  9. 【codeforces 20B】Equation

    [题目链接]:http://codeforces.com/contest/20/problem/B [题意] 给你一个方程,让你输出这个方程的解的情况. [题解] a==0,b==0,c==0时,为恒 ...

  10. ActiveMQ maven

    http://outofmemory.cn/java/mq/apache-activemq-demo