题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3230

Programming is fun, Aaron is addicted to it. In order to improve his programming skill, he decides to solve one programming problem per day. As you know, different problems have different
properties, some problems are so difficult that there are few people can solve it, while some problems are so easy that almost everyone is able to tackle it.

Programming skill can be measured by an integer p. And all problems are described by two integers ai and biai indicates
that if and only if P >= ai, you can solve this problem. bi indicates that after you solve this problem, your programming skill can be increased by bi.

Given the initial programming skill p of Aaron, and the information of each problem, Aaron want to know the maximal programming skill he can reach after m days, can
you help him?

Input

Input consists of multiple test cases (less than 40 cases)!

For each test case, the first line contains three numbers: nmp (1 <= n <= 100000, 1 <= m <= n, 1 <= p <= 10000), n is
the number of problems available for Aaron,mp as mentioned above.

The following n lines each contain two numbers: ai and bi (1 <= ai <= 10000, 1 <= bi <= 10000)
describe the information of the i-th problem as memtioned above.

There's a blank line between consecutive cases.

Output

For each case, output the maximal programming skill Aaron can reach after m days in a line.

Sample Input

2 2 1
1 2
7 3 3 1 2
1 2
2 3
3 4

Sample Output

3
5

Author: ZHOU, Yilun

Source: ZOJ Monthly, July 2009

题意:

给出Aaron 的初始的做题能力值,然后给出N道题:Aaron 解决这道题至少须要多少能力值a。Aaron 攻克了这道题他能添加多少能力值b!

求M天后Aaron 的最大能力值是多少!

PS:

运用优先队列。分别对a和b排序一下!

代码例如以下:

//#pragma warning (disable:4786)
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <cstdlib>
#include <climits>
#include <ctype.h>
#include <queue>
#include <stack>
#include <vector>
#include <utility>
#include <deque>
#include <set>
#include <map>
#include <iostream>
#include <algorithm>
using namespace std;
const double eps = 1e-9;
//const double pi = atan(1.0)*4;
const double pi = 3.1415926535897932384626;
const double e = exp(1.0);
#define INF 0x3f3f3f3f
//#define INF 1e18
//typedef long long LL;
//typedef __int64 LL;
#define ONLINE_JUDGE
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
struct node1
{
int a, b;
node1() {}
node1(int _a, int _b): a(_a), b(_b) {}
bool operator < (const node1 & x) const
{
return a > x.a;//最小值优先
}
};
struct node2
{
int a, b;
node2() {}
node2(int _a, int _b): a(_a), b(_b) {}
bool operator < (const node2 & x) const
{
return b < x.b;//最大值优先
}
};
int n, m, p; int main()
{
int a, b;
while(~scanf("%d%d%d", &n, &m, &p))
{
priority_queue<node1> q1;
priority_queue<node2> q2; for(int i = 0; i < n; i++)
{
scanf("%d%d", &a, &b);
q1.push(node1(a, b));
}
int maxx_p = p;
for(int i = 0; i < m; i++)
{
while (!q1.empty())
{
int tt_a = q1.top().a;
int tt_b = q1.top().b;
if(tt_a <= maxx_p)
{
q2.push(node2(tt_a, tt_b));
q1.pop();
}
else
{
break;
}
}
if (q2.empty())
{
break;
}
maxx_p += q2.top().b;
q2.pop();
}
printf("%d\n", maxx_p);
}
return 0;
}
/*
3 1 2
1 2
2 3
3 4
3 2 2
1 2
2 3
3 4
*/

ZOJ 3230 Solving the Problems(数学 优先队列啊)的更多相关文章

  1. zoj 3946 Highway Project(最短路 + 优先队列)

    Highway Project Time Limit: 2 Seconds      Memory Limit: 65536 KB Edward, the emperor of the Marjar ...

  2. ZOJ 2724 Windows 消息队列 (优先队列)

    链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2724 Message queue is the basic fund ...

  3. zoj 2722 Head-to-Head Match(数学思维)

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2722 题目描述: Our school is planning ...

  4. zoj 1028 Flip and Shift(数学)

    Flip and Shift Time Limit: 2 Seconds      Memory Limit: 65536 KB This puzzle consists of a random se ...

  5. ZOJ 2679 Old Bill(数学)

    主题链接:problemCode=2679" target="_blank">http://acm.zju.edu.cn/onlinejudge/showProbl ...

  6. ZOJ 2680 Clock()数学

    主题链接:problemId=1680" target="_blank">http://acm.zju.edu.cn/onlinejudge/showProblem ...

  7. ZOJ - 3946-Highway Project(最短路变形+优先队列优化)

    Edward, the emperor of the Marjar Empire, wants to build some bidirectional highways so that he can ...

  8. ZOJ 3203 Light Bulb(数学对勾函数)

    Light Bulb Time Limit: 1 Second      Memory Limit: 32768 KB Compared to wildleopard's wealthiness, h ...

  9. ZOJ - 3866 Cylinder Candy 【数学】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3866 思路 积分 参考博客 https://blog.csdn. ...

随机推荐

  1. zoj 2830 Champion of the Swordsmanship

    Champion of the Swordsmanship Time Limit: 2 Seconds      Memory Limit: 65536 KB In Zhejiang Universi ...

  2. Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2) 继续跪一把

    这次的前三题挺简单的,可是我做的不快也不对. A. Bank Robbery time limit per test 2 seconds memory limit per test 256 megab ...

  3. 刷题总结——射箭(bzoj2732)

    题目: Description 沫沫最近在玩一个二维的射箭游戏,如下图 1 所示,这个游戏中的 x 轴在地面,第一象限中有一些竖直线段作为靶子,任意两个靶子都没有公共部分,也不会接触坐标轴.沫沫控制一 ...

  4. 刷题总结——table(ssoi)

    题目: 题目背景 SOURCE:NOIP2016-RZZ-2 T2 题目描述 给定一个 n×m 的矩阵,行列均从 1 开始标号. 一个矩阵被认为是稳定的,当且仅当对于任意的 2≤i≤n,第 i 行的数 ...

  5. 【(最小权点基)tarjan强连通分量缩点+tarjan模板】HDU 5934 Bomb

    [AC] #include<bits/stdc++.h> using namespace std; typedef long long ll; int n; ; ; const int i ...

  6. EC++学习笔记(五) 实现

    条款26:尽可能延后变量定义式的出现时间 尽可能延后变量的定义,知道非得使用该变量的前一刻为止方法A: Widget W; ; i < n; ++i) { W = ... } 方法B: ; i ...

  7. 玩转css样式选择器----当父元素只有一个子元素时居中显示,多个水平排列

  8. nosql整理

    Nosql: Redis,Memcache,MongoDB,Hbase,Couchbase  LevelDB https://www.cnblogs.com/lina520/p/7919551.htm ...

  9. 树莓派用gobot测试舵机的使用

    package main import ( "gobot.io/x/gobot" "gobot.io/x/gobot/drivers/gpio" "g ...

  10. (9)C#连mysql

    1官网下载 dll 2. using MySql.Data.MySqlClient; 3. <add key="con_MES" value="server=192 ...