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#实现,C++实现,JS实现 阿拉伯数字金额转换为中文大写金额
推荐在线编译器 ideone 1. C#实现 :带有负数处理 //把数字金额转换成中文大写数字的函数 //带有负值处理 function changeNumMoneyToChinese(money) ...
- 字符串和ASCII之间的转换
public class CharToAscii { public static void main(String[] args) { CharToAscii.AscToString(); CharT ...
- CentOS7安装使用ab压力测试工具
执行安装命令:yum -y install httpd-tools 安装完毕,执行:ab -help,显示命令参数 命令模板:ab -c 100 -n 10000 待测试网站(建议完整路径) -c 即 ...
- PreparedStement 用户登录!
一.准备工作 在qy66数据库下,新建一个denglu表.添加 name password . package cn.zhouzhou; import java.sql.Connection; im ...
- LODOP直接用base64码输出图片
Lodop中的ADD_PRINT_IMAGE,也可以直接输出base64码图片,不用加img标签,如果加了img标签,会被当做超文本对待,受浏览器引擎解析的影响. 什么时候使用base64码直接输出比 ...
- 定位linux jdk安装路径
如何在一台Linux服务器上查找JDK的安装路径呢? 有那些方法可以查找定位JDK的安装路径?是否有一些局限性呢? 下面总结了一下如何查找JDK安装路径的方法. 1:echo $JAVA_HOME 使 ...
- 学习 Spring (十二) AOP 基本概念及特点
Spring入门篇 学习笔记 AOP: Aspect Oriented Programming, 通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术 主要功能是:日志记录.性能统计.安全控 ...
- Vue渲染函数
前面的话 Vue 推荐在绝大多数情况下使用 template 来创建HTML.然而在一些场景中,真的需要 JavaScript 的完全编程的能力,这就是 render 函数,它比 template 更 ...
- Nginx geoip模块
需要编译进 --with-http_geoip_module 首先要安装maxMind里的geoip的c开发库 https://dev.maxmind.com/geoip/legacy/downloa ...
- Vuex以及axios
Vuex 简介 vuex是一个专门为Vue.js设计的集中式状态管理架构. 状态? 我们把它理解为在data中需要共享给其他组件使用的部分. Vuex和单纯的全局对象有以下不同: 1.Vuex 的状态 ...