牛客网第4场A

链接:https://www.nowcoder.com/acm/contest/142/A
来源:牛客网题目描述 
A ternary string is a sequence of digits, where each digit is either 0, 1, or 2.
Chiaki has a ternary string s which can self-reproduce. Every second, a digit 0 is inserted after every 1 in the string, and then a digit 1 is inserted after every 2 in the string, and finally the first character will disappear.
For example, ``212'' will become ``11021'' after one second, and become ``01002110'' after another second.
Chiaki would like to know the number of seconds needed until the string become an empty string. As the answer could be very large, she only needs the answer modulo (109 + 7).
输入描述:
There are multiple test cases. The first line of input is an integer T indicates the number of test cases. For each test case:
The first line contains a ternary string s (1 ≤ |s| ≤ 105).
It is guaranteed that the sum of all |s| does not exceed 2 x 106.
输出描述:
For each test case, output an integer denoting the answer. If the string never becomes empty, output -1 instead.
示例1
输入复制
3
000
012
22
输出复制
3
93
45

欧拉降幂且记录;

(1)如果在消除一个 0 前经过了 n 秒,那么消掉这个 0 需要 n + 1 秒。

(2)如果在消除一个 1 前经过了 n 秒,那么消掉这个 1 与其产生的所有数需要 (n + 1) * 2 秒。

(3)如果在消除一个 2 前经过了 n 秒,那么消掉这个 2 与其产生的所有数需要 (2 ^ (n + 1) - 1) * 3 秒。

 

#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<vector>
#include<map>
#include<string.h>
using namespace std;
#define ll long long
map<ll,ll>mp;
char s[100000];
ll phi(ll x)
{if(mp[x]) return mp[x];ll temp=x;ll ans=x;if(x==1) return mp[1]=1;for(ll i=2;i*i<=x;i++){if(x%i==0){ans=ans/i*(i-1);while(x%i==0) x/=i;}}if(x>1) ans=ans/x*(x-1);return mp[temp]=ans;
}ll qsm(ll a,ll b,ll c)
{ll ret = 1;for (;b;b >>= 1,(a *= a)%=c)if (b & 1) (ret *= a)%=c;return ret;
}
ll solve(ll x,ll mod)
{if(x==0||mod==1)return 0;if(s[x]=='0'){return (1LL+solve(x-1,mod)+mod)%mod;}else if(s[x]=='1'){return (2*(solve(x-1,mod)+1)+mod)%mod;}else{ll ph=phi(mod);ll t=(solve(x-1,ph))%ph;return (qsm(2,t,mod)*6%mod-3+mod*3)%mod;}}
int main()
{int n;scanf("%d",&n);while(n--){scanf("%s",s+1);printf("%lld\n",solve(strlen(s+1),1e9+7));}return 0;
}

 

 

转载于:https://www.cnblogs.com/2014slx/p/9389594.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谈谈NiTE 2手部跟踪在彩色图像上的显示

主要内容&#xff1a; NiTE2手部跟踪流程代码演示总结一、NiTE2手部跟踪流程 我自己都感觉到天天在重复着相同的代码&#xff0c;但我觉得没什么不好的&#xff0c;对于新东西的学习只有在重复再重复的过程中&#xff0c;才能积累经验&#xff0c;较少犯“低级错误”的几率&…

java 应用是单机集群_【架构】Tomcat单机部署多应用Windows

Tomcat单机部署多应用-Windows1、添加新增的Tomcat相关环境变量CATALINA_BASE C:\tomcat1CATALINA_HOME C:\tomcat1TOMCAT_HOME C:\tomcat1CATALINA_2_BASE C:\tomcat2CATALINA_2_HOME C:\tomcat2TOMCAT_2_HOME C:\tomcat22、第一个tomcat不变3、打开第二个tomcat目录bin…

java long类型转string_JavaSE的学习——数据类型

数据类型分为基本数据类型和引用数据类型两大类在下面数据类型的介绍中只会介绍8种基本数据类型和引用数据类型中的类类型中的一个类String基本数据类型1. 计算机中的存储单位8bit 1byte 1024byte 1KB 1024KB 1M1024M 1GB1024GB 1T2. 整数型数据byte short int long1.long…

DWTagList

2019独角兽企业重金招聘Python工程师标准>>> DWTagList 根据给定的 NSArray 数组来创建标签列表&#xff0c;可自定义字体、颜色和其他属性。 转载:http://www.adobex.com/ios/source/details/00000820.htm 转载于:https://my.oschina.net/u/868244/blog/106245

爬虫(爬虫原理与数据抓取)

通用爬虫和聚焦爬虫 根据使用场景&#xff0c;网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种. 通用爬虫 通用网络爬虫 是 捜索引擎抓取系统&#xff08;Baidu、Google、Yahoo等&#xff09;的重要组成部分。主要目的是将互联网上的网页下载到本地&#xff0c;形成一个互联网内容的…

SQL Server Insert 操作效率(堆表 VS 聚集索引表)

“SQL Server的Insert操作在堆表或者聚集索引表的时候&#xff0c;哪个效率更高&#xff1f;为什么高&#xff1f;” 之前有同事问过我这个问题&#xff0c;为了确保日志库的记录效率&#xff0c;于是我做了简单测试了&#xff0c;首先要先强调几点概念&#xff1a; 堆表&#…

electron 打包_Vue3+Electron整合方式

