F - Valid payments Editorial

大佬题解
看了述题解我才刚理解题目意思。

Here, both Lunlun and the clerk used the minimum number of coins needed to represent those amounts of money.

这句话意味着任何数都能用a1…ana_1\dots a_na1​…an​这些面值的货币唯一表示
并且能够推导出:对于第iii种纸币的面值是aia_iai​,使用次数一定小于mxi=ai+1aimx_i=\frac{a_{i+1}}{a_i}mxi​=ai​ai+1​​

不妨设找的钱为bbb于是有X+b=yX+b=yX+b=y,将三个数用aia_iai​表示有
X=kX1a1+kX2a2+⋯+kXnanX=k_{X1}a_1+k_{X2}a_2+\dots +k_{Xn}a_nX=kX1​a1​+kX2​a2​+⋯+kXn​an​
b=kb1a1+kb2a2+⋯+kbnanb=k_{b1}a_1+k_{b2}a_2+\dots +k_{bn}a_nb=kb1​a1​+kb2​a2​+⋯+kbn​an​
y=ky1a1+ky2a2+⋯+kynany=k_{y1}a_1+k_{y2}a_2+\dots +k_{yn}a_ny=ky1​a1​+ky2​a2​+⋯+kyn​an​
且有:
①kbik_{bi}kbi​和kyik_{yi}kyi​至少有一个为0
②kyi<mxik_{yi}<mx_ikyi​<mxi​

fi,0/1f_{i,0/1}fi,0/1​表示考虑第iii种位是否对i+1i+1i+1位进位的方案数
后续参考大佬题解

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#include<set>
#include<map>
#include<cmath>
#include<stack>
#include<queue>
#include<random>
#include<bitset>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#include<unordered_set>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N=60;
ll a[N],mx[N],k[N];
ll x;
ll f[N][2];
int n;
int main()
{IO;int T=1;//cin>>T;while(T--){cin>>n>>x;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<n;i++) mx[i]=a[i+1]/a[i];for(int i=n;i;i--){k[i]=x/a[i];x%=a[i];}f[1][0]=1;if(k[1]) f[1][1]=1;for(int i=1;i<n;i++){f[i+1][0]+=f[i][0];if(k[i+1]) f[i+1][1]+=f[i][0];f[i+1][1]+=f[i][1];if(k[i+1]+1!=mx[i+1]) f[i+1][0]+=f[i][1];}cout<<f[n][0]<<'\n';}return 0;
}

理解的不是太清晰~~

ABC182——F - Valid payments Editorial相关推荐

  1. AtCoder Beginner Contest 187 F.Close Group Editorial

    AtCoder Beginner Contest 187 F.Close Group Editorial 题目链接 状压DP~ 如果对边暴力的话复杂度约为 21502^{150}2150,显然不可取, ...

  2. Kaggle上的犬种识别(ImageNet Dogs)

    Kaggle上的犬种识别(ImageNet Dogs) Dog Breed Identification (ImageNet Dogs) on Kaggle 在本节中,将解决在Kaggle竞赛中的犬种 ...

  3. 基于Kaggle的图像分类(CIFAR-10)

    基于Kaggle的图像分类(CIFAR-10) Image Classification (CIFAR-10) on Kaggle 一直在使用Gluon's data package数据包直接获得张量 ...

  4. Transformer 代码完全解读!

    作者 | 安晟&闫永强 来源 | Datawhale 本篇正文部分约10000字,分模块解读并实践了Transformer,建议收藏阅读. 2017年谷歌在一篇名为<Attention ...

  5. 用Transformer实现OCR字符识别!

    Datawhale干货 作者:安晟.袁明坤,Datawhale成员 在CV领域中,transformer除了分类还能做什么?本文将采用一个单词识别任务数据集,讲解如何使用transformer实现一个 ...

  6. Transformer代码完全解读!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:安晟&闫永强,Datawhale成员 本篇正文部分约100 ...

  7. python以垂直方式输出_python学习笔记

    Author: maddock Date: 2015-03-15 21:42:01 (暂时没有整理) python json文件处理 #coding:utf-8 importjson#data = [ ...

  8. Swift5.1 语言参考(六) 声明

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  9. 梯度消失和梯度爆炸_知识干货-动手学深度学习-05 梯度消失和梯度爆炸以及Kaggle房价预测...

    梯度消失和梯度爆炸 考虑到环境因素的其他问题 Kaggle房价预测 梯度消失和梯度爆炸 深度模型有关数值稳定性的典型问题是消失(vanishing)和爆炸(explosion). 当神经网络的层数较多 ...

最新文章

  1. 2018CTF大赛学习
  2. ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务-Oracle连接错误
  3. VisualSVN Crack
  4. 【FTP】FTP 命令模式下 PASV OR PORT
  5. 百度开发平台提交应用后进行官方认证审核失败?
  6. postman 请求参数为数组及JsonObject
  7. Spring Boot 文件上传功能实现与简单示例
  8. 变身吧,无人机:多种姿势可以选择,你喜欢X还是O?
  9. 获取 服务器文件列表,云对象获取服务器的文件列表
  10. Fortan写出数据到CSV文件中
  11. 谷歌这是要全面退出中国!
  12. html怎么快捷复制粘贴,怎么快速复制粘贴文本?快速粘贴文本教程
  13. 计算机考研金工,我的金工跨考经验
  14. Codeforces 760B Frodo and pillows【贪心+二分】
  15. 华硕主板怎么进入bios
  16. 解决更新pip后报错 Cannot open pip-script.py
  17. java的SSPanel类_SpringBoot中遇到的一些问题
  18. [BJDCTF 2nd]燕言燕语-y1ng解析
  19. 爬取B站直播流 - http+flv的相关研究
  20. 可擦玻璃平顶的机器人_擦玻璃机器人的优点和缺点各是什么?智能擦窗机真的好用吗?有人工擦的干净吗...

热门文章

  1. cmosfixr插件怎么用_3dmax插件神器|怎么用3dmax插件神器去完成背景墙的效果图设计?...
  2. 2023届春招实习拉钩一面凉经
  3. 类加载机制(整个过程详解)
  4. 39. 组合总和020(思路+详解)
  5. Java当中包装类的理解和一些常用方法的分享(学习后分享)
  6. [汇编语言]用[bx+idata]的方式进行数组的处理-字母大小写转换
  7. 《C++ Primer》13.1.1节练习
  8. 《C++ Primer》7.5.1节练习
  9. hdu1213 How Many Tables-并查集
  10. python获取文件夹下文件_Python 获取目录下的文件列表与内容