http://codeforces.com/contest/465/problem/E

给定一个字符串,以及n个变换操作,将一个数字变成一个字符串,可能为空串,然后最后将字符串当成一个数,取模1e9+7。

逆向操作,维护每次替换后产生的数值和长度

替换P - > d_1d_2……d_n后

新的P的长度Len[ d_1 ] +……+ Len [ d_n ]
新的P值是Val[ d_n ] + 10 ^(Len [ d_n ])* Val [ d_(n-1)] + 10 ^(Len [ d_n ] + [ d_ len(n-1)])* Val [ d_(n-2)] +…10 ^(Len [ d_n ] + [ d_ len(n-1)] +……+ Len [ d_2 ])* Val [ d_1 ]取模。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <stack>
#include <queue>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <cassert>
using namespace std;
#define RD(x) scanf("%d",&x)
#define RD2(x,y) scanf("%d%d",&x,&y)
#define clr0(x) memset(x,0,sizeof(x))
typedef long long LL;
const int maxn = 100005,modo = 1000000007;
char s[maxn],_q[maxn];
int d[maxn];
string q[maxn];
int n,rep[10],pow[10];
int main() {scanf("%s%d",s,&n);for(int i = 0;i < n;++i){//scanf("%d->%s",&d[i],_q);scanf("%s",_q);d[i] = _q[0] - '0';q[i] = _q+3;}for(int i = 0;i < 10;++i)rep[i] = i,pow[i] = 10;for(int i = n-1;i >= 0;--i){LL r = 0,p = 1LL;for(int j = 0;j < q[i].size();++j){int num = q[i][j] - '0';p = (p*pow[num])%modo;r = (r*pow[num] + rep[num])%modo;}rep[d[i]] = r;pow[d[i]] = p;}n = strlen(s);LL ans = 0;for(int i = 0;i < n;++i){int num = s[i]-'0';ans = (ans*pow[num]+rep[num])%modo;}printf("%I64d\n",ans);return 0;
}

转载于:https://www.cnblogs.com/zibaohun/p/4050737.html

Codeforces Round #265 (Div. 2) E. Substitutes in Number相关推荐

  1. Codeforces Round #265 (Div. 1) C. Substitutes in Number dp

    题目链接: http://codeforces.com/contest/464/problem/C J. Substitutes in Number time limit per test 1 sec ...

  2. Codeforces Round #304 (Div. 2) D. Soldier and Number Game 数学 质因数个数

    D. Soldier and Number Game Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/conte ...

  3. Educational Codeforces Round 112(Div.2) ABC题解

    D题好像可以做一做,挖个坑以后做好了来填(doge Educational Codeforces Round 112(Div.2) 题目列表 1.A 2.B 3.C 1.A 原题链接 题目大意 有三种 ...

  4. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  5. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  6. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  7. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  8. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  9. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

最新文章

  1. JS 实现下载Blod文件
  2. 如何将两个集合合并_如何将剪切的音频文件进行合并
  3. VBS随时监视注册表的变化,记录有变化的值或键等信息(包括一个文件内容比较函数)...
  4. AliGraph:一个工业级的图神经网络平台
  5. SOAP:简单对象访问协议
  6. fullcalendar php,日历插件fullcalendar+php的使用教程 — 读取json数据
  7. MySQL笔记-解决...mysql.sock (13)(两种情况会产生此问题)
  8. nopcommerce 开源商城
  9. sed的选项与命令简要
  10. oracle中批量修改表,Oracle 批量修改某个用户下表的表空间
  11. Docker容器数据卷-Volume小结
  12. mysql获取当前时间示范,mysql 实时显示当前运行的sql语句
  13. 缓冲流与打印流(字节与字符)
  14. 小技巧(12):关于PC端简单的视频剪辑处理中,bandicam(录制)、pr(配音)、pr(导出)、剪映(字幕识别)、pr(最终版导出)的全过程及基础设置
  15. MACOS使用Karabiner解决CapsLock按键切换大写延迟问题
  16. 服务器tcp协议安装不了,win2008 R2提示错误“请安装TCP/IP协议 error=10106
  17. CDN加速的四大解决方案
  18. contiki学习笔记(五)ctimer和etimer
  19. 阔别母校35年!院士,履新北大!
  20. Warshall算法

热门文章

  1. 南宁网络推广浅析如何分析SEO数据,才能助力网站优化效果更“事半功倍”?...
  2. 企业网站关键字要学会注重重点优化!
  3. B2B平台推广技巧让网络营销更上一个台阶!
  4. 模拟海_浙江平湖“海水稻”丰收的背后,有这家来自上海企业的科技“秘方”...
  5. html瀑布式原理,纯css3+html瀑布流效果
  6. 正则表达式匹配换行符
  7. AS升级3.1 编译报错:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin.
  8. Tensorflow深度学习之十二:基础图像处理之二
  9. 将TensorFlow模型变为pb——官方本身提供API,直接调用即可
  10. “DNS隧道”盗号木马分析——类似hjack偷密码然后利用dns tunnel直传数据发送出去...