教程源码&#xff1a;nofacer/vue3-electron​github.com之前写过一篇文章Vue结合Electron构建跨平台应用&#xff08;TDD&#xff09;。当时的方法后来发现了一个问题&#xff0c;就是打包后的应用拿到其他机子上没法用&#xff0c;原因在于index.html的地址是个绝对路径&…

Linux按照时间顺序列出文件

按照递增时间顺序列出所有文件 ls -ltr -l表示列出长串数据&#xff0c;-t表示按照时间顺序&#xff0c;-r表示将排序的结果反向输出 按照时间递减的顺序列出所有文件 ls -lt 转载于:https://www.cnblogs.com/yongjieShi/p/9395932.html

RestKit

2019独角兽企业重金招聘Python工程师标准>>> Restkit 是一个开源的 objective-c 框架&#xff0c;允许在 iOS 和 Mac OS X 的 Objective-C 中与 RESTful Web 服务进行交互&#xff0c;包含简单的 HTTP request/response API &#xff0c;带有强大的对象映射系统用于…

全国计算机等级考试题库二级C操作题100套(第41套)

更多干货推荐可以去牛客网看看&#xff0c;他们现在的IT题库内容很丰富&#xff0c;属于国内做的很好的了&#xff0c;而且是课程刷题面经求职讨论区分享&#xff0c;一站式求职学习网站&#xff0c;最最最重要的里面的资源全部免费&#xff01;&#xff01;&#xff01;点击进…

2012年终总结 二

2019独角兽企业重金招聘Python工程师标准>>> 接上文。。。 经过一些搜索和了解之后&#xff0c;最后选定了我现在这个公司。现在&#xff0c;至少我没有感觉到我选错。 刚近公司&#xff0c;进行了新人的入职培训1天&#xff0c;这个主要是了解公司状况。而后&…

python语言包括哪些实现_Python语言基础考察点:python语言基础常见考题(一)

一、python是静态还是动态类型&#xff1f;是强类型还是弱类型&#xff1f; 1、动态强类型语言(不少人误以为是弱类型) 不要傻傻分不清 2、动态还是静态指的是编译期还是运行期确定类型 3、强类型指的是不会发生隐式类型转换 若类型语言强类型语言4、python作为后端语言优缺点 …

由于开发者通过接口修改了菜单配置_开发者说:Seata 0.7.0 版本,你 get 'Metrics' 技能了吗?...

从用户的视角来感受一个开源项目的成长&#xff0c;是我们推出「开发者说」专栏的初衷&#xff0c;即在开发者进行开源项目选型时&#xff0c;提供更为立体的项目信息。专栏所有内容均来自作者原创/投稿&#xff0c;本文是「开发者说」的第9篇&#xff0c;作者郑扬勇&#xff0…

Java 多线程(三) 线程的生命周期及优先级

Java 多线程&#xff08;三&#xff09; 线程的生命周期及优先级 线程的生命周期 线程的生命周期&#xff1a;一个线程从创建到消亡的过程。 如下图&#xff0c;表示线程生命周期中的各个状态&#xff1a; 线程的生命周期可以分为四个状态&#xff1a; 1.创建状态&#xff1a; …

eclipse 导入maven项目_手把手的Spring Boot Web 项目教程,Hello Spring Boot

在开始之前&#xff0c;我们需要去创建一个SpringBoot项目&#xff0c;大家可以去 http://start.spring.io/ 这个网站生成一个项目。如图&#xff0c;这边可以对SpringBoot项目进行详细设置&#xff1a;下面这个web一定要勾选&#xff1a;SpringBoot版本号选择1.5.10全部设置好…

ASP.Net中实现中英文复合检索文本框

前段时间&#xff0c;写一个用户部门的管理页面&#xff0c;需要对后台获取的用户数据实现英汉检索功能。  同时&#xff0c;选定一个选项之后&#xff0c;需要触发事件与后台交互&#xff0c;将该用户所在的部门显示到页面右边的ListBox控件中。 一、Dojo的FilteringSelect组…

sklearn 安装_初识sklearn

我的主业是互联网运营&#xff0c;业余的python爱好者&#xff0c;学习python已经快两年&#xff0c;主攻网络爬虫与数据分析&#xff0c;爬虫能使用代理ip、打码平台、OCR识别、基本的js逆向处理反爬&#xff1b;数据分析主要使用pandas与pyecharts进行可视化&#xff0c;我的…

[工具库]JOJSONBuilder工具类——一键把多个bean对象数据转换为JSON格式数据

本人大四即将毕业的准程序员&#xff08;JavaSE、JavaEE、android等&#xff09;一枚&#xff0c;小项目也做过一点&#xff0c;于是乎一时兴起就写了一些工具。 我会在本博客中陆续发布一些平时可能会用到的工具。 代码质量可能不是很好&#xff0c;大家多担待&#xff01; 代…

mysql long类型_怒肝两个月MySQL源码,我总结出这篇2W字的MySQL协议详解(超硬核干货)!!...

点击上方蓝色“冰河技术”&#xff0c;关注并选择“设为星标”持之以恒&#xff0c;贵在坚持&#xff0c;每天进步一点点&#xff01;作者个人研发的在高并发场景下&#xff0c;提供的简单、稳定、可扩展的延迟消息队列框架&#xff0c;具有精准的定时任务和延迟队列处理功能。…

状压dp之二之三 炮兵阵地/玉米田 By cellur925

一、简单的状压dp 玉米田 题目描述 Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy corn for the cows on a number of squares. Regrettably, some of the squares…