题目链接

https://agc007.contest.atcoder.jp/tasks/agc007_f

题意简述

用xxx天时间复制字符串,有可能出错,出错就是复制上一次写过的那个字符。现在给出了原来的字符串和现在的字符串,求xxx最小是多少。

题解

显然对于一段相同而连续的字符,我们只需要关心一开始出现的那个位置。从上往下写出历史版本,用一条线连接连续相同字符一开始出现的位置,可以发现线经过的都是相同的字符。考虑线如何覆盖最优。显然线应该越低(或者说靠近原来的版本)越好。最低的位置应该是它后一个字符的线的位置+1+1+1。因此记个偏移量,再记个前缀和就可以解决了。

代码

#include <cstdio>
#include <algorithm>const int maxn=1000000;int n,ans,sum[maxn+10];
char s[maxn+10],t[maxn+10];int main()
{scanf("%d%s%s",&n,s+1,t+1);if(s[1]!=t[1]){puts("-1");return 0;}int f=0,k=0,now=n;for(int i=n; i; --i){f+=sum[i+k];if((now>i)||(t[i]!=s[now])){while((now>0)&&((now>i)||(t[i]!=s[now]))){--now;}if(now==i){continue;}if(now<=0){puts("-1");return 0;}++k;++f;sum[i+k-1]=0;--sum[now+k-1];}ans=std::max(ans,f);}printf("%d\n",ans);return 0;
}

转载于:https://www.cnblogs.com/Canopus-wym/p/10376101.html

agc007F Shik and Copying String相关推荐

  1. Linux Socket通信 C/S模型

    代码片段(8) [代码] MySocket.h 01 #ifndef _MYSOCKET_0623_H 02 #define _MYSOCKET_0623_H 03   04 #include < ...

  2. c语言结构体嵌套及输出,C语言结构体嵌套

    C语言中的嵌套结构体表示在一个结构体中可以使用另一个结构作为成员.在C语言中定义结构体嵌套有两种方法: 通过独立的结构 通过嵌入式结构 1. 独立结构 我们可以创建2个结构体,但在主结构中应该使用依赖 ...

  3. 六 c# 字符与字符串

    1.字符及转义字符 char类结构标识unicode字符.unicode标准使用称为码位的唯一的21位标量数字标识每个unicode字符,并定义UTF-16编码格式,这一个事指定如何将码位编码为一个或 ...

  4. c语言嵌套结构体大小,C语言结构体嵌套

    C语言中的嵌套结构体表示在一个结构体中可以使用另一个结构作为成员.在C语言中定义结构体嵌套有两种方法: 通过独立的结构 通过嵌入式结构 1. 独立结构 我们可以创建2个结构体,但在主结构中应该使用依赖 ...

  5. 基于Java多线程的打怪升级类游戏设计与开发

    摘要:本文论述了通过JAVA多线程.基于JAVA Swing的GUI图形用户界面设计.IO输入输出流.JDBC技术,实现了游戏系统的UI设计.游戏数据的存储.关卡的设置.用户头像的上传与更改.游戏数据 ...

  6. 联合体c语言指针,C语言联合体

    像结构体一样,联合体(Union)在C语言中是一个用户定义的数据类型,用于保存不同类型的元素. 但它并不占所有成员的内存总和.它只占最大成员的内存,它分享最大成员的内存. 联合体优点 它占用较少的内存 ...

  7. C语言连接结构体,C语言结构体嵌套

    本篇文章帮大家学习c语言结构体嵌套,包含了C语言结构体嵌套使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. C语言中的嵌套结构体表示在一个结构体中可以使用另一个结构作为成员 ...

  8. Java知识——精华总结

    Java知识--精华总结 一.java概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 为了使计算机能够理解人的意图,人类就必须 ...

  9. [已解决] ‘strncpy‘ output truncated before terminating nul copying?bytes from a string of the same leng

    1. 解决方法 下面这样写会出错,因为作为函数的参数时,数组名会降级为指针,使用sizeof得到的结果将会始终为4(一个char指针的大小). char* dest_str; char* src_st ...

最新文章

  1. Select函数实现原理分析
  2. ConvertUtil-数据类型转换的工具类
  3. Windows Live Messenger 8.5 抢先试用
  4. 【知识星球】3D网络结构解读系列上新
  5. mui 时间样式错乱_微信编辑器样式排版错位怎么回事?
  6. centos mysql5.7主从同步配置_centos 7 配置 mysql 5.7 主从复制
  7. Linux学习笔记5-linux中的磁盘
  8. C# 键盘钩子和鼠标钩子的使用详解
  9. Android程序中如何启动浏览器
  10. 抛弃Eclipse,投入IDEA 的独孤求败江湖
  11. c语言输入任意长度字符串,读取不定长字符串输入
  12. CUDA C 编程指导(二):CUDA编程模型详解
  13. 3D游戏编程 作业五 枪打恶鬼(打飞碟)
  14. C++学习(四八三)无法从“std::pair<const _Kty,_Ty>”转换为“_Objty”
  15. 微信小程序新闻详情页面效果实现
  16. 解决登陆界面软键盘弹出遮住登陆按钮
  17. 猜生日 今年的植树节(2012年3月12日),小明和他的叔叔还有小伙伴们一起去植树。
  18. 旋转LED:光の翼电子钟
  19. 跑步打卡!(2023-4-9)
  20. 软银的败笔Wework估值90亿,借壳上市能重回高光时刻么?

热门文章

  1. php - 超详细将 pdf 文档格式转换为图片格式,将 offce pdf 演示文稿转成图像 png / jpg(小白一看就懂的详细教程,附带完整示例源代码)
  2. 云支付整合Tp3.2.3代码整理
  3. 手机怎样把视频多余画面裁剪,视频裁剪视频怎么剪切掉一部分
  4. 常见的交易API接口介绍
  5. [云原生专题-64]:云原生技术助力5G RAN步入”云”霄 - 对云原生的理解
  6. nyoj114 某种序列(大数)
  7. 2021互联网大厂新年礼盒大比拼!
  8. 哈工大计算机学硕录取,哈工大计算机学院243人进复试241人录取,仅刷2人,杠杠的!...
  9. MySQL数据库连接超时(wait_timeout)问题的处理
  10. SuperMap iObject常见问题解答集锦(二)