【传送门:BZOJ1685


简要题意:

  贝西工作勤勤恳恳,她每月向约翰索要C 元钱作为工资。约翰手上有不少钱,他一共有N 种面 额的钞票。第i 种钞票的面额记作Vi,约翰有Ki 张。钞票的面额设定是比较合理的,保证所有大面 额的钞票都是所有小面额钞票的整数倍。假设约翰每个月给贝西发一次工资,那么这些钱够发几个月 的工资呢?贝西不会找零,如果约翰发的钱大于C 元,多余的部分就算是贝西的奖励了。


输入格式:

  • 第一行:两个整数N 和C,1 ≤ N ≤ 20, 1 ≤ C ≤ 10^9

  • 第二行到第N + 1 行:第i + 1 行有两个整数Vi 和Ki,1 ≤ Vi ≤ 10^9; 1 ≤ Ki ≤ 10^6


输出格式:

  • 单个整数:表示约翰最多能给贝西发几个月的工资


样例输入:

3 6

10 1

1 100

5 120


样例输出:

111


样例解释:

  第一个月先给一张十元的,接下来十个月每个月都给两张五元的,最后一百个月每月给一张一元的和一张五元的


题解:

  贪心,主要思路就是不停得一个月一个月操作,先选大面额的再选小面额的,然后无法刚好达到C元,就选一个当前最小的面额来补充(即使已经超出C元)


参考代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
using namespace std;
struct node
{
int v,c;
}a[];
int cmp(const void *xx,const void *yy)
{
node n1=*(node *)xx;
node n2=*(node *)yy;
if(n1.v>n2.v) return -;
if(n1.v<n2.v) return ;
return ;
}
int main()
{
int n,c;
scanf("%d%d",&n,&c);
for(int i=;i<=n;i++) scanf("%d%d",&a[i].v,&a[i].c);
qsort(a+,n,sizeof(node),cmp);
int ans=;
while()
{
int cc=c;
bool bk=false;
for(int i=;i<=n;i++)
{
if(a[i].c==) continue;
if(cc<=)
{
bk=true;
break;
}
int d=cc/a[i].v;
if(d>a[i].c)
{
cc-=a[i].v*a[i].c;
a[i].c=;
}
else
{
cc-=a[i].v*d;
a[i].c-=d;
}
}
if(cc>)
{
for(int i=n;i>=;i--)
{
if(a[i].c!=)
{
a[i].c--;
bk=true;break;
}
}
}
if(bk==true||cc<=) ans++;
else break;
}
printf("%d\n",ans);
return ;
}

最新文章

  1. 博弈SG
  2. 哈希 poj 3349
  3. 单点登录(SSO)系统的总结
  4. 【总结】编写自己的JDBC框架
  5. poj: 1005
  6. JS中的call()和apply()方法和bind()
  7. Configuration对象
  8. Cocos2d-x 2.x项目创建
  9. Ionic简介和环境安装
  10. 《python基础教程》笔记之 字符串
  11. 【转】Android兼容性测试CTS --环境搭建、测试执行、结果分析
  12. leetcode Palindrome Number python
  13. git取消文件跟踪
  14. iOS开发支付集成之微信支付
  15. Git——开启区分大小写
  16. 使用GNVM工具高效切换node版本
  17. Redis(1)---五种数据结构
  18. Cocos Creator 使用计时器(官方文档摘录)
  19. JNI打通java和c
  20. 2.sklearn库中的标准数据集与基本功能

热门文章

  1. Ubuntu上面安装docker
  2. [zjoi2016]小星星 (容斥+DP)
  3. JZOJ5787轨道(容斥+DP)
  4. 启动bind时报none:0: open: /etc/named/named.conf: file not found
  5. 国庆 day 1 下午
  6. java实现上传图片
  7. Qt之图形(绘制漂亮的圆弧)
  8. Linux socket 编程中存在的五个隐患
  9. JAVA输出带BOM的UTF-8编码的文件
  10. django 笔记7 多对多