1280A - Cut and Paste(模拟)
发布日期:2021-06-30 10:24:59 浏览次数:2 分类:技术文章

本文共 697 字,大约阅读时间需要 2 分钟。

观察发现 x x x不大,应该可以直接模拟

而且光标最多移动到 x x x位置,意味着只需要知道 [ 1 , x ] [1,x] [1,x]的字符是什么就可以了

所以先模拟到 x x x位置,然后就直接计算长度即可

很无语的题目(不过作为 d i v 1 A div1A div1A也一般般八…)

#include 
using namespace std;#define int long longconst int maxn = 3e6+10;const int mod = 1e9+7;char a[maxn];int x;signed main(){
int t; cin >> t; while( t-- ) {
scanf("%lld%s",&x,a+1); int now = strlen( a+1 ), flag = 0; for(int i=1;i<=x;i++) {
//暂时暴力模拟 if( flag==0 ) {
int last = now; for(int ci=1;ci<=(a[i]-'0')-1;ci++) for(int j=i+1;j<=last;j++) a[++now] = a[j]; if( now>=1e6 ) flag = 1; } else//长度已经大于1e6了 now = ( now+(now-i)*(a[i]-'0'-1) )%mod; } cout << (now%mod+mod)%mod << endl; }}

转载地址:https://issue-is-vegetable.blog.csdn.net/article/details/110260593 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:1413D. Shurikens(贪心,栈)
下一篇:牛客巅峰赛S2第四场.B.交叉乘(数学推导)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月10日 15时52分33秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章