Codeforces Round #265 (Div. 2) E. Substitutes in Number
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相关推荐
- 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 ...
- 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 ...
- Educational Codeforces Round 112(Div.2) ABC题解
D题好像可以做一做,挖个坑以后做好了来填(doge Educational Codeforces Round 112(Div.2) 题目列表 1.A 2.B 3.C 1.A 原题链接 题目大意 有三种 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- 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 ...
- 构造 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 的例子可以 ...
- Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...
- Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...
- Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...
最新文章
- JS 实现下载Blod文件
- 如何将两个集合合并_如何将剪切的音频文件进行合并
- VBS随时监视注册表的变化,记录有变化的值或键等信息(包括一个文件内容比较函数)...
- AliGraph:一个工业级的图神经网络平台
- SOAP:简单对象访问协议
- fullcalendar php,日历插件fullcalendar+php的使用教程 — 读取json数据
- MySQL笔记-解决...mysql.sock (13)(两种情况会产生此问题)
- nopcommerce 开源商城
- sed的选项与命令简要
- oracle中批量修改表,Oracle 批量修改某个用户下表的表空间
- Docker容器数据卷-Volume小结
- mysql获取当前时间示范,mysql 实时显示当前运行的sql语句
- 缓冲流与打印流(字节与字符)
- 小技巧(12):关于PC端简单的视频剪辑处理中,bandicam(录制)、pr(配音)、pr(导出)、剪映(字幕识别)、pr(最终版导出)的全过程及基础设置
- MACOS使用Karabiner解决CapsLock按键切换大写延迟问题
- 服务器tcp协议安装不了,win2008 R2提示错误“请安装TCP/IP协议 error=10106
- CDN加速的四大解决方案
- contiki学习笔记(五)ctimer和etimer
- 阔别母校35年!院士,履新北大!
- Warshall算法
热门文章
- 南宁网络推广浅析如何分析SEO数据,才能助力网站优化效果更“事半功倍”?...
- 企业网站关键字要学会注重重点优化!
- B2B平台推广技巧让网络营销更上一个台阶!
- 模拟海_浙江平湖“海水稻”丰收的背后,有这家来自上海企业的科技“秘方”...
- html瀑布式原理,纯css3+html瀑布流效果
- 正则表达式匹配换行符
- AS升级3.1 编译报错:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin.
- Tensorflow深度学习之十二:基础图像处理之二
- 将TensorFlow模型变为pb——官方本身提供API,直接调用即可
- “DNS隧道”盗号木马分析——类似hjack偷密码然后利用dns tunnel直传数据发送出去...