【题目链接】:http://codeforces.com/contest/779/problem/C

【题意】



有n个商品;

打折前买和打折后买的价格不一样;

且必须有至少k个商品在打折前买;

问你买走全部n个商品最少需要多少钱;

【题解】

/*
每件商品先选择打折前和打折后里面价格较低的;
然后把价格全部加起来(我好像神经病写了个排序);
然后看看你选了几个第一种商品;
少选了,就选一些在打折后买的商品加上差价在打折前买;
把差价升序排一下,选择大于等于0的加上差价就是答案了
if (a[i]<b[i])
{
c[i].x = a[i];
c[i].id = 1;
}
else
{
//a[i]>=b[i]
c[i].x = b[i];
c[i].id = 2;
}
sort(c+1,c+1+n);
int ans = 0,num[3];
rep1(i,1,n)
ans+=c[i].x,num[c[i].id]++;
if (num[1]<k)
{
rep1(i,1,n)
c[i].x = b[i].x-a[i].x;
sort(c);
rep1(i,1,n)
if (c[i].x>=0)
{
if (num[1]<k)
{
ans+=c[i].x;
num[1]++;
}
else
break;
}
}
*/

【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define rei(x) scanf("%d",&x)
#define rel(x) scanf("%lld",&x) typedef pair<int, int> pii;
typedef pair<LL, LL> pll; const int dx[9] = { 0,1,-1,0,0,-1,-1,1,1 };
const int dy[9] = { 0,0,0,-1,1,-1,1,-1,1 };
const double pi = acos(-1.0);
const int N = 2e5+1000; struct abc
{
int x, id;
}; int a[N], b[N],n ,k, num[3];
abc c[N]; bool cmp1(abc a, abc b)
{
return a.x < b.x;
} int main()
{
//freopen("F:\\rush.txt", "r", stdin);
rei(n), rei(k);
rep1(i, 1, n)
rei(a[i]);
rep1(i, 1, n)
rei(b[i]);
rep1(i,1,n)
if (a[i]<b[i])
{
c[i].x = a[i];
c[i].id = 1;
}
else
{
//a[i]>=b[i]
c[i].x = b[i];
c[i].id = 2;
}
sort(c + 1, c + 1 + n,cmp1);
int ans = 0;
rep1(i, 1, n)
ans += c[i].x, num[c[i].id]++;
if (num[1]<k)
{
rep1(i, 1, n)
c[i].x = a[i] - b[i];
sort(c+1,c+1+n,cmp1);
rep1(i, 1, n)
if (c[i].x >= 0)
{
if (num[1]<k)
{
ans += c[i].x;
num[1]++;
}
else
break;
}
}
printf("%d\n", ans);
return 0;
}

【codeforces 779C】Dishonest Sellers的更多相关文章

  1. 【codeforces 415D】Mashmokh and ACM(普通dp)

    [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...

  2. 【codeforces 707E】Garlands

    [题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...

  3. 【codeforces 707C】Pythagorean Triples

    [题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...

  4. 【codeforces 709D】Recover the String

    [题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...

  5. 【codeforces 709B】Checkpoints

    [题目链接]:http://codeforces.com/contest/709/problem/B [题意] 让你从起点开始走过n-1个点(至少n-1个) 问你最少走多远; [题解] 肯定不多走啊; ...

  6. 【codeforces 709C】Letters Cyclic Shift

    [题目链接]:http://codeforces.com/contest/709/problem/C [题意] 让你改变一个字符串的子集(连续的一段); ->这一段的每个字符的字母都变成之前的一 ...

  7. 【Codeforces 429D】 Tricky Function

    [题目链接] http://codeforces.com/problemset/problem/429/D [算法] 令Si = A1 + A2 + ... + Ai(A的前缀和) 则g(i,j) = ...

  8. 【Codeforces 670C】 Cinema

    [题目链接] http://codeforces.com/contest/670/problem/C [算法] 离散化 [代码] #include<bits/stdc++.h> using ...

  9. 【codeforces 515D】Drazil and Tiles

    [题目链接]:http://codeforces.com/contest/515/problem/D [题意] 给你一个n*m的格子; 然后让你用1*2的长方形去填格子的空缺; 如果有填满的方案且方案 ...

随机推荐

  1. Javascript和jquery事件--键盘事件KeyboardEvent

    Js和jq事件—键盘事件KeyboardEvent 键盘事件keydown,keypress和keyup,还需要涉及到一个文本事件textInput. keydown,keypress和keyup事件 ...

  2. C# 实现Ajax的方式总结

    1JavaScript实现AJAX效果 2.AjaxPro实现AJAX应用 3.微软AJAX控件库开发AJAX 比如ScriptManager,updatePanel,timer等 4.jquery ...

  3. 硬件——STM32 , 录音,wav

    详细的wav头文件解析,有例子:http://www.cnblogs.com/chulin/p/8918957.html 关于录音程序的编写: 我的思路是改写原子的程序,原子的程序需要借助VS1053 ...

  4. 用多年前据说买买提上理论水平最高的帖子做镇楼贴---NASA有吹牛了

    美国国会一直有意把nasa 划入国防部,取消太空探索所关联的部门,因为这些部门都是些烧钱的大包袱,而把具有军事意义的部门留下.国会想把烧钱部卖给google,可能是要价太高,最后没有谈拢,不了了之.但 ...

  5. Ubuntu VMware Tools安装详细过程(非常靠谱)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 一.前言 VMware Ubuntu安装以及详细过程:https://blog.csdn.net/qq_41782425/arti ...

  6. vim 保存文件的回车换行模式

    设置模式:unix,dos :set fileformat=unix  fileforman可以直接缩写为ff

  7. Java学习很好的笔记

    http://www.cnblogs.com/vamei/archive/2013/03/31/2991531.html

  8. MFC注册窗口类以及FindWindow按窗口类名查询(避免用#32770获取窗口句柄)

    呵呵,最近在研究SendMessage函数,其中需要用到m_hWnd,之后延伸着又尝试获得窗口的句柄,于是遇到了FindWindow函数,原型如下: HWND FindWindow ( LPCSTR ...

  9. 【2006】求N!的精确值

    Time Limit: 3 second Memory Limit: 2 MB 对于阶乘函数,即使自变量较小,其函数值也会相当大.例如: 10!=3628800 25!=155112100433309 ...

  10. Java 学习(21):Java 实例

    Java 实例 本章节我们将为大家介绍 Java 常用的实例,通过实例学习我们可以更快的掌握 Java 的应用. Java 环境设置实例 //HelloWorld.java 文件 public cla ...