首页 > 其他分享 >AtCoder Beginner Contest 208 E

AtCoder Beginner Contest 208 E

时间:2024-04-28 17:48:01浏览次数:21  
标签:AtCoder Beginner Contest int 208 mul

E - Digit Products

点击查看代码
map<int,int>f[20];

void solve(){
    int n,k;cin>>n>>k;
    auto s=to_string(n);
    int m=s.size();
    function<int(int,int,int,int)>dfs=[&](int i,int limit,int is_num,int mul)->int{
        if(i==m)return mul<=k;
        if(!limit&&is_num&&f[i].count(mul))return f[i][mul];;
        int up=limit?(s[i]-'0'):9;
        int res=0;
        for(int d=0;d<=up;d++){
            int tmp;
            if(!is_num&&d==0)tmp=mul;
            else if(!is_num&&d)tmp=d;
            else tmp=mul*d;
            res+=dfs(i+1,limit&&d==up,is_num||d!=0,tmp);
        }
        if(!limit&&is_num)f[i][mul]=res;
        return res;
    };
    cout<<dfs(0,1,0,0)-1;
}

标签:AtCoder,Beginner,Contest,int,208,mul
From: https://www.cnblogs.com/archer233/p/18164193

相关文章

  • AtCoder Beginner Contest 351 E - Jump Distance Sum 切比雪夫距离与曼哈顿距离的转
    先说知识点。曼哈顿距离:横纵坐标距离差的绝对值的和,即|X1-X2|+|Y1-Y2|,离(0,0)点曼哈顿距离为1的点形成的是一个旋转45度后的正方形切比雪夫距离:横纵坐标距离差的绝对值的最大值,即max(|X1-X2|,|Y1-Y2|),离(0,0)点切比雪夫距离为1的点形成的是一个不旋转的正方形曼哈......
  • atcoder集
    AtCoderBeginnerContest351A-Thebottomoftheninth(签到题) Code:#include<bits/stdc++.h>usingnamespacestd;#definedebug(x)cerr<<#x<<":"<<x<<'\n';intmain(){ios::sync_w......
  • [atcoder 349] [F - Subsequence LCM]
    SOSDP学习笔记Linkhere:代码:importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.math.BigInteger;importjava.util.*;publicclassMain{staticintn;staticlongm;staticlong[]a;......
  • 碎片和水位线回收的验证过程 转发 https://www.modb.pro/db/1780420808865845248
    1、数据库基础内容表空间-数据文件-段-区-块一个表空间由一个或者多个数据文件组成高水位线和表碎片的示意图其中被划掉的字代表delete删除,其中耶就是后续的insert,只会在末尾增加,而不是填充被删除的字段,这样就会导致数据库在搜寻数据时会浪费很多资源。整理碎片后大概是这......
  • AtCoder Beginner Contest 350 A - G 题解
    AtCoderBeginnerContest350A-PastABCsSolution把最后三个字符转成数字判断即可Code#include<bits/stdc++.h>usingnamespacestd;intmain(){strings;cin>>s;s=s.substr(3,3);intx=0;x=(s[0]-'0')*100+(s[1]-�......
  • atcoder regular 176 (ARC176) A、B题解
     A很容易有一个错误想法,就是行从1~n,列从1~n拿,这样,第三个样例,最后,第7行,第7列,需要都增加两个数,但是(7,7)这个位置只能有一个数。我的做法是优先队列/set队列,每次选择行、列之中当前已经有的数目最少的(这样它们最需要添加),这样能保证,行列需要添加的,不会出现只能选择多个行列一样的......
  • QT beginner QFileDialog
    QFileQTextStreamQMessageBoxQFileDialog应用示例mainwindow.cpp#include"mainwindow.h"#include"ui_mainwindow.h"#include<QFile>#include<QTextStream>#include<QMessageBox>#include<QFileDialog>MainWindow::MainWi......
  • AtCoder Beginner Contest 350 G - Mediator
    链接:https://atcoder.jp/contests/abc350/tasks/abc350_g大致题意:给出n个点,q个询问1号询问要求u,v之前加一条无向边图始终是一个森林2号询问询问是否有一个点与u,v都相邻,若有则输出该点,若无则输出0。询问强制在线。思路:在题目要求的图中,满足2号询问的点只有三种情况:要么这个......
  • AtCoder Beginner Contest 350
    B-DentistAoki难度:⭐题目大意现在有数列1~n,现在有m次操作,每次给出一个x,如果x存在就是删去,不存在就加上;问最后数列还剩多少个;解题思路数据很小,暴力就行;神秘代码#include<bits/stdc++.h>#defineintlonglong#defineIOSios::sync_with_stdio......
  • Atcoder ABC 350 全题解
    题外话别以为博主之前几场ABC都咕咕咕了,最近状态不好,这次ABC终于回来了(也有可能是题目变容易了,有图为证)P.S.请耐心看到最后!!否则后果自负!!!AB这年头谁不会AB啊当然有。不学OI的人。C考虑选择排序,依次将$1,2,3\cdots$与它们应该在的位置进行交换。那如果真的......