思路分析://感谢写文博主
思路:相信大多数人和我一样在比赛的时候把这题想的太简单了_(:з」∠)_ 这题和去年的最后一题很类似,就是分类讨论,去年放在了最后一题,今年在倒数第二题,说明难度不算太难,分析出来了就会觉得emmm好坑……那么下面开始分析,我是按照符号的个数和负数的个数来分类讨论的:
①负号个数为0,那么没有办法只能全加
②负号个数等于负数个数,那么减去所有负数就能得到最大结果
③负号个数小于负数个数,可以通过加号的补充来达到上一种情况的效果的
比如(6 5 -4 -3 -2 -1),有1个减号,那么可以变成 6 + 5 - ( -4 + -3 + -2 + -1 ) ;有2个减号,那么可以变成 6 + 5 - -4 - ( -3 + -2 + -1 )  ;有3个减号,那么可以变成6 + 5 - -4 - -3 - ( -2 + -1 ) 
④负号个数大于负数个数,那么先把负数都减掉,然后再减较小的正数
综上所述,第一种是直接求和,第二种和第三种是可以合并的,即求绝对值和,第四种是先求和再减去多余负号个数的小正数。
————————————————
版权声明:本文为CSDN博主「ryo_218」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ryo_218/article/details/89515960
 
我的代码:
 #include<cstdio>
#include<cstring>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int n,lenth;
int m;//减号个数
int minus_num;//负数的个数
const int maxn = ;
int aim[maxn]; int solve()
{
int ans=;
if(m==)
{
for(int i=;i<lenth;i++)
ans+=aim[i];
return ans;
}
if(m<=minus_num)
{
for(int i=;i<minus_num;i++)
{
ans+=aim[i];
}
ans=-ans;
for(int i=minus_num;i<lenth;i++)
{
ans+=aim[i];
}
return ans;
}
if(m>minus_num)
{
for(int i=;i<minus_num;i++)
{
ans+=aim[i];
}
ans=-ans;
for(int i=minus_num;i<m;i++)
{
ans+=(-aim[i]);
}
for(int i=m;i<lenth;i++)
{
ans+=aim[i];
}
return ans;
}
return ;
} int main()
{
memset(aim,,sizeof(aim));
cin>>n>>m;
lenth=n+m+;
for(int i=;i<lenth;i++)
{
int a;cin>>a;
if(a<)minus_num++;
aim[i]=a;
}
sort(aim,aim+lenth);
printf("%d\n",solve());
return ;
}

转载的博主的代码:

 #include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
#include<queue>
#include<map>
#include<set>
using namespace std;
long long pos[]={};
long long neg[]={}; int main()
{
int n,m,p=,q=;
cin>>n>>m;
long long ans=;
for(int i=;i<n+m+;i++)
{
long long num;
cin>>num;
ans+=num;
if(num>)//记录正数
pos[p++]=num;
else//记录非正数
neg[q++]=num;
}
if(m==)//负号个数为0
cout<<ans<<endl;
else if(m<q)//负号个数小于负数个数
{
for(int i=;i<q;i++)
ans-=neg[i]*;//第一遍相当于减掉了一次负数绝对值,第二遍时要补2倍
cout<<ans<<endl;
}
else//负号个数大于负数个数
{
for(int i=;i<q;i++)
ans-=neg[i]*;
sort(pos,pos+p);
for(int i=;i<m-q;i++)
ans-=pos[i]*;//第一遍已经加了一次正数,去掉时要减2倍
cout<<ans<<endl;
}
return ;
}

