CF #374 (Div. 2) D. 贪心,优先队列或set
1、CF #374 (Div. 2) D. Maxim and Array
2、总结:按绝对值最小贪心下去即可
3、题意:对n个数进行+x或-x的k次操作,要使操作之后的n个数乘积最小。
(1)优先队列
#include<bits/stdc++.h>
#define F(i,a,b) for (int i=a;i<b;i++)
#define FF(i,a,b) for (int i=a;i<=b;i++)
#define mes(a,b) memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
const int N=,MAX=; struct Num
{
int i;
LL val; //一开始用int,一直挖9
bool operator <(const Num &a1)const {
return abs(val)>abs(a1.val);
}
}a[N]; int main()
{
int n,k,num1;
LL x;
while(~scanf("%d%d%lld",&n,&k,&x))
{
priority_queue<Num>Q;
num1=;
F(i,,n){
scanf("%lld",&a[i].val);
a[i].i=i;
Q.push(a[i]);
if(a[i].val<)num1++;
}
Num ans;
while(k--){
ans=Q.top();Q.pop();
if(num1%) {
if(ans.val==){
ans.val+=x;
}else if(ans.val>){
ans.val+=x;
}else {
ans.val-=x;
}
}else {
if(ans.val==){
ans.val-=x;
if(ans.val<)num1++;
}else if(ans.val>){
ans.val-=x;
if(ans.val<)num1++;
}else {
ans.val+=x;
if(ans.val>=)num1--;
} }
a[ans.i]=ans;
Q.push(ans);
}
printf("%lld",a[].val);
F(i,,n)printf(" %lld",a[i].val);
puts(""); } return ;
}
(2)set
#include<bits/stdc++.h>
#define F(i,a,b) for (int i=a;i<b;i++)
#define FF(i,a,b) for (int i=a;i<=b;i++)
#define mes(a,b) memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
const int N=,MAX=; int main()
{
int n,k,flag;
LL x,a[N];
while(~scanf("%d%d%lld",&n,&k,&x))
{
flag=;
set<pair<LL,int> >S;
F(i,,n){
scanf("%lld",&a[i]);
if(a[i]<)flag^=;
S.insert(make_pair(abs(a[i]),i)); }
while(k--){
int pos=S.begin()->second;S.erase(S.begin());
if(flag){
if(a[pos]>=)a[pos]+=x;
else a[pos]-=x;
}else {
if(a[pos]>=){
a[pos]-=x;
if(a[pos]<)flag^=;
}
else {
a[pos]+=x;
if(a[pos]>=)flag^=;
}
}
S.insert(make_pair(abs(a[pos]),pos));
}
cout<<a[];
F(i,,n)printf(" %lld",a[i]);
cout<<endl; } return ;
}
CF #374 (Div. 2) D. 贪心,优先队列或set的更多相关文章
- CF #374 (Div. 2) C. Journey dp
1.CF #374 (Div. 2) C. Journey 2.总结:好题,这一道题,WA,MLE,TLE,RE,各种姿势都来了一遍.. 3.题意:有向无环图,找出第1个点到第n个点的一条路径 ...
- Educational Codeforces Round 62 (Rated for Div. 2) C 贪心 + 优先队列 + 反向处理
https://codeforces.com/contest/1140/problem/C 题意 每首歌有\(t_i\)和\(b_i\)两个值,最多挑选m首歌,使得sum(\(t_i\))*min(\ ...
- C. Playlist Educational Codeforces Round 62 (Rated for Div. 2) 贪心+优先队列
C. Playlist time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...
- CF #376 (Div. 2) C. dfs
1.CF #376 (Div. 2) C. Socks dfs 2.题意:给袜子上色,使n天左右脚袜子都同样颜色. 3.总结:一开始用链表存图,一直TLE test 6 (1)如果需 ...
- CF #375 (Div. 2) D. bfs
1.CF #375 (Div. 2) D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...
- hihoCoder 1309:任务分配 贪心 优先队列
#1309 : 任务分配 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定 N 项任务的起至时间( S1, E1 ), ( S2, E2 ), ..., ( SN, ...
- CF #371 (Div. 2) C、map标记
1.CF #371 (Div. 2) C. Sonya and Queries map应用,也可用trie 2.总结:一开始直接用数组遍历,果断T了一发 题意:t个数,奇变1,偶变0,然后与问的 ...
- CF #365 (Div. 2) D - Mishka and Interesting sum 离线树状数组
题目链接:CF #365 (Div. 2) D - Mishka and Interesting sum 题意:给出n个数和m个询问,(1 ≤ n, m ≤ 1 000 000) ,问在每个区间里所有 ...
- CF #365 (Div. 2) D - Mishka and Interesting sum 离线树状数组(转)
转载自:http://www.cnblogs.com/icode-girl/p/5744409.html 题目链接:CF #365 (Div. 2) D - Mishka and Interestin ...
随机推荐
- css清楚浮动的方法
- java8--类加载机制与反射(java疯狂讲义3复习笔记)
本章重点介绍java.lang.reflect包下的接口和类 当程序使用某个类时,如果该类还没有被加载到内存中,那么系统会通过加载,连接,初始化三个步骤来对该类进行初始化. 类的加载时指将类的clas ...
- [Scala] Scala基础知识
Object An object is a type of class that can have no more than one instance, known in object-oriente ...
- Codeforces #261 D
Codeforces #261 D D. Pashmak and Parmida's problem time limit per test 3 seconds memory limit per te ...
- jQuery如何给body绑定事件?
jQuery如何给body绑定事件? 代码如下: $(document).bind("resize", function () { alert("php-note.com ...
- java基础知识(一)数据类型(上)
java的数据类型 由上图,java的数据类型分为基本数据类型.引用数据类型两大类. 1.基本数据类型 与c不同,java的各种数据类型占有固定长度的内存,与具体的软硬件平台无关:另外,每种数据类型都 ...
- 为WebDriver 设置proxy(IE设置代理)
IE driver String PROXY = "http://proxy:8083"; org.openqa.selenium.Proxy proxy = new org.op ...
- Android编程容易犯的错误之一
1.设置TextView的文本颜色 TextView tv; ... tv.setTextColor(R.color.white); 其实这样设置的颜色是 R.color.white的资源ID值所代表 ...
- POJ 1780 Code(有向图的欧拉通路)
输入n(1<=n<=6),输出长度为10^n + n -1 的字符串答案. 其中,字符串以每n个为一组,使得所有组都互不相同,且输出的字符串要求字典序最小. 显然a[01...(n-1)] ...
- LVS集群之NAT模式实现
LVS集群之NAT模式实现 一.集群的种类 集群系统主要分为 1.HA:高可用集群,又叫双机热备. (a)原理 2台机器A,B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至 ...