Description

  张辽是一个长发飘飘的非常聪明的男孩,人人都称他为“辽哥”。辽哥喜欢玩一个有趣的电脑游戏。这个游戏开始的时候有n个碉堡,每个碉堡拥有一个防御值和一个附加值。玩家拥有一个初始的攻击力。如果玩家破坏了一个碉堡,则他能得到1分。每一次,辽哥会选择一个碉堡进行攻击。所有未被破坏的碉堡会联合起来防御,因此为了破坏那个碉堡,辽哥的攻击力必须大于或者等于所有未被破坏的碉堡的防御值之和,否则辽哥就会输掉游戏。如果辽哥成功破坏了那个碉堡,那么他的攻击力会变成那个碉堡的附加值,然后他可以选择下一个攻击的目标。
  由于辽哥拥有强大的编程能力,他不费吹灰之力就改写了那个游戏。在游戏开始前,他可以用炸弹消灭任意的碉堡,但是他不能通过这种方式来获得分数。问题来了,在游戏开始后,辽哥可以得到的最大分数是多少?

Input

  输入包含多组(不超过100组)测试数据。
  每组测试数据的第一行包含一个正整数N,表示测碉堡的数目。接下来有N行,每行包括2个非负整数。第i+1行的2个整数分别表示第i个碉堡的防御值和附加值。最后还有一行,为一个整数,表示辽哥在游戏开始时的初始攻击力。
  输入以文件结束符结束。

Output

  对每组数据,输出一行,为一个整数,表示辽哥可以拿到的最大分数。

Sample Input

3
10 9
25 30
8 7
50
5
100 230
334 331
33 288
35 100
334 22
600

Sample Output

3
4

Hint

【数据范围】
  对20%的数据,有N<=10;
  对40%的数据,有N<=100;
  对100%的数据,有N<=1000,每个碉堡的防御值和附加值均不会超过2000000。

Solution

  • 开始时将若干个碉堡炸掉的操作有点难处理,我们考虑倒着做。

  • 设 f[i]f[i] 表示选的最后 ii 个碉堡(任意选)的所需的最小攻击力。

  • 设第 jj 个碉堡的防御值和附加值分别为 b[j],d[j]b[j],d[j] ,

  • 则有 f[i]=min{f[i−1]+b[j]} (d[j]≥f[i−1])f[i]=min\{f[i-1]+b[j]\}\ (d[j]\geq f[i-1]) 。

  • 还有碉堡要按 b+db+d 从小到大排序(显然 b+db+d 小的后选更优)。

  • 这样处理完之后选一个最大的 f[i]f[i] 使得初始攻击力 m≥f[i]m\geq f[i] 即满足题意,输出此时的 ii 即可。

  • 时间复杂度 O(T∗n2)O(T*n^2) 。

Code

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cctype>
using namespace std;
const int N=1001;
struct data
{int x,y;
}a[N];
int n;
int f[N];
inline int read()
{int X=0,w=0; char ch=0;while(!isdigit(ch)) w|=ch=='-',ch=getchar();while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();return w?-X:X;
}
inline int min(int x,int y)
{return x<y?x:y;
}
inline bool cmp(data x,data y)
{return x.x+x.y<y.x+y.y;
}
int main()
{while(~scanf("%d",&n)){for(int i=1;i<=n;i++) a[i].x=read(),a[i].y=read();memset(f,60,sizeof(f));sort(a+1,a+1+n,cmp);f[0]=0;for(int i=1;i<=n;i++)for(int j=i;j;j--)if(a[i].y>=f[j-1]) f[j]=min(f[j],f[j-1]+a[i].x);for(int i=n,m=read();i>=0;i--)if(m>=f[i]){printf("%d\n",i);break;}}return 0;
}

