网站建设软文模板,汇天网络科技有限公司,羽毛球赛事,山东网架公司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这些面值的货币唯一表示 并…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使用次数一定小于mxiai1aimx_i\frac{a_{i1}}{a_i}mxiaiai1
不妨设找的钱为bbb于是有XbyXbyXby将三个数用aia_iai表示有 XkX1a1kX2a2⋯kXnanXk_{X1}a_1k_{X2}a_2\dots k_{Xn}a_nXkX1a1kX2a2⋯kXnan bkb1a1kb2a2⋯kbnanbk_{b1}a_1k_{b2}a_2\dots k_{bn}a_nbkb1a1kb2a2⋯kbnan yky1a1ky2a2⋯kynanyk_{y1}a_1k_{y2}a_2\dots k_{yn}a_nyky1a1ky2a2⋯kynan 且有 ①kbik_{bi}kbi和kyik_{yi}kyi至少有一个为0 ②kyimxik_{yi}mx_ikyimxi
fi,0/1f_{i,0/1}fi,0/1表示考虑第iii种位是否对i1i1i1位进位的方案数 后续参考大佬题解
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#pragma GCC optimize(2)
#includeset
#includemap
#includecmath
#includestack
#includequeue
#includerandom
#includebitset
#includestring
#includevector
#includecstdio
#includecstring
#includeiostream
#includealgorithm
#includeunordered_map
#includeunordered_set
using namespace std;
typedef long long ll;
typedef pairint,int pii;
const int N60;
ll a[N],mx[N],k[N];
ll x;
ll f[N][2];
int n;
int main()
{IO;int T1;//cinT;while(T--){cinnx;for(int i1;in;i) cina[i];for(int i1;in;i) mx[i]a[i1]/a[i];for(int in;i;i--){k[i]x/a[i];x%a[i];}f[1][0]1;if(k[1]) f[1][1]1;for(int i1;in;i){f[i1][0]f[i][0];if(k[i1]) f[i1][1]f[i][0];f[i1][1]f[i][1];if(k[i1]1!mx[i1]) f[i1][0]f[i][1];}coutf[n][0]\n;}return 0;
}理解的不是太清晰~~