Codeforces Round #508 (Div. 2) C D
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;
;
}
给你一个序列 每次可以选两个相邻的数 组合成一个新的数 结果为 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的更多相关文章
- Codeforces Round #508 (Div. 2)
Codeforces Round #508 (Div. 2) http://codeforces.com/contest/1038 A #include<bits/stdc++.h> us ...
- Codeforces Round #508 (Div. 2) E. Maximum Matching(欧拉路径)
E. Maximum Matching 题目链接:https://codeforces.com/contest/1038/problem/E 题意: 给出n个项链,每条项链左边和右边都有一种颜色(范 ...
- Codeforces Round #508 (Div. 2) D. Slime
D. Slime 题目链接:https://codeforces.com/contest/1038/problem/D 题意: 给出两个数,然后每次可以对相邻的两个数合并,比如x,y,那么合并过后就是 ...
- [Codeforces Round #508 (Div. 2)][Codeforces 1038E. Maximum Matching]
前几天给舍友讲这题的时候感觉挺有意思的,就贴上来吧... 题目链接:1038E - Maximum Matching 题目大意:有\(n\)个棒子,每个条两端有颜色\(c1,c2\)以及他的价值\(v ...
- 题解——Codeforces Round #508 (Div. 2) T3 (贪心)
贪心的选取最优解 然后相减好 记得要开long long #include <cstdio> #include <algorithm> #include <cstring ...
- 题解——Codeforces Round #508 (Div. 2) T2 (构造)
按照题意构造集合即可 注意无解情况的判断 #include <cstdio> #include <algorithm> #include <cstring> #in ...
- 题解——Codeforces Round #508 (Div. 2) T1 (模拟)
依照题意暴力模拟即可A掉 #include <cstdio> #include <algorithm> #include <cstring> #include &l ...
- Codeforces 1038F Wrap Around (Codeforces Round #508 (Div. 2) F) 题解
写在前面 此题数据量居然才出到\(n=40\)???(黑人问号)以下给出一个串长\(|S|=100,n=10^9\)的题解. 题目描述 给一个长度不超过\(m\)的01串S,问有多少个长度不超过\(n ...
- Codeforces Round #508 (Div. 2)【A,B,C,D】【实验室日常周赛训练】
#include<bits/stdc++.h> using namespace std; #define inf 0x3f3f3f3f3f3f #define int long long ...
随机推荐
- C#复习笔记(2)--C#1所搭建的核心基础
通过对C#1所搭建的核心基础的深入了解,可以知道之后的C#版本在C#1的基础上做了很多扩展,而这些扩展都是基于C#搭建的核心基础而来的. 委托 一.编写委托的过程 委托经常和C语言的“函数指针”挂钩. ...
- mysql实现首字母从A-Z排序
1.常规排序ASC DESC ASC 正序 DESC倒叙 -- 此处不用多讲 2.自定义排序 自定义排序是根据自己想要的特定字符串(数字)顺序进行排序.主要是使用函数 FIELD(str,str1,s ...
- Python 中关于 round 函数的小坑
参考: http://www.runoob.com/w3cnote/python-round-func-note.html
- 图解Python的直接赋值与浅拷贝和深度拷贝三者区别
直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象 ...
- Session和Cookie介绍及常见httpcode
Cookie和Session,及常见httpcode 1.cookie和session简介: cookie是放在客户端的键值对,用来识别用户信息的,主要包括:名字,值,过期时间,路径和域.路径与域一起 ...
- 莫烦theano学习自修第七天【回归结果可视化】
1.代码实现 from __future__ import print_function import theano import theano.tensor as T import numpy as ...
- endnote中文格式“,等”的修改
https://www.howsci.com/endnote-eng-cn-refer-etal.html
- servlet篇 之 servlet的访问
三:servlet的访问 使用web.xml文件中的这个<url-pattern>标签中的映射路径,来访问servlet 6.1 在浏览器的地址栏中,直接输入servlet映射的路径来访问 ...
- BZOJ 1443 游戏(二分图博弈)
新知识get. 一类博弈问题,基于以下条件: 1.博弈者人数为两人,双方轮流进行决策.2.博弈状态(对应点)可分为两类(状态空间可分为两个集合),对应二分图两边(X集和Y集).任意合法的决策(对应边) ...
- CSS3选择器之属性选择器
一.属性选择器 1.E[foo^="bar"]:该属性选择器描述的是选择属性以bar开头的元素,如: //所有以名称g_开头的div的字体颜色为红色div[name^=" ...