首页 > 其他分享 >CF 464C Substitutes in Number 题解

CF 464C Substitutes in Number 题解

时间:2022-10-26 19:35:09浏览次数:48  
标签:10 Substitutes int 题解 CF MAXN str 464C

前置知识:\((a+b)\equiv(a\bmod p+b\bmod p)\pmod{p}\)。

同余定理使用后不能再修改数字。那么为了能用这个公式,我
们倒序处理每个数字。

定义 \(d_i\) 为 \(10\) 的位数 \(-1\) 次幂对 \(10^9+7\) 取模的值(数 \(i\) 经转化后的位数),\(b_i\) 表示数 \(i\) 转化后的数对 \(10^9+7\) 取模的值,那么每个数(包括答案)就可以通过拼凑的办法搞出来。

/*
 * Title: Substitutes in Number
 * Source: 洛谷-CF
 * URL: https://www.luogu.com.cn/problem/CF464C
 * Author: Steven_lzx
 * Command: -std=c++23 -Wall -fno-ms-extensions
 * Date: 2022.10.26
 */
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MOD=1e9+7,MAXN=100010;
int a[MAXN],n,len,x;
ll d[10],b[10],num,wei,ans;
char ss[MAXN];
string s,str[MAXN];
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin>>s>>n;
    //cout<<s<<endl<<n<<endl;
    //cout<<"???\n";
    cin.get();
    for(int i=1;i<=n;i++)
    {
        cin>>a[i]>>str[i];
        str[i]=str[i].substr(2);
    }
    for(int i=0;i<10;i++)
    {
        d[i]=10;
        b[i]=i;
    }
    for(int i=n;i;i--)
    {
        len=str[i].length();
        if(!len)
        {
            b[a[i]]=0;
            d[a[i]]=1;
            continue;
        }
        num=0;
        wei=1;
        for(int j=0;j<len;j++)
        {
            x=str[i][j]-'0';
            num=(num*d[x]+b[x])%MOD;
            wei=(wei*d[x])%MOD;
        }
        b[a[i]]=num;
        d[a[i]]=wei;
    }
    ans=0;
    for(int i=0;i<(int)s.length();i++)
    {
        x=s[i]-'0';
        ans=(ans*d[x]+b[x])%MOD;
    }
    cout<<ans<<endl;
    return 0;
}

标签:10,Substitutes,int,题解,CF,MAXN,str,464C
From: https://www.cnblogs.com/2020gyk080/p/16829726.html

相关文章

  • 2022/10/26 考试题解
    又被抓摆了/kkT4(T3?)CactustoTreelinkSolutiontmd,连tm\(\Theta(n^2)\)都没有看出来!!!!!!/fn考虑\(\Theta(n^2)\)怎么做,其实就是对于每一个点直接BFS(似乎对正解也没有......
  • CSPS2019 括号树 题解
    链的部分分我们设f[i]表示以i结尾的括号序列有多少个,那么i的实际答案就是f的前缀和显然,所有左括号和不能匹配的右括号的f均为0对于每一个能匹配的右括号i,我们找到与之......
  • EasyCVR数据库优化:ehome设备表不能同步更新的问题解决
    EasyCVR视频融合云平台可支持多协议、多设备接入,包括国标GB28181、RTMP、RTSP/Onvif、海康SDK、大华SDK、Ehome等协议,同时也能分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视......
  • P7911 网络连接评论及c++题解
    P7911网络连接1.原题链接root2.评论下位黄的水平前置知识:sscanf()函数,sprintf()函数,map<>当然,不会sscanf()和sprintf()也有解法,详见解法13.解法解法1#inclu......
  • arc138C 题解
    挺喜欢这道题,可惜大号已经红了,又不想要估值,只能用小号交。A与B在玩游戏,其中A先手。有\(n\)个数\(a_1-a_n\),A每次可以任意取一个数,B每次会取没有被取的数......
  • 2022ACM第二次招新题解
    A-签到题这道超级简单的题目没有任何输入。你只需要在一行中输出著名短句"helloworld"就可以了。代码&思路无思路记得完全一样就行,别整Helloworld/helloworl......
  • CYSYOI 2022 Round #1 赛后题解报告
    CYSYOI2022Round#1赛后题解报告我是个大聪明,一个200分的蒟蒻忍泪前来写题解和赛后报告。/kk赛后题解T1CHT去挖矿题目详情算法解析好的,一道大模拟。直接上代......
  • EasyCVR数据库优化:ehome设备表不能同步更新的问题解决
    EasyCVR视频融合云平台可支持多协议、多设备接入,包括国标GB28181、RTMP、RTSP/Onvif、海康SDK、大华SDK、Ehome等协议,同时也能分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视......
  • 背包问题常见解题策略与例题解析
    背包问题作为常见的一种Dp题目的变法多种多样然而只要你理解透了背包的做法和各种优化模型就显而易见了千万不要似懂非懂如果还有疑虑可以参考我的另一篇文章​​​背......
  • 洛谷 P5698 [CTSC1998]算法复杂度 题解
    前言咕了大半年,我回来了说实话当鸽子的感觉挺不错???原题链接题意给定一个伪代码,判断他总共需要进行几次操作,用多项式形式输出。题解首先,这是一道模拟题,发现性质的话比......