/*
不要低头,不要放弃,不要气馁,不要慌张。
题意:
给一列数a,可以进行k次操作,每次操作可以选取任意一个数加x或者减x,x是固定的数。求如何才能使得这个数列所有数乘积最小。
思路:
贪心...讨论这列数中负数的个数,如果为偶数,那么把数列中绝对值最小的数使其往0的方向前进。
如果为奇数,同样选择绝对值最小的数,使其往背离0的方向前进。
道理很简单...自己写写就看出来了...
wa点:
有一个细节没处理好,如果经过某次操作某个数变成0了...那么我们的负数记录并没有更新...
默认下一次会减...因为我们需要构造一个新的负数...所以这里gg了...
*/ #include<bits/stdc++.h>
#define N 200050
using namespace std;
long long jilu[N];
long long ans[N];
struct st{
st(){}
st(long long a,int aa){
bb=a;
jue=max(a,-a);
id=aa;
}
int id;
long long bb,jue;
};
bool operator < (const st &a,const st &b){
return a.jue<b.jue;
}
multiset<st> ms;
int main()
{
int n,k;
long long x;
int zero=,zheng=,fu=;
scanf("%d%d%lld",&n,&k,&x);
int ddd=;
for(int i=;i<=n;i++){
scanf("%lld",jilu+i);
if(jilu[i]!=-)ddd++;
if(jilu[i]==)zero++;
else if(jilu[i]>)zheng++;
else fu++;
}
for(int i=;i<=n;i++)ms.insert(st(jilu[i],i));
st tmp;
for(int i=;i<=k;i++){
tmp=*ms.begin();
ms.erase(ms.begin());
if(fu%==){
if(tmp.jue<=x)fu++;
if(tmp.bb>=){
tmp.bb-=x;
if(tmp.bb==&&i!=k){
i++;
tmp.bb-=x;
}
}
else{
tmp.bb+=x;
if(tmp.bb==&&i!=k){
tmp.bb+=x;
i++;
}
}
ms.insert(st(tmp.bb,tmp.id));
}
else{
if(tmp.bb>=)tmp.bb+=x;
else tmp.bb-=x;
ms.insert(st(tmp.bb,tmp.id));
}
}
multiset<st>::iterator it;
for(it=ms.begin();it!=ms.end();it++){
ans[it->id]=it->bb;
}
for(int i=;i<=n;i++){
printf("%lld ",ans[i]);
}
}

Codeforces 721D [贪心]的更多相关文章

  1. Maxim and Array CodeForces - 721D (贪心)

    大意: 给定序列, 每次操作选择一个数+x或-x, 最多k次操作, 求操作后所有元素积的最小值 贪心先选出绝对值最小的调整为负数, 再不断选出绝对值最小的增大它的绝对值 #include <io ...

  2. CodeForces - 721D 贪心+优先队列(整理一下优先队列排序情况)

    题意: 给你一个长度为n的数组,你可以对其中某个元素加上x或者减去x,这种操作你最多只能使用k次,让你输出操作后的数组,且保证这个数组所有元素的乘积尽可能小 题解: 在这之前我们要知道a*b>a ...

  3. CodeForces - 721D Maxim and Array (贪心)

    Recently Maxim has found an array of n integers, needed by no one. He immediately come up with idea ...

  4. CodeForces - 893D 贪心

    http://codeforces.com/problemset/problem/893/D 题意 Recenlty Luba有一张信用卡可用,一开始金额为0,每天早上可以去充任意数量的钱.到了晚上, ...

  5. Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) Problem D (Codeforces 831D) - 贪心 - 二分答案 - 动态规划

    There are n people and k keys on a straight line. Every person wants to get to the office which is l ...

  6. Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) Problem D (Codeforces 828D) - 贪心

    Arkady needs your help again! This time he decided to build his own high-speed Internet exchange poi ...

  7. CodeForces - 93B(贪心+vector<pair<int,double> >+double 的精度操作

    题目链接:http://codeforces.com/problemset/problem/93/B B. End of Exams time limit per test 1 second memo ...

  8. C - Ordering Pizza CodeForces - 867C 贪心 经典

    C - Ordering Pizza CodeForces - 867C C - Ordering Pizza 这个是最难的,一个贪心,很经典,但是我不会,早训结束看了题解才知道怎么贪心的. 这个是先 ...

  9. Codeforces 570C 贪心

    题目:http://codeforces.com/contest/570/problem/C 题意:给你一个字符串,由‘.’和小写字母组成.把两个相邻的‘.’替换成一个‘.’,算一次变换.现在给你一些 ...

随机推荐

  1. ASIHTTPRequest下载示例(支持断点续传)

    一.创建网络请求队列 首先,创建网络请求队列,如下: ASINetworkQueue   *que = [[ASINetworkQueue alloc] init]; self.netWorkQueu ...

  2. 我是一只IT小小鸟

    不知不觉中走过了高三的时光,最后也没抓住时间的尾巴,不得不承认自己已经到了大一下学期了.接触了大学生职业生涯规划这门课程,一开始认为学习了这门课程以后就会对自己的未来有一个规划,渐渐的去意识到软件工程 ...

  3. 黑马程序员——OC语言 核心语法(2)

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)id 1)简介:万能指针,能指向任何OC对象,相当于NSObject ...

  4. (zz) 谷歌技术"三宝"之BigTable

    006年的OSDI有两篇google的论文,分别是BigTable和Chubby.Chubby是一个分布式锁服务,基于Paxos算法:BigTable是一个用于管理结构化数据的分布式存储系统,构建在G ...

  5. juqey.html(),text(),val()

    .html()用为读取和修改元素的HTML标签 .text()用来读取或修改元素的纯文本内容 .val()用来读取或修改表单元素的value值. 这三个方法功能上的对比 .html(),.text() ...

  6. FlashBuilder使用

    打开调用层次视图,显示当前类.变量被谁调用,右侧显示调用位置. ctrl+alt+H 快捷键 导航即浏览菜单中,单击. 右键单击打开. 为组件生成事件处理函数 组件==控件,按钮等.右侧属性,又叫属性 ...

  7. php大力力 [037节] Iconfont-阿里巴巴矢量图标库

    Iconfont-阿里巴巴矢量图标库 从此不求人:自主研发一套PHP前端开发框架 Iconfont-中国第一个最大且功能最全的矢量图标库,提供矢量图标下载.在线存储.格式转换等功能.阿里巴巴体验团队倾 ...

  8. 黑马程序员——【Java基础】——GUI(图形用户界面)

    ---------- android培训.java培训.期待与您交流! ---------- 一.概述 1.GUI(GraphicalUser Interface):又称图形用户界面,是计算机用户与计 ...

  9. C++ Primer----智能指针类 2

    指针带给了 C++巨大的灵活性,然而同样也带来无数的问题,悬挂指针,内存泄漏等. int *pInt = new int(1); // Do not forget delete pInt; 智能指针就 ...

  10. 从最小角回归(LARS)中学到的一个小知识(很短)

    [转载请注明出处]http://www.cnblogs.com/mashiqi (居然有朋友说内容不接地气,那么我就再加一段嘛,请喜欢读笑话的同学直接看第二段)假设这里有一组向量$\left\{ x_ ...