当前位置: 首页 > wzjs >正文

佛山专业网站建设报价我赢网seo优化网站

佛山专业网站建设报价,我赢网seo优化网站,黑帽seo优化推广,网页制作的原则是什么1 题目描述 2 题解 这道题一上来就排序,排序把大的加起来,小的减去,喜提30分,以为是送分题,实际是坑分题。 如果给的全是加号,那只能全加起来,没话说对吧,所以输入n, m时&#x…

1 题目描述
在这里插入图片描述

2 题解

这道题一上来就排序,排序把大的加起来,小的减去,喜提30分,以为是送分题,实际是坑分题。

如果给的全是加号,那只能全加起来,没话说对吧,所以输入n, m时,m如果等于0(说明没有减号),那就一个循环把输入的值全都加起来。

如果给了至少一个负号,那你就可以构造多个负号,为啥呢,因为你可以加括号,从中缀表达式(正常的,平时数学上学的表达式)转到后缀表达式会去掉括号,就是说后缀表达式没有括号。为啥可以通过括号构造多个负号呢,看下图:
在这里插入图片描述
说明只要有负号就可以构造1n+m个负号对吧,因为不能把负号消失,有负号可以构造1n+m个负号,而不是0~n+m个负号,只要有负号就至少要减去一个数。

如果你有多个负号,只有一个加号,你也可以构造多个加号,如下图:
在这里插入图片描述

我上面巴拉巴拉一大堆,核心意思就是,只要有一个负号,你就能通过加括号的方式,创造出1~n+m个负号,但因为至少会存在一个负号,所以至少会减去一个数,所以需要减去一个最小的数,这样可以让结果更大一点。除了减去的这个最小的数,其他的数都可以被任意构造成加法和减法,因此如果是负数,就减去这个负数,如果是正数,就加上这个正数,这样结果最大。

如果不带任何负号,那这种情况就没法构造1~n+m个负号了对吧,因为都没负号,所以直接把所有的数全都加起来就行。

3 代码

#include<iostream>
#include<algorithm>
#include<functional>
using namespace std;const int N=200010;long long a[N];int main(){int n,m;cin>>n>>m;for(int i=0;i<n+m+1;i++){cin>>a[i];}sort(a,a+(n+m+1),greater<int>()); // 降序排序,这样能获得最小的值,也可以升序排序,不影响,只是可以学习以下用greater<int>()构造降序排序的数组long long s=a[0];if(m==0){ // 如果没有减号for(int i=1;i<n+m+1;i++){s+=a[i];}}else{ // 如果有一个减号,就可以构造多个减号 for(int i=1;i<n+m;i++){s+=abs(a[i]);}s-=a[n+m]; // 如果有一个减号,那么至少有一个数字被减 }cout<<s;
}
http://www.dtcms.com/wzjs/334262.html

相关文章:

  • 星链seo管理长沙网站托管seo优化公司
  • 网站建设好后能直接打开吗武汉seo网站优化排名
  • 西安网站建设盈科百度企业
  • 网站百度seo推广怎么做十大外贸平台
  • 设计参考图网站市场营销策划案的范文
  • 怎么做视频网站百度官方平台
  • 网站推广服务合同模板怎样优化网站排名
  • 打鱼跟电子游戏网站怎么做谷歌seo营销
  • 做餐饮如何加入外卖网站seo怎么优化软件
  • 网站seo教程网页制作模板
  • 宜昌平台网站建设英语培训机构前十名
  • 做国外网站建设推广产品引流的最佳方法
  • 做网站哪家seo优化技巧有哪些
  • 最牛黑客做的白粉交易网站爱站网关键词查询网站
  • 高端的网站建设网络营销比较常用的营销模式
  • 想让网站的文章都被收录怎么做手游推广渠道平台
  • 黔西南州网站建设公司郑州seo服务
  • 注册网站有什么风险吗最新消息
  • 自己做盗版小说网站吗企业培训心得
  • 网站打开速度很慢视频号链接怎么获取
  • 浙江网站建设流程爱站网关键词搜索
  • 西安网站设计方案seo自动推广工具
  • 安庆公司做网站培训计划模板
  • 深圳电商网站建设公司百度网页版登录首页
  • 开发网站开票写什么如何写推广软文
  • wordpress主题异次元软件世界北京seo费用是多少
  • 编辑网页用什么软件seo优化的内容有哪些
  • 自己切片做网站游戏推广怎么做挣钱
  • 在郑州做网站国内做网站的公司
  • 河北省企业信用信息查询公示系统四川seo