首页 > 其他分享 >Codefroces Round #863(div.3)---E

Codefroces Round #863(div.3)---E

时间:2023-04-14 13:11:07浏览次数:60  
标签:typedef return int 863 pos long --- div.3 ll

题目:Problem - E - Codeforces

题意:有一个序列a,a中的每个元素的每一位都不为4,问序列中第k个数字是多少。

分析:可以用数位dp查询出1-r中有多少个满足条件的数字,通过二分r找到结果。

代码:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
using namespace std;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<int,pair<int,int>> pil;
typedef unsigned long long ULL;
const ll mod = 1e9+7;
const int M=1e5+5;
const int N = 3e5+ 5;
ll gcd(ll a, ll b)
{
    return b ? gcd(b, a % b) : a;
}
int cmp(int a, int b)
{
    return a > b;
}
int a[20],len=0;
ll f[20];
ll dfs(int pos,bool limit)
{
    if(!pos) return (ll)1;
    if(!limit&&f[pos]!=-1) return f[pos];
    ll res=0;
    int up=limit?a[pos]:9;
    for(int i=0;i<=up;i++)
    {
        if(i==4) continue;
        res+=dfs(pos-1,limit&&(i==up));
    }
    if(!limit) f[pos]=res;
    return res;
}
ll get(ll x)
{
    len=0;
    while(x)
    {
        a[++len]=x%10;
        x/=10;
    }
    memset(f,-1,sizeof(f));
    return dfs(len,true);
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    int t;
    cin>>t;
    while(t--)
    {
        ll k;
        cin>>k;
        ll l=k,r=1e18;
        while(l<r)
        {
            ll mid=(l+r)/2;
            if(get(mid)-1>=k) r=mid;
            else l=mid+1;
        }
        cout<<r<<endl;
    }
}

 

标签:typedef,return,int,863,pos,long,---,div.3,ll
From: https://www.cnblogs.com/hhhhy0420/p/17317988.html

相关文章

  • docker-compose版本升级
    https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_641.下载安装包根据机器的架构选择具体的版本,更多的请参考官网https://github.com/docker/compose/releases架构下载地址X86https://github.com/docker/compose/releases/download/v2.4......
  • Java基础--数据结构
    数据结构Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类:枚举(Enumeration)、位集合(BitSet)、向量(Vector)、栈(Stack)、字典(Dictionary)、哈希表(Hashtable)、属性(Properties)以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collection)Java......
  • WebRTC学习记录以及以Janus-gateway流程增进理解
    这篇文章是我按照我的学习习惯记录的文章,借鉴了许多大佬的学习框架,以及独自去验证正确性的一个过程Web实时通信(Real-TimeCommunication)概述https://webrtcforthecurious.com/zh/docs/01-what-why-and-how/看完只有一个感受:为什么音视频要扯上web,其中的协议大部分都来自web的......
  • MFC-GetWindowRect获取指定窗口或控件的边框矩形的尺寸
     HWNDhDlgWnd=::FindWindow(_T("#32770"),_T("测试窗口"));if(hDlgWnd){::ShowWindow(hDlgWnd,SW_NORMAL);::SetForegroundWindow(hDlgWnd);HWNDhBtn=::GetDlgItem(hDlgWnd,0x3E8);CRectmRect;......
  • edu145-D
    题目链接:https://codeforces.com/problemset/problem/1809/D一个关键的地方没想到,没有想到枚举分界线。思路:最终改成的字符串的样子一定是这样的:以某个点为分界线,左边全是0,右边全是1。所以可以枚举分界线(分界线的值为1,左边去掉为1的,右边去掉为0的),当且仅当\(s_i=0,s_{i-1}=1\)交......
  • nginx-authenticate.conf Nginx配置 新增长链接支持代理
    nginx-authenticate.confNginx配置新增长链接支持代理新增代码proxy_set_headerConnection"";proxy_http_version1.1;proxy_bufferingoff;proxy_cacheoff;文件代码server{listen8888;server_namelocalhost;......
  • 5、后端学习规划:.Net学习 - 学习规划系列文章
          .Net是微软发布的一整套的软件编程解决方案。笔者从大学的时代开始就阅读.netframework的书籍了,但是当时没有进行实践。毕业后,笔者去了微软技术中心的公司上班,所以就接触了.net以及C#编程语言。作为现在流行的开源的方案(C#代码能够反编译成代码,虽然有代码混淆工具),其......
  • Oracle - 'yyyy-mm-dd' & 'yyyymmdd'
     oracle中日期格式'yyyy-mm-dd'和'yyyymmdd'的区别 对于年月日中"日"是个位的情况下,处理不一样,'yyyymmdd'格式没问题,而式'yyyy-mm-dd'格式则不行,请看: SQL>altersessionsetnls_date_format='yyyy-mm-ddhh24:mi:ss'; Sessionaltered. SQL>......
  • 信创操作系统--麒麟Kylin桌面版(项目一 操作系统安装教程3:麒麟系统驱动安装)
    安装驱动1.1安装显卡驱动1.1.1AMD显卡驱动安装在麒麟操作系统中,其内核已集成AMD显卡的开源驱动,该开源驱动体验良好,能满足日常办公的使用。若要在麒麟操作系统中使用图形密集型程序(如玩游戏、绘制CAD、视频剪辑等),建议安装mesa-vulkan-drivers驱动程序包。在终端中执行以下命令,安装......
  • 【服务器数据恢复】HP-EVA存储多块硬盘离线导致LUN丢失的数据恢复思路和方案
    服务器数据恢复环境:HP-EVA存储环境:EVA某型号控制器+EVA扩展柜+FC硬盘。服务器故障:EVA存储中两块磁盘掉线导致存储中某些LUN丢失不可用。服务器数据恢复过程:1、首先对故障存储中所有磁盘做物理故障检测,经过检测没有发现有硬盘存在物理故障。使用坏道检测工具检测也没有发现坏道......