题目描述:

小Z有一个长度为的数列。他有次令人窒息的操作,每次操作可以使某个数字。他当然是希望这些数字的乘积尽量小了。为了简化题目,你只需输出操作完成后的数列即可。

————————————————我是分割线————————————————

这道题目,我们可以先自己手动模拟一遍,就能发现,首先我们需要尽量让乘积最小,那么首先我们希望乘积为负数,

所以假设一开始的时候乘积为整数,我们先拿出绝对值最小的那个数,如果是正数就-x,如果是负数就+x直到乘积变为负数。

在乘积变为负数之后,我们来看一个问题:

3 4 6 3个数中,在任意一个数上+1,问加在哪个数的时候,使他们的乘积增加最大?显然是3。所以在乘积为负的时候,我们每次取绝对值最小的数让他的绝对值变大即可

下面贴代码

#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
long long aqs(long long a){return a>=?a:-a;}
struct number{
long long num,opt;
friend bool operator <(number a,number b){
if(aqs(a.num)==aqs(b.num))return a.num>b.num;
return aqs(a.num)>aqs(b.num);
}
}qaq[];
int zheng=,n,k,x;
priority_queue<number>q;
bool cmp(number a,number b){
return a.opt<b.opt;
}
int main(){
scanf("%lld%lld%lld",&n,&k,&x);
for(int i=;i<=n;i++){
scanf("%lld",&qaq[i].num);
qaq[i].opt=i;
q.push(qaq[i]);
if(qaq[i].num<)zheng=(zheng==)?:;
}
for(int i=;i<=k;i++){
number tmp=q.top();
q.pop();
if(zheng==){
bool now=(tmp.num>=);
if(now)tmp.num-=x;else tmp.num+=x;
q.push(tmp);
if((tmp.num<&&now)||(tmp.num>&&!now))zheng=;
}
else {
if(tmp.num>=){
tmp.num+=x;
q.push(tmp);
}
else tmp.num-=x,q.push(tmp);
}
}
for(int i=;i<=n;i++){
qaq[i]=q.top();q.pop();
}
sort(qaq+,qaq+n+,cmp);
for(int i=;i<n;i++)printf("%lld ",qaq[i].num);
printf("%lld\n",qaq[n].num);
return ;
}

水(NOIP模拟赛Round #10)的更多相关文章

  1. 题(NOIP模拟赛Round #10)

    题目描述: 有一张的地图,其中的地方是墙,的地方是路.有两种操作: 给出个地点,询问这个地点中活动空间最大的编号.若询问的位置是墙,则活动空间为:否则活动空间为询问地点通过四联通能到达的点的个数.如果 ...

  2. 大(NOIP模拟赛Round #10)

    题目描述: 小Z有个n个点的高清大图,每个点有且只有一条单向边的出边.现在你可以翻转其中的一些边,使他从任何一个点都不能通过一些道路走回这个点.为了方便,你只需输出方案数对取模即可.当在两个方案中有任 ...

  3. NOIP模拟赛-2018.10.22

    模拟赛 今天第一节课是历史,当然是不可能上的,一来到机房发现今天高二考试... 老师说以后可能还要给高一考...那还不如现在跟着做好了,毕竟在学长学姐中垫底显得没那么丢人 这套题风格挺奇怪的...为什 ...

  4. NOIP模拟赛 17.10.10

    初次见面(firstmeet)[题目背景]雾之湖边,静得可怕.露米娅出神凝望.黑白连衣裙,像极了绽放的墨黑和洁白的莲.身边的雾之湖,倒映着血色天空.酒红的双眸,映照一切.低声浅笑,双臂伸直,她悄无声息 ...

  5. 小红帽的画笔(NOIP模拟赛Round 7)

    又到了神奇的模拟赛时间~ 真是丧~ 好吧我们来看看题目 小红帽是Pop star上最著名的人类画家,她可以将任何画出的东西变成真实的物品.赋予她这样神奇能力的正是她手上的画笔. 小红帽每次作画时,都需 ...

  6. noip模拟赛(10.4) 序列(sequence)

    序列(sequence) [题目描述] 给定一个1~n的排列x,每次你可以将x1~xi翻转.你需要求出将序列变为升序的最小操作次数.有多组数据. [输入数据] 第一行一个整数t表示数据组数. 每组数据 ...

  7. noip模拟赛(10.4) 背包(pack)

    [题目描述] 蛤布斯有n种商品,第i种物品的价格为ai,价值为bi.有m个人来向蛤布斯购买商品,每个人每种物品只能购买一个.第j个人有cj的钱,他会不停选择一个能买得起的价格最高的商品买走(如果有多个 ...

  8. noip模拟赛(10.4) 字典序(dictionary)

    [题目描述] 你需要构造一个1~n的排列,使得它满足m个条件,每个条件形如(ai,bi),表示ai必须在bi前面.在此基础上,你需要使它的字典序最小. [输入数据] 第一行两个正整数n,m.接下来m行 ...

  9. bananahill(NOIP模拟赛Round 8)

    题目描述 香蕉川由座香蕉山组成,第i座山有它的高度.小Z准备从左到右爬这里的恰好座香蕉山,但他不希望山的高度起伏太大,太过颠簸,会让本就体育不好的他过于劳累.所以他定义了爬山的劳累度是所有爬的相邻的两 ...

随机推荐

  1. 牛客暑假多校第二场J-farm

    一.题意 White Rabbit has a rectangular farmland of n*m. In each of the grid there is a kind of plant. T ...

  2. 【文件处理】RandomAccessFile

    一,RandomAccessFile的用途: 使用RandomAccessFile的最大好处在于,一般的InputStream和OutputStream类对于文件都是顺序读取的,不能跳跃读取数据.而R ...

  3. 多路复用IO模板

    服务端 from socket import * import select server = socket(AF_INET, SOCK_STREAM) server.bind(('127.0.0.1 ...

  4. 自定义控件的getChildCount

    我真的是一步一步走过来,看过来的代码.不是能力问题,而是他们用的,我没用过,我用的他们不用.然后一句一句的问为什么,然后一句一句的去想为什么. 只有这样,才能慢慢的熟悉,东一榔头西一棒子,不是分模块再 ...

  5. nodejs安装&bower 安装

    1.进入官网下载:https://nodejs.org/en/ 2.直接进行安装,可以将安装路径设置为:D:\nodejs 3.进入node.js command prompt 命令窗口 4.检测是否 ...

  6. Android学习笔记(一)之仿正点闹钟时间齿轮滑动的效果

    看到正点闹钟上的设置时间的滑动效果非常好看,自己就想做一个那样的,在网上就开始搜资料了,看到网上有的齿轮效果的代码非常多,也非常难懂,我就决定自己研究一下,现在我就把我的研究成果分享给大家.我研究的这 ...

  7. GTID环境中手动修复主从故障一例(Error 1236/Error 1396)

      Preface       I got an replication error 1236 when I modified the password of a user without start ...

  8. 自动化测试学习之路--HTML常见元素、属性的简单学习

    如何创建html文件: 使用工具:VSCode 1.双击文件名显示区,可快速新建文件. 2.保存文件,文件名.html 3.输入!(必须是英文的!),按 Tab键,可自动生成html格式的文件,如下: ...

  9. Python数据分析-Pandas(Series与DataFrame)

    Pandas介绍: pandas是一个强大的Python数据分析的工具包,是基于NumPy构建的. Pandas的主要功能: 1)具备对其功能的数据结构DataFrame.Series 2)集成时间序 ...

  10. 普通用户操作tomcat项目时报:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program

    在使用普通用户更新tomcat项目适合出现这个信息,Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At ...