Codeforces Tutorial

A. Yaroslav and Sequence

Problem Analysis

1、当n为奇数的时候,变换n个可以一次增加或减少1个负数,这样可以直到有n个负数,然后全变为整数ok
2、当n为偶数的时候,变换n个可以一次增加或减少2个负数,所以当有偶数个负数时都可以变为正数,当有奇数个负数时,最大和为(绝对值最小的那个为负数,其余的都为正数)。

用例子解释一下上面的内容。

  • n为奇数
    不妨设n=5,有序列-1,-1,-1,-1,-1,-1,-1,-1,-1。可以发现,始终可以做到使得负数的个数小于n/2。序列变为1,1,1,1,1,-1,-1,-1,-1。然后选取n/2+1个正数,n/2个负数,就可以增加一个负数。上例就是是选择312-1。序列变为1,1,1,1,-1,-1,-1,-1,-1。然后一步变为全正。
  • n为偶数
    思路与奇数一样,不同的是对n的划分,n只能划分为n/2-1n/2+1

Acepted Code

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
#include<cmath>
#include<map>
#include<istream>
#include<cassert>
#include<set>
#define DEBUG(x) cout<<#x<<" = "<<x<<endl
#define DEBUG2(x,y) cout<<#x<<" = "<<x<<" , "\
<<#y<<" = "<<y<<endl
using namespace std;
typedef long long ll;
const int MAXN=300;
int n;
int a[MAXN];
int main()
{
//    freopen("in.txt","r",stdin);scanf("%d",&n);for(int ii=0;ii<2*n-1 ;ii++ ){scanf("%d",&a[ii]);}int ans=0;if(n%2){for(int ii=0;ii<2*n-1 ;ii++ ){ans+=abs(a[ii]);}}else {int cnt=0;int absmin=1e9;for(int ii=0;ii<2*n-1 ;ii++ ){if(a[ii]<0)cnt++;absmin=min(absmin,abs(a[ii]));ans+=abs(a[ii]);}if(cnt%2)ans-=2*absmin;}printf("%d\n",ans);
}

Wrong Answer Cases

What I Learn

  • 奇偶性遇到的比较多

Reference

https://blog.csdn.net/xh_reventon/article/details/8892546

转载于:https://www.cnblogs.com/MalcolmMeng/p/10945531.html

Codeforces 301A. Yaroslav相关推荐

  1. 【cf】Codeforces 题解等汇总

    [cf]Codeforces Round #774 (Div. 2) 前4题 [cf]Codeforces Round #774 (Div. 2) 前4题_legend_yst的博客-CSDN博客 [ ...

  2. Codeforces Round #182 (Div. 1)题解【ABCD】

    Codeforces Round #182 (Div. 1)题解 A题:Yaroslav and Sequence1 题意: 给你\(2*n+1\)个元素,你每次可以进行无数种操作,每次操作必须选择其 ...

  3. 【Codeforces】A2组刷题记录(50 / 50)完结

    目录 A1. Counterexample A2. Good Number A3. Dice Tower ★A4. Alyona and Numbers A5. Mountain Scenery rz ...

  4. 【11.9】Codeforces 刷题

    DP\text{DP}DP : B. Yaroslav and Two Strings 题意: 如果两个只包含数字且长度为 n(1≤n≤105)n(1\leq n\leq 10^5)n(1≤n≤105 ...

  5. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  6. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  7. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  8. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  9. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

最新文章

  1. apache prefork和worker
  2. Bluetooth LE(低功耗蓝牙) - 第五部分
  3. HMAC算法及其应用
  4. 推荐一个以动画效果显示github提交记录的黑科技工具:Gource
  5. html框架有什么作用,使用HTML5+CSS+JS框架有那些好处
  6. 元素(块、行内、行内块
  7. hive元数据为什么使用Mysql?不使用默认的Derby
  8. vue后台如何刷新过期的token_Vue刷新token,判断token是否过期
  9. Apache使用总结
  10. AD2017破解步骤
  11. 蓝桥杯官网 试题 PREV-253 历届真题 质数行者【第十一届】【决赛】【研究生组】【C++】【Java】两种解法
  12. 北京市常用电话号码表
  13. pxe网络启动_什么是网络启动(PXE),以及如何使用它?
  14. 故障分析 | OceanBase Proxy 无法连接 OBserver 集群
  15. 【BeetSQL入门学习】
  16. mysql list dbs 代替_mysql_list_dbs函数的用法实例汇总
  17. Cent OS 7.7 搭建蓝鲸智云社区版5.1.27(2)——标准部署
  18. 软件设计的哲学:第十六章 修改现有代码
  19. 【深度解刨C语言】符号篇(全)
  20. R语言环境安装及第三方包的下载地址及信息

热门文章

  1. OpenShift 4 之在不同的项目之间推送Image
  2. 项目管理工具project软件学习(八) - 关键路径查询、资源可用性
  3. Microsoft Blazor——快速开发与SQL Forms开源平台Platz.SqlForms
  4. 使用Blazor和SqlTableDependency进行实时HTML页面内容更新
  5. 将MongoDB.NET驱动程序与.NET Core WebAPI一起使用
  6. sklearn保存svm分类模型_机器学习100天-Day1601线性支持向量机分类
  7. httos双向认证配置_APP爬虫双向认证抓包的两种方法
  8. vue3 element el-tree 默认选中某个节点高亮
  9. Mysql错误1366的解决办法:Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1
  10. php 小程序 运动步数_微信小程序步数运动-收益讲解