博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
div3 round#494 D. Coins and Queries
阅读量:3904 次
发布时间:2019-05-23

本文共 812 字,大约阅读时间需要 2 分钟。

此题的意思为给出n个硬币和q次查询,值得注意的是,硬币的价值是2的某次方,然后给出一个总价值b,然后让你找出是否有一些硬币加起来等于这个价钱,如果有则输出硬币的个数,如果没有则输出-1.

第一次做的时候想的比较简单,直接暴力减,然后超时了,然后看了看超时的数据,发现事情并不简单,第2组数据给的全是1,

顿时恍然大悟,觉得自己还是太蠢了,于是想了个方法,是这样的:

如果这个价值的硬币存在,且不大于总价值,则用总价值除以这个价值,(1)得出来的数s如果比这个价值的硬币数小,则总价值数直接减去得出的结果s*这个价值的硬币。(2)如果大的或等于,s直接减去硬币数*这个价值。

代码如下:

#include 
#include
#include
#include
using namespace std;char s[400005];int a[30],b[30];int n,k;int main(){ scanf("%d%d",&n,&k); getchar(); memset (a,0,sizeof(a)); memset (b,0,sizeof(b)); for (int i=0;i
=a[i]) { b[i]=a[i]; k-=a[i]; } else { b[i]=k; break; } } for (int i=0;i
0) { b[s[i]-'a']--; continue; } else printf("%c",s[i]); } printf("\n"); return 0;}

 

你可能感兴趣的文章
机器学习笔记
查看>>
数十种TensorFlow实现案例汇集:代码+笔记
查看>>
python记录的错误与知识
查看>>
内核中各种套接字的关系
查看>>
linux sysctl 参数实现 暨 ip_forward参数对Linux内核转发影响分析
查看>>
linux 路由表 的一些相关资料
查看>>
Linux 路由 学习笔记 之三 路由查找流程分析
查看>>
LINUX IP 路由实现
查看>>
快速重传与快速恢复算法
查看>>
TCP重传定时器
查看>>
CentOS 6.3 - 安装 Nginx 1.2.7(yum源)
查看>>
shell中trap捕获信号
查看>>
关于Linux Shell的信号trap功能你必须知道的细节
查看>>
Linux原始套接字实现分析
查看>>
CENTOS 6.5 配置YUM安装NGINX
查看>>
#ifdef DEBUG的理解
查看>>
Linux 任务控制的几个技巧( &, [ctrl]-z, jobs, fg, bg, kill)
查看>>
慧眼云:基于云计算和大数据分析的主动防御实践
查看>>
58集团监控业务实践:将网站运行信息透明化
查看>>
给Django用户的SQLAlchemy介绍
查看>>