首页 > 其他分享 >2022.11.17模拟赛题解

2022.11.17模拟赛题解

时间:2022-11-17 20:12:13浏览次数:80  
标签:lfloor 10 return 17 int 题解 mid 位数 2022.11

从今天起更换码风。

猜数字

两种做法:二分,哈希

二分

记函数 \(g(x)\) 表示数字 \(x\) 在 \(10\) 进制下的位数。
可以观察到对于正整数 \(k(k\ge 2)\),都有 \(g(k^k)<g((k+1)^{k+1})\),所以可以考虑二分答案,\(\rm check\) 的时候使用位数判断即可。
那么 \(k^k\) 的位数是多少呢?首先考虑 \(k\) 的位数。易得,\(k\) 的位数是 \(\lfloor \log _{10} d \rfloor +1\)。则 \(k^k\) 的位数是 \(\lfloor \log _{10} k^k \rfloor +1=\lfloor k\times \log _{10} k \rfloor +1\)。
理解上面这个等式也很简单,若 \(10^x=k\),则 \(10^{x\times k}=k^k\)。

const int N = 300005;
char s[N];
int n;
int calc(int x) // 计算x^x的位数
{ 
    return floor(x * log10(x)) + 1;
}
bool chk(int x) 
{
    return calc(x) >= n;
}
signed main() 
{
    scanf("%s", s + 1); n = strlen(s + 1);
    if (n == 1) 
    {
        if (s[1] == '1') write(1);
        else write(2);
        return 0;
    }
    int L = 1, R = 50000;
    while (L < R) 
    {
        int mid = L + R >> 1;
        if (chk(mid)) R = mid;
        else L = mid + 1;
    }
    write(R);
    return 0;
}

哈希

首先可以发现高精度取模是 $ \Omicron(len)$ 的。
对于 \(1\sim 50000\) 中所有的数都进行一次快速幂取模,如果和输入的数余数相同则大概率相同。多整几个模数即可。
代码略。

标签:lfloor,10,return,17,int,题解,mid,位数,2022.11
From: https://www.cnblogs.com/cyyhcyyh/p/16900633.html

相关文章

  • 11.17
    今日内容1.黏包现象2.struct模块3.黏包代码实战4.UDP协议(了解)5.并发编程理论6.多道技术7.进程理论8.进程的并行与并发9.进程的三状态1.黏包现象服务端一次性......
  • 2022.11.17 Java 面向对象的介绍
    属性+方法=类面向过程与面向对象不可分割,面向对象是由一个个面向过程组成,就像教育部由一个个老师组成。面向对象的本质:以类的方式组织代码,以对象的形式组织(封装)数据;......
  • 【221117-9】若f(x立方+3x平方+3x)=x。求函数f(x)的解析式?
    ......
  • LG4778 Counting swaps 题解
    LG4778Countingswaps给定你一个\(1\simn\)的排列\(p\),可进行若干次操作,每次选择两个整数\(x,y\),交换\(p_x,p_y\)。用最少的操作次数将给定排列变成单调上升的序......
  • 今晚题解
    题意概述给定一张\(n\)个点\(m\)条边的有向图\(G\)。有\(n\)个硬币。初始时有的正面朝上,有的反面朝上。每次你可以手动翻转一枚。如果在\(G\)中有边\(a\righ......
  • Aizu 2378 SolveMe 题解 (置换,计数)
    题目链接题意简述有一个n个点的有向图,每个点有两条出边,称为A边和B边。称一种构图是好的,当且仅当对于所有i,从第i个点出发,先连走x次A边,走1次B边,再连走y次A边,走1次B边,再走z......
  • CF1181C Flag 题解
    题意:问在一个\(n\timesm\)的平面里有多少旗帜,旗帜的定义是三条宽度相等的带子,相邻的带子颜色不能相同(第一和第三条的颜色可以相同)。考虑以左上角统计旗帜,预处理每个点......
  • 11月17日内容总结——
    目录一、粘包现象什么是粘包黏包现象产生的原因二、struct模块及解决黏包问题的流程struct模块解决黏包问题初级版本解决过程中遇到的问题解决黏包问题终极解决方案三、粘......
  • 小程序获取不到用户头像和昵称返回微信用户问题解决,即小程序授权获取用户头像规则调整
    最近好多同学在学习石头哥小程序课程的时候,遇到了下面这样的问题,在小程序授权获取用户头像和昵称时,获取到的是下面这样的。到底是什么原因导致的呢,去小程序官方文档一看,又是......
  • Codeforces Gym 100958 E Cellular Automaton (Makoto rng_58 Soejima contest) 题解
    题目链接其实"序列中1的数量有限"是一个非常重要的条件。这意味着我们可以找到序列中的第一个1和最后一个1。考虑这样一件事情:初始时我们把一个长度为\(2^{2w+1}\)的"滑......