C: C - Gambling

给你两个数列  每一回合A可以选择从第一个序列里面选一个数或者清除第二个序列里面选一个数 同理B能从第二序列里面选数或者清除第一个序列里面一个数

然后 求A所选的数之和-B所选数之和最大

贪心就行 两个优先队列每次比较另外一个序列最大的数是比自己序列最大的数大还是小 大就删除另一个序列的数 小就加上自己序列最大的数

可能会爆int  QAQ

#include<bits/stdc++.h>
using namespace std;
#define LL long long
priority_queue <LL ,vector<LL >,less<LL > >q,w;
int  main(){
    LL  n;
    cin>>n;
    ;j<n;j++){
       LL  x;
       cin>>x;
       q.push(x);
    }
    ;j<n;j++){
       LL  x;
       cin>>x;
       w.push(x);
    }
    ;j<n/;j++){
       q.push();
       w.push();
    }
    LL  l=;
    LL  ans=,ans1=;
    while(!q.empty()&&!w.empty()){
       LL  x=q.top(),y=w.top();
       ==){
          if(x<y) w.pop();
          else{
             ans+=x;
             q.pop();
          }
       }else{
          if(x>y) q.pop();
          else{
             ans1+=y;
             w.pop();
          }
       }
       l++;
    }
    cout<<ans-ans1<<endl;

    ;
}

D - Slime

给你一个序列 每次可以选两个相邻的数 组合成一个新的数 结果为 A-B

让你求当合并到一个数的时候求这个数的最大值

当全是正数(>=0) 或者全是负数的时候直接求出来最大最小 然后序列求和 减去最大或者最小*2 就可以了

当正负数组合时 就直接对序列求和

当时没考虑完全 代码有点乱

#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define inf 0x3f3f3f3f
#define maxn 500000+50
LL a[maxn];
int main(){
  ;
  cin>>n;
  ;
  ;j<n;j++){
     scanf("%lld",&a[j]);
     ) fa=;
  }
  ) cout<<a[]<<endl;
  ){
      cout<<max(a[]-a[],a[]-a[])<<endl;
  }else{
      LL ans=;
      ){
         LL mi=inf;
         ;j<n;j++){
            mi=min(mi,a[j]);
            ans+=abs(a[j]);
         }
         ans-=mi*;
         cout<<ans<<endl;
         ;
      }else{
         LL i=;
         ;j<n;j++){
             ) i++;
         }
         if(i!=n){
            ;j<n;j++){
               ans+=abs(a[j]);
            }
            cout<<ans<<endl;
            ;
         }else{
             LL mi=-inf;
             ;j<n;j++){
                mi=max(mi,a[j]);
                ans+=abs(a[j]);
             }
             ans+=mi*;
             cout<<ans<<endl;
             ;
         }
      }
  }
  ;
}

Codeforces Round #508 (Div. 2) C D的更多相关文章

  1. Codeforces Round #508 (Div. 2)

    Codeforces Round #508 (Div. 2) http://codeforces.com/contest/1038 A #include<bits/stdc++.h> us ...

  2. Codeforces Round #508 (Div. 2) E. Maximum Matching(欧拉路径)

     E. Maximum Matching 题目链接:https://codeforces.com/contest/1038/problem/E 题意: 给出n个项链,每条项链左边和右边都有一种颜色(范 ...

  3. Codeforces Round #508 (Div. 2) D. Slime

    D. Slime 题目链接:https://codeforces.com/contest/1038/problem/D 题意: 给出两个数,然后每次可以对相邻的两个数合并,比如x,y,那么合并过后就是 ...

  4. [Codeforces Round #508 (Div. 2)][Codeforces 1038E. Maximum Matching]

    前几天给舍友讲这题的时候感觉挺有意思的,就贴上来吧... 题目链接:1038E - Maximum Matching 题目大意:有\(n\)个棒子,每个条两端有颜色\(c1,c2\)以及他的价值\(v ...

  5. 题解——Codeforces Round #508 (Div. 2) T3 (贪心)

    贪心的选取最优解 然后相减好 记得要开long long #include <cstdio> #include <algorithm> #include <cstring ...

  6. 题解——Codeforces Round #508 (Div. 2) T2 (构造)

    按照题意构造集合即可 注意无解情况的判断 #include <cstdio> #include <algorithm> #include <cstring> #in ...

  7. 题解——Codeforces Round #508 (Div. 2) T1 (模拟)

    依照题意暴力模拟即可A掉 #include <cstdio> #include <algorithm> #include <cstring> #include &l ...

  8. Codeforces 1038F Wrap Around (Codeforces Round #508 (Div. 2) F) 题解

    写在前面 此题数据量居然才出到\(n=40\)???(黑人问号)以下给出一个串长\(|S|=100,n=10^9\)的题解. 题目描述 给一个长度不超过\(m\)的01串S,问有多少个长度不超过\(n ...

  9. Codeforces Round #508 (Div. 2)【A,B,C,D】【实验室日常周赛训练】

    #include<bits/stdc++.h> using namespace std; #define inf 0x3f3f3f3f3f3f #define int long long ...

随机推荐

  1. Java Map 集合实现类

    Map 用于保存具有映射关系的数据,集合里会保存两组值,一组用于保存Map里的key,一组用于保存Map里的value,key与map可以是任何引用类型数据.Map的key不允许重复.key与valu ...

  2. linux安装httpd,做文件服务器

    在一个团队或者公司层面上,做一个本地的文件服务器,将网上的资源下载到本地,是有必要的.这将节省其他人的很多下载时间. >>提君博客原创  http://www.cnblogs.com/ti ...

  3. mac 中登陆mysql忘记密码解决办法

    1.打开终端,输入命令:cd /usr/local/mysql/bin 2.mysql -uroot -p,用这条命令登陆时报错信息: 报错:Enter password: ERROR 1045 (2 ...

  4. Hbase存储流程

  5. Python——组图Canvas控制参数

    一.参数说明 background(bg) : 背景色; foreground(fg): 前景色; borderwidth :组件边框宽度: width  : 组件宽度: height  : 高度; ...

  6. onbeforeunload事件两种写法及效果

    在符合W3C标准的浏览器里,可以使用addEventListener方法来添加事件. 当不需要为一个事件添加多个处理函数的时候,可以简单的使用onXXX=function(){}的方式来添加事件处理函 ...

  7. Linux 学习 (二) 文件处理命令

    Linux达人养成计划 I 学习笔记 ls [选项] [文件或目录] -a: 显示所有文件,包括隐藏文件 -l: 显示详细信息 -d: 查看目录属性 -h: 人性化显示文件大小 -i: 显示inode ...

  8. matlab中randn(‘state’)

    matlab中randn(‘state’)转载:http://www.cnblogs.com/rong86/p/3572284.html randn('state') 随机数都是由RandStream ...

  9. Web API2 使用默认Identity

    当您选择个人账户在Web API项目模板,项目包含一个令牌授权服务器验证用户凭证和问题.下面的图显示了相同的凭证流的Web API组件. 发送一个未经授权的请求 首先,运行应用程序并单击按钮调用的AP ...

  10. codeforces231C

    To Add or Not to Add CodeForces - 231C A piece of paper contains an array of n integers a1, a2, ..., ...