【hdu5527】【2015ACM/ICPC亚洲区长春站 】Too Rich
题目链接: pid=5527">http://acm.hdu.edu.cn/showproblem.php?pid=5527
题意&题解:
感觉自己真是弱啊,自己想的贪心是错的,根本没想到20,50的特判,╮(╯▽╰)╭
附我參考的聚聚的题解:
http://blog.csdn.net/snowy_smile/article/details/49592521
代码:
(差点儿和那位聚聚的一样。ORZ)
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
using namespace std;
int val[11]={0,1,5,10,20,50,100,200,500,1000,2000};
int x,T,p,num[11],vis[11],use[11];
int ans=-1;
long long sum;
int solve()
{
memset(use,0,sizeof(use));
if (vis[5]>num[5] || vis[8]>num[8]) return 0;
long long tmp=vis[5]*val[5]+vis[8]*val[8];
int tmpn=vis[5]+vis[8];
for (int i=1;i<=10;i++)
{
if (vis[i]==-1)
{
tmp+=num[i]*val[i];
tmpn+=num[i];
use[i]=num[i];
}
else
{
use[i]=num[i]-vis[i];
if (use[i]%2==1) use[i]--;
tmpn+=use[i];
tmp+=use[i]*val[i];
}
if (tmp>=x)
{
long long chao=tmp-x;
for (int j=i;j>=1;j--)
{
if (vis[j]==-1)
{
long long tui=min((long long)use[j],chao/val[j]);
tmpn-=tui;
chao-=tui*val[j];
}
else
{
long long tui=min((long long)use[j],chao/val[j]);
if (tui%2==1) tui--;
tmpn-=tui;
chao-=tui*val[j];
}
if (chao==0)
{
ans=max(ans,tmpn);
return 0;
}
}
return 0;
}
}
}
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d",&x);
memset(vis,-1,sizeof(vis));
for (int i=1;i<=10;i++)
{
scanf("%d",&num[i]);
sum+=num[i]*val[i];
}
if (sum<x)
{
printf("-1\n");
continue;
}
ans=-1;
vis[5]=0,vis[8]=0; solve();
vis[5]=1,vis[8]=1; solve();
vis[5]=1,vis[8]=0; solve();
vis[5]=0,vis[8]=1; solve();
printf("%d\n",ans);
}
}【hdu5527】【2015ACM/ICPC亚洲区长春站 】Too Rich的更多相关文章
- 2015ACM/ICPC亚洲区长春站 A hdu 5527 Too Rich
Too Rich Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- 2015ACM/ICPC亚洲区长春站 L hdu 5538 House Building
House Building Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) ...
- 2015ACM/ICPC亚洲区长春站 J hdu 5536 Chip Factory
Chip Factory Time Limit: 18000/9000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)T ...
- 2015ACM/ICPC亚洲区长春站 H hdu 5534 Partial Tree
Partial Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)To ...
- 2015ACM/ICPC亚洲区长春站 G hdu 5533 Dancing Stars on Me
Dancing Stars on Me Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- 2015ACM/ICPC亚洲区长春站 F hdu 5533 Almost Sorted Array
Almost Sorted Array Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- 2015ACM/ICPC亚洲区长春站 E hdu 5531 Rebuild
Rebuild Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total S ...
- 2015ACM/ICPC亚洲区长春站 B hdu 5528 Count a * b
Count a * b Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Tot ...
- 2015ACM/ICPC亚洲区长春站
5532 Almost Sorted Array 题目大意:给你一个序列,如果它拿掉其中一个数后,可以是该序列成为非递减或非递增序列,则输出YES. 有两种思路,第一种代码比较简单,是LIS,复杂度n ...
随机推荐
- Linux硬件信息查看
more /proc/cpuinfo more /proc/meminfo more /proc/*info lspci 查看主板信息等cat /proc/cpuinfo CPU信息cat /proc ...
- 今日SGU 5.3
SGU 107 题意:输入一个N,表示N位数字里面有多少个的平方数的结尾9位是987654321 收获:打表,你发现相同位数的数相乘结果的最后几位,就和那两个相乘的数最后几位相乘一样,比如3416*8 ...
- 删除D盘空目录 、检索大于10M的文件
删除D盘空目录 @echo off for %%i in (d:\xx) do ( if exist %%i:\ ( for /f "delims=" %%a in ('dir / ...
- js30--代理模式
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- js---15,模拟数组的ecah方法
原型的另外一个作用就是扩展对象中的属性和方法的 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http:// ...
- system.setting-全局变量数据监听
今天在setting里添加了一个新的变量,想要实现对这个变量的监听.现在记录下方法 首先就是明白一点,我们在system.setting里添加的变量,都会被保存在data/data/com.andro ...
- JavaScript--Module模式
//module: Module模式是JavaScript编程中一个非常通用的模式 window.onload = function() { //1.基本使用: var MyFn = function ...
- IDFA和IMEI
这里有一些解释: https://www.zhihu.com/question/38856446
- C语言速度优化之指针赋值与if推断
近期在写的一个项目须要优化处理速度,我写了一下程序来測试指针赋值与指针推断的速度比較.结果让我大吃一惊. #include <stdio.h> #include <stdlib.h& ...
- <%%>创建内联代码块(表达式)
其实<%%>很早之前就见过了,只是会用一点功能,其它的不甚了解.今天偶尔见到了它的庐山真面目,现在共享给大家. 语法 代码块呈现(<%%>)定义了当呈现页时执行的内联代码或内联 ...