【贪心】【CTSC2007】【cogs1584】挂缀

原创 2015年07月06日 16:31:37

1584. [CTSC2007]挂缀

★★   输入文件:pendant.in   输出文件:pendant.out   简单对比
时间限制:1 s   内存限制:256 MB

【题目描述】
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

题解:
十分智慧的贪心。。
第一眼就想到是要双关键字排序,推导一下可以发现,只要将C与W的加和排序即可,然后用一个大根堆维护一下即可(我比较懒。。直接用的STL。。)

Code:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<queue>
#include<algorithm>
#define N 200010
using namespace std;
struct point{
    long long c,w,s;
}a[N];
priority_queue<int> q;
long long n,sum,ans;
long long in(){
    long long x=0; char ch=getchar();
    while (ch<'0' || ch>'9') ch=getchar();
    while (ch>='0' && ch<='9') x=x*10+ch-'0',ch=getchar();
    return x;
}
bool cmp(point x,point y){
    return x.s<y.s;
}
int main(){
    n=in();
    for (int i=1; i<=n; i++){
        a[i].c=in(),a[i].w=in();
        a[i].s=a[i].c+a[i].w;
    }
    sort(a+1,a+n+1,cmp);
    sum=0,ans=0;
    for (int i=1; i<=n; i++){
        if (sum<=a[i].c)
            q.push(a[i].w),sum+=a[i].w,ans++;
        else {
            int top=q.top();
            if (sum<=(a[i].c+top) && top>a[i].w)
                sum+=(a[i].w-top),q.pop(),q.push(a[i].w);
        }
    }
    printf("%lld\n%lld\n",ans,sum);
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

[CTSC2007]挂缀pendant

题目大意: 给你n个钩码,每个钩码有一个承受能力和重量,问最多可以挂多少个钩码,再上一问的条件下,钩码总重最小是多少 n 这题明显是贪心 于是我们要找一个贪心策略,我们先假设没有按任何方...

[CTSC2007]挂缀 解题报告

时限:1s;内存限制:162MB 这真的是一道非常非常好的题,我做了很久很久。 在网上只能搜到只有结论的贪心题解和一篇关于这道题的非常简略的论文,导致我一直想不通为什么,不过还是很...

bzoj 1150: [CTSC2007]数据备份Backup (贪心+优先队列+链表)

题目描述传送门题目大意:给出n个点,选出2k个点两两配对,每对的代价上两个点的坐标差,每个点只能选一次,求最小代价。题解因为k<=n/2,所以选中的每对点一定是直接相连的。 那么如果我们把每两个点之...

bzoj 1150: [CTSC2007]数据备份Backup 贪心&堆

首先连接的显然是相邻的一对楼,那么我们对于这些办公楼求出相邻的之间的距离构成的长为N-1序列,相当于在里面取出K个不相邻的数使它们和最小。        显然每次贪心地取,然后考虑取走一个数后和它相...

【CTSC2007】bzoj1150 数据备份

贪心+堆+双向链表

BZOJ 1150 [CTSC2007] 数据备份Backup

优先队列,堆(?)

BZOJ 1149 CTSC2007 风玲Mobiles DFS

题目大意:给定一棵完全二叉树,可以交换某个节点的左右儿子,求最少交换多少次可以使所有的叶节点深度相差不超过1,且深度较大的叶节点都在深度较小的叶节点左侧 这水题居然还WA了两次- - 脑残害死人啊QA...

【COGS】1752. [BOI2007]摩基亚Mokia cdq分治模板题

传送门:【COGS】1752. [BOI2007]摩基亚Mokia 题目分析:cdq分治的基本运用。 代码如下: #include #include #include using...

【单调队列】COGS 308. [HAOI2007] 理想的正方形

orz大神,附上链接:http://blog.csdn.net/orpinex/article/details/7179078 题目链接:http://cojs.tk/cogs/problem/pr...

[CTSC2007] 数据备份Backup

题意:给定n(2 时间限制:10000ms 通过时间:568ms 分析: 我看到这题第一反应是dp,设f(i, j)表示前i个点,选j对,距离之和的最小值。 不难列出状态转移方程:f(i, j) =...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)