JZOJ 2309. 【中山市选2011】辽哥游戏相关推荐

  1. [补档][中山市选2011]杀人游戏

    [中山市选2011]杀人游戏 题目 一位冷血的杀手潜入 Na-wiat,并假装成平民.警察希望能在 N 个人里面,查出谁是杀手. 警察能够对每一个人进行查证,假如查证的对象是平民,他会告诉警察,他认识 ...

  2. BZOJ 2440: [中山市选2011]完全平方数 [容斥原理 莫比乌斯函数]

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 3028  Solved: 1460 [Submit][S ...

  3. bzoj 2440: [中山市选2011]完全平方数(二分+莫比乌斯函数)

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 4018  Solved: 1952 [Submit][S ...

  4. JZOJ 2308. 【中山市选2011】聚会

    Description Tzdin想组织一个圣诞晚会.N位女士和M位男士(M>=N)会被邀请参加这个聚会.在聚会的开始,Tzdin会派发一些写着某位男士信息的卡片给每位女士:每位女士都会收到若干 ...

  5. [BZOJ 2438] [中山市选2011]杀人游戏 Tarjan缩点

    这个题很容易想到正解就是缩点找入度为零的点,那么我们考虑一种特殊情况就是,一个入度为零的点我们不访问他就知道他是不是凶手,那么这样的话就是:I. 他是一个真·孤立的点 II. 他在图里但是在他的强联通 ...

  6. JZOJ 2307. 【中山市选2011】新年礼物

    题目 Description Windbreaker计划送一些项链给他的朋友们作为新年礼物.为了表示诚意,他决定自己制作全部的项链.他购买了若干种珍珠,每种珍珠都有特定的颜色.他要制作的项链都是M-完 ...

  7. bzoj2440: [中山市选2011]完全平方数

    自己写的第一个博客......... BZOJ 2440 [题意] 求第K个约数不含平方数的数 (1<=k<=10^9), 共有T组数据(T<=50). [题解] 首先题解并不是我独 ...

  8. BZOJ 2440: [中山市选2011]完全平方数

    Time Limit: 10 Sec Memory Limit: 128 MB Submit: 5160 Solved: 2515 [Submit][Status][Discuss] Descript ...

  9. 2019.01.21 bzoj2441: [中山市选2011]小W的问题(树状数组+权值线段树)

    传送门 数据结构优化计数菜题. 题意简述:给nnn个点问有多少个www型. www型的定义: 由5个不同的点组成,满足x1<x2<x3<x4<x5,x3>x1>x2 ...

最新文章

  1. vue全家桶+Koa2开发笔记(2)--koa2
  2. laravel Collection mapToDictionary 例子
  3. 【LeetCode从零单排】No26.Remove Duplicates from Sorted Array
  4. RHEAS 显示、输入中文
  5. 九十一、前端可视化ECharts的使用
  6. MySQL复习资料(七)——MySQL-存储过程
  7. 什么是计算机考试题,计算机考试word什么版本 计算机word考试试题
  8. 17岁高中生详述如何攻破 GitHub Private Pages 并获$3.5万赏金
  9. 【LeetCode】461. Hamming Distance (java实现)
  10. 第九章:Servlet工作原理解析
  11. 文字在div中的垂直居中问题 div在页面中的水平垂直居中问题 vertical-align ??????
  12. 【原创】打造基于Dapper的数据访问层
  13. android 印章,android 印章 控件
  14. skywalking elasticsearch 版本匹配问题
  15. 经典策略之Dual Trust策略
  16. Python中随机数种子的作用及使用
  17. 100本《架构师》迷你书——限时免费领取
  18. C语言编程——高斯消元法
  19. Django3创建数据库表模型及 Django 管理页面
  20. Base64 SHA1 MD5

热门文章

  1. 深度学习笔记之lSTM网络
  2. 吴恩达 coursera ML 第十三课总结+作业答案
  3. R 语言数据读取与存储
  4. Madagascar环境下编程
  5. C++中的类对象的内存分布以及虚函数表内存分布
  6. 【Python】可遍历的数据类型有哪些?
  7. 今日机器学习概念:感知机模型
  8. python处理rgb_如何在Python中读取给定像素的RGB值?
  9. 推荐常用算法之-基于内容的推荐(转自-BreezeDeus博主)
  10. [原理篇] Soft Regression