第十届蓝桥杯CB题目I-分析的更多相关文章

  1. 第十届蓝桥杯省赛JavaB组个人题解

    前言 以下的第十届蓝桥杯Java B组省赛的题目题解只是我个人的题解,提供一些解题思路,仅作参考,如有错误,望大家指出,不甚感激,我会及时更改. 试题 A: 组队 ----- 答案:490 [问题描述 ...

  2. 第十届蓝桥杯2019年C/C++ 大学B组省赛试题

    2019年第十届蓝桥杯大赛软件类省赛C/C++大学B组 试题 A:组队 本题总分:5分 [问题描述] 作为篮球队教练,你需要从以下名单中选出 1号位至 5号位各一名球员, 组成球队的首发阵容. 每位球 ...

  3. 2019第十届蓝桥杯C++B组题解(赛后重写的,不确保答案正确性,仅供参考)

    先说一下这次的感受吧,我们考场比较乱,开始比赛了,还有的电脑有故障,(向这些人发出同情),第一次认真参加比赛,真正比赛的时候感觉没有那么正式,很乱,各种小问题,(例如博主就没找到题目在哪里,找到后又不 ...

  4. 2019年第十届蓝桥杯【C++省赛B组】

    试题 A: 组队 本题总分:5 分 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容.每位球员担任 1 号位至 5 号位时的评分如下表所示.请你计算首发阵容 ...

  5. 第十届蓝桥杯JavaB组省赛真题

    试题 A: 组队 本题总分:5 分 [问题描述] 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容. 每位球员担任 1 号位至 5 号位时的评分如下表所示. ...

  6. 第十届蓝桥杯JavaC组省赛真题

    试题 A: 求和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1.2.9.10 至 32.39 和 40,共 28 个,他们的 ...

  7. 2019 第十届蓝桥杯大赛软件类省赛 Java A组 题解

    2019 第十届蓝桥杯大赛软件类省赛 Java A组 试题A 题解 ​ 题目最后一句贴心的提示选手应该使用 long (C/C++ 应该使用 long long). ​ 本题思路很直白,两重循环.外层 ...

  8. Java实现第十届蓝桥杯JavaC组第十题(试题J)扫地机器人

    扫地机器人 时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分 [问题描述] 小明公司的办公区有一条长长的走廊,由 N 个方格区域组成,如下图所 示. 走廊内部署了 K 台扫地机器人 ...

  9. Java实现第十届蓝桥杯外卖店优先级

    试题 G: 外卖店优先级 时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分 [问题描述] "饱了么"外卖系统中维护着 N 家外卖店,编号 1 ∼ N.每家外卖店 ...

随机推荐

  1. 《快乐编程大本营》java语言训练班-第4课:java流程控制

    <快乐编程大本营>java语言训练班-第4课:java流程控制 第1节. 顺序执行语句 第2节. 条件分支语句:if条件语句 第3节. 条件分支语句:switch 条件语句 第4节. 条件 ...

  2. kubernetes中node心跳处理逻辑分析

    最近在查看一个kubernetes集群中node not ready的奇怪现象,顺便阅读了一下kubernetes kube-controller-manager中管理node健康状态的组件node ...

  3. 【Detection】物体识别-制作PASCAL VOC数据集

    PASCAL VOC数据集 PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge 默认为20类物体 1 数据集结构 ...

  4. Codeforces 1087B Div Times Mod(数学+暴力)

    题意: 求(x div k) * (x mod k) = n的最小解x,保证有解 1<=n<=1e6, k<=1000,1s 思路: 注意到k的范围是1e3, 1<=x mod ...

  5. PHP5.3的VC9、VC6、Thread Safe、Non Thread Safe的区别

    PHP一共给了四个版本,VC9 x86 Non Thread Safe.VC9 x86 Thread Safe.VC6 x86 Non Thread Safe.VC6 x86 Thread Safe, ...

  6. shell脚本 定期删除日志

    定期删除日志: 然后建立清除日志文件的shell脚本,文件名为clean_log只保留最近三天的日志     #! /bin/bashlogdir=/var/log/httpdcd ${logdir} ...

  7. 珠峰-express

    ##### #### 中间件的作用 #### 自己写的Route方法 #### #### 中间件

  8. Deepin下将Caps映射为Control_L键

    xmodmap -e 'clear Lock' -e 'keycode 0x42 = Control_L'

  9. mysql实现远程登录

    CentOS7上安装mysql后,想要实现mysql远程登录. 主要解决二个问题:(1)为mysql用户授予远程登录权限(改表法或授权法):(2)防火墙开放3306端口. (一)授予登录权限 mysq ...

  10. 升级了NinjaLoveFish Excel量化表格

    为了方便查看均价和止盈值,新建了两列 这样做的好处就是,针对一个股票,可以实现不同的多个网格布局,然后分别实现各自的盈利设定. 例如这是网格1 那么同时也可以存在网格2 就可以实现多个网格布局到一个股 ...