题目链接:

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的更多相关文章

  1. 2015ACM/ICPC亚洲区长春站 A hdu 5527 Too Rich

    Too Rich Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  2. 2015ACM/ICPC亚洲区长春站 L hdu 5538 House Building

    House Building Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) ...

  3. 2015ACM/ICPC亚洲区长春站 J hdu 5536 Chip Factory

    Chip Factory Time Limit: 18000/9000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)T ...

  4. 2015ACM/ICPC亚洲区长春站 H hdu 5534 Partial Tree

    Partial Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)To ...

  5. 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 ...

  6. 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 ...

  7. 2015ACM/ICPC亚洲区长春站 E hdu 5531 Rebuild

    Rebuild Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total S ...

  8. 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 ...

  9. 2015ACM/ICPC亚洲区长春站

    5532 Almost Sorted Array 题目大意:给你一个序列,如果它拿掉其中一个数后,可以是该序列成为非递减或非递增序列,则输出YES. 有两种思路,第一种代码比较简单,是LIS,复杂度n ...

随机推荐

  1. zookeeper提供了什么

    简单的说,zookeeper=文件系统+通知机制. 每个子目录项如 NameService 都被称作为 znode,和文件系统一样,我们能够自由的增加.删除znode,在一个znode下增加.删除子z ...

  2. Oracle11gR2 Windows 7 64bit and PL/SQL Developer排错

    1.Environment variable: "PATH" - This test checks whether the length of the environment va ...

  3. Java学习笔记六 常用API对象二

    1.基本数据类型对象包装类:见下图 public class Test { public static void main(String[] args){ Demo(); toStringDemo() ...

  4. HDU 2988 Dark roads(kruskal模板题)

    Dark roads Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  5. JavaScript tab页

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  6. chocolatey 的安装与安装过程中的注意事项

    安装的windows需求 Windows 7+ / Windows Server 2003+ PowerShell v2+ .NET Framework 4+   注意:chocolatey的网站可能 ...

  7. SSO单点登录学习总结(1)——单点登录(SSO)原理解析

    SSO的概念: 单点登录SSO(Single Sign-On)是身份管理中的一部分.SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应 ...

  8. home-界面返回上一级功能

    1,这个主要是用在actionbar上home键,直接上代码 import android.view.MenuItem; /* Vanzo:zhangshuli on: Mon, 23 Mar 201 ...

  9. 利用formdata对象上传文件时,需要添加的参数

    function doUpload() { var formData = new FormData($( "#uploadForm" )[0]); $.ajax({ url: 'h ...

  10. (转)oracle 启动监听 报“监听程序不支持服务” 解决

    转自 http://www.51testing.com/html/99/478599-842622.html 今天安装了oracle后,启动监听,报错如下:    启动tnslsnr: 请稍候... ...