日常写点奇奇怪怪的乱搞做法 awa

这题跟前面几道数位 DP 的区别在于让求第 \(n\) 小的数。

虽然我不会求也不想学这个,但我们可以 binary search!

问题就转换为求 \([1,mid]\) 中的幸运数个数,这样就和前面那些题做法一样了/xyx

code

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=40;
int a[N],vis[N][5];
int dfs(int pos,int op,bool limit,bool lead)
{
if(pos<1) return (op==3);
if((!limit)&&lead&&vis[pos][op]!=-1) return vis[pos][op];
int up=9,ans=0;
if(limit) up=a[pos];
for(int i=0;i<=up;i++)
{
if(op==3) ans+=dfs(pos-1,3,limit&&(i==up),lead||i);
else ans+=dfs(pos-1,(i==6?op+1:0),limit&&(i==up),lead||i);
}
if(!limit&&lead) vis[pos][op]=ans;
return ans;
}
int work(int x)
{
memset(vis,-1,sizeof(vis));
int len=0;
while(x)
{
a[++len]=x%10;
x/=10;
}
return dfs(len,0,1,0);
}
int T;
signed main()
{
scanf("%lld",&T);
while(T--)
{
int x;
scanf("%lld",&x);
int l=666,r=1e10;
while(l<r)
{
int mid=(l+r)>>1;
if(work(mid)<x) l=mid+1;
else r=mid;
}
cout<<l<<endl;
}
return 0;
}

YbtOJ 数位DP G.幸运666的更多相关文章

  1. HDU 3652 B-number(数位dp&amp;记忆化搜索)

    题目链接:[kuangbin带你飞]专题十五 数位DP G - B-number 题意 求1-n的范围里含有13且能被13整除的数字的个数. 思路 首先,了解这样一个式子:a%m == ((b%m)* ...

  2. 数位dp (2)

    今天继续写几个数位dp F - Balanced Number 题目大意:给你一个区间,让你求这个区间之中满足条件的数字有多少. 这个条件:可以选数的一个位为轴,左右到轴的长度乘上那个数字本身相等的数 ...

  3. 哈尔滨工程大学ACM预热赛 G题 A hard problem(数位dp)

    链接:https://ac.nowcoder.com/acm/contest/554/G Now we have a function f(x): int f ( int x ) {     if ( ...

  4. 幸运数字(数位dp)

    个人心得:数位dp处理起来是真的麻烦,本来动态规划就够头疼的了,菜的一批. 来看这个题目吧,题目在下面. 把题目变成可以求得就是求前n个数中1-n*9的情况的总和,所以用dp[i][j],表示前i个数 ...

  5. 华东交通大学 2019 I 不要666 数位dp进阶

    Problem Description 题库链接 666是一个网络用语,用来形容某人或某物很厉害很牛.而在西方,666指魔鬼,撒旦和灵魂,是不吉利的象征.所以邓志聪并不喜欢任何与6有关的数字.什么数字 ...

  6. 1043 幸运号码 数位DP

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1043 设dp[i][j]表示前i位数中,i位数的和为j时的所有情况. 转 ...

  7. POJ 3689 Apocalypse Someday [数位DP]

    Apocalypse Someday Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 1807   Accepted: 87 ...

  8. 牛客寒假算法基础集训营3处女座和小姐姐(三) (数位dp)

    链接:https://ac.nowcoder.com/acm/contest/329/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...

  9. 处女座和小姐姐(三)(数位dp)

    链接:https://ac.nowcoder.com/acm/contest/329/G 来源:牛客网 题目描述 经过了选号和漫长的等待,处女座终于拿到了给小姐姐定制的手环,小姐姐看到以后直呼666! ...

  10. 数位dp & 热身训练7

    数位dp 数位dp是一种计数用的dp,一般就是要统计一段区间$[L,R]$内,满足一定条件的数的个数,或者各个数位的个数. 数位dp使得暴力枚举变为满足一定状态的记忆化,更加优秀. 数位dp常常会考虑 ...

随机推荐

  1. HTML前端js

    ajax请求方法书写 $.ajax({ type:"POST", url:CONTEXT_PATH+"/appAudit/insertSnDocCountAdmin&qu ...

  2. 从零玩转SpringBoot3-快速入门

    一.简介 1.前置知识 ​ ● Java17 ​ ● Spring.SpringMVC.MyBatis ​ ● Maven.IDEA 2.环境要求 环境&工具 版本(or later) Spr ...

  3. 与 AI 同行,利用 ChatGLM 构建知识图谱

    大家好,我是东方财富的一名算法工程师,这里分享一些利用大模型赋能知识图谱建设的一些实践. 为什么知识图谱需要大模型 在金融场景中,天然会有大量结构化的数据需要投入大量的人力去生产和维护,而这样的数据又 ...

  4. Day12_Java_作业

    1:需求:请设计一个方法,可以实现获取任意范围内的随机数. package student; import java.util.Random; import java.util.Scanner; /* ...

  5. Nginx配置网站默认https

    Nginx配置网站默认https 一.安装Nginx yum install nginx -y 二.修改nginx.conf vim /etc/nginx/nginx.conf 配置80转443 配置 ...

  6. MAUI Blazor项目中如何添加一个返回服务,并支持安卓返回键

    前言 MAUI Blazor中,安卓项目的返回键体验很不好,只能如同浏览器一样返回上一页.但很多时候,我们想让他返回的上一页,不一定就是实际上的上一页.而且也想让返回键去支持一些事件,按下返回键触发, ...

  7. 【技术实战】Vue技术实战【四】

    需求实战一 效果展示 代码展示 <template> <ARow> <ACol> <a-statistic-countdown :value="de ...

  8. ESP32连接云服务器【WebSocket】

    ESP32连接云服务器[ESP32+宝塔面板] 相关文章 ESP32连接MQ Sensor实现气味反应 https://blog.csdn.net/ws15168689087/article/deta ...

  9. MySQL查询语句的执行过程

    SQL语句的查询过程 文章源自:极客时间-MySQL核心知识45讲 1. 前言 先看一张图和一个简单的SQL查询语句:select * from T where ID=10; 2. 概述 大体来说,M ...

  10. zookeeper运维常用指令

    zkServer.sh ./zkServer.sh start:启动zookeeper ./zkServer.sh stop:停止zookeeper ./zkServer.sh status:查看zo ...