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. 2 Interrupting Appropriately

    1 Interrupting someone politely e.g. Excuse me for interrupting, but may I ask a question? Sure. Of ...

  2. POJ_1185_炮兵阵地 dp+状态压缩

    题目:炮兵阵地 链接:http://poj.org/problem?id=1185 解题思路: 首先用 int 来表示每一行的情况,比如说第一行是k1,那么[ k1&(k1>>2) ...

  3. SQL年月日格式化

    Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16

  4. MyBatis映射文件4(参数获取#{}和${}/select标签详解[返回类型为list])

    参数获取 之前我们都是采用#{}的方式进行参数传递,其实MyBatis还有另外的参数传递方式${} 使用方法相同,但是还是有很大区别的 这里做一个测试: <select id="get ...

  5. 在 Ubuntu14.04 上搭建 Spark 2.3.1(latest version)

    搭建最新的 Spark 2.3.1 . 首先需要下载最新版 jdk .目前 2.3.1 需要 8.0 及其以上 jdk 才可以允许. 所以如果你没有 8.0  jdk 安装好了之后会报错.不要尝试安装 ...

  6. dentry path_lookat dput

    https://www.ibm.com/developerworks/cn/linux/l-cn-usagecounter/index.html https://blog.csdn.net/young ...

  7. python学习笔记(11)--数据组织的维度

    数据的操作周期 存储  -- 表示 -- 操作 一维数据表示 如果数据有序,可以使用列表[]:如果数据没有顺序,可以使用集合{} 一维数组存储 存储方式一:空格分隔 ,使用一个或多个空格分隔进行分隔, ...

  8. 9.Pod控制器概念和基本操作2

    利用一个简单的例子来启动一个deployment的Pod控制器 [root@master song]# cat deploy.yml apiVersion: apps/v1 kind: Deploym ...

  9. opencv imdecode和imencode用法

    主要是对内存数据自动编解码 string fname = "D:/image.jpg"; //! 以二进制流方式读取图片到内存 FILE* pFile = fopen(fname. ...

  10. gym-101350D

    题意:给你一个数组,你每次可以是其中一个数减一,数组其他元素加一,问是否能够相等,这个数组的所有元素. 解题思路:将数组从小到大排序,只要后一项减去当前项的值是奇数就行了. 代码: #include& ...