题意:
给定两个字符串s1,s2利用s1去构造s2,s1有无限个,可以翻转,你最少要用几个s1才能构造s2。输出每一次使用的s1的有效区间。
伪思路:
据说是暴力就能过的题目。然而自己就是暴力差,模拟差,DP差。。。。mdzz好像都差,不会怎么暴力。
其他思路都想过一点,然后剩下两个比较可能的;
①:我暴力一发s2,以s2的字符为开始然后暴力过去,让s1去正的反的匹配,所以怎么记录?但是这样细节上处理太多了,比如这个刚好接上,或者不是刚好接上。这样的细节处理。
②:我暴力一发s2,每次取正反,然后一直暴力到终点,每次取正反暴力。如果正反都是没有结果直接可以标记掉,然后put:-1。
但是这样的不好就是中间的情况的太多了,如果每次都有情况的话,那么就是2^很多次左右吧,但是这个len(s2)是有2100,这么暴力无非是作死。如果每次取最优呢?也就是每次我拿长的。。。这样真的可以么。。。直觉就是80%不行。就是觉得如果我这次正的比较长,然后可能会比较短,然后执行比较短的下次会比较长。然后好像举不出例子,所以要试一发。其实打起来也是很吃力啊。

#include <bits/stdc++.h>
//#include<iostream>
//#include<cstdio>
//#include<math.h>
//#include<string.h>
//#include<algorithm>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const double eps=1e-6;
const double pi=acos(-1.0);
const int mod=998244353;
const int INF=0x3f3f3f3f;const int N=1200;char s1[N*2];
char s2[N*2];
int dp[N*2][3];int main()
{int flag,n,m,k,j,h1,h2;int num;int len1,len2;scanf("%s%s",s1,s2);len1=strlen(s1);len2=strlen(s2);flag=k=0;num=0;int s,t;int x;for(int i=0;i<len2;){int nextpos=-1;int p1,p2;for(int j=0;j<len1;j++){int k=j;int next=i;while(k<len1&&s1[k]==s2[next])k++,next++;if(next>nextpos){nextpos=next;p1=j+1;p2=k;}}for(int j=len1-1;j>=0;j--){int k=j;int next=i;while(k>=0&&s1[k]==s2[next]){next++;k--;}if(next>nextpos){nextpos=next;p1=j+1;p2=k+2;}}if(i==nextpos){puts("-1");return 0;}i=nextpos;dp[num][0]=p1;dp[num][1]=p2;num++;}printf("%d\n",num);for(int i=0;i<num;i++){printf("%d %d\n",dp[i][0],dp[i][1]);}return 0;
}

转载于:https://www.cnblogs.com/keyboarder-zsq/p/5934427.html

CodeForces 615C相关推荐

  1. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  2. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  3. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  4. CodeForces 获得数据

    针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...

  5. codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...

    题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...

  6. CodeForces 595A

    题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...

  7. codeforces A. Jeff and Digits 解题报告

    题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...

  8. Codeforces Round #506 (Div. 3)

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

  9. Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)

    Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...

最新文章

  1. vuex结合php,vuex中store的使用介绍(附实例)
  2. matlab 图像函数以及运用(第十章)
  3. jquery判断页面滚动条(scroll)是上滚还是下滚,且是否滚动到头部或者底部
  4. 从行业龙头到世界500强,中国科技企业要跨过哪些坎?
  5. 使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件)
  6. 【转】ABP源码分析十一:Timing
  7. excel如何输入毫秒级时间
  8. sap委外采购订单冲销 102_SAP那些事-实战篇-68-谈谈SAP的库存设计理念
  9. windows 下借助7zip实现命令行解压缩
  10. 纺织人工智能的下一个独角兽——智能验布机
  11. 1000套安卓(Android)毕业设计(带论文)、大作业、实例快速下载 (Android Studio)
  12. Java8 Function 用法简介
  13. 基于matlab的图像锐化,基于Matlab的图像锐化的研究
  14. layui模板引擎 (laytpl) 与Flask模板引擎 (jinja2)冲突的问题
  15. 微服务探索:nuoyi
  16. 通向互联网未来的七个路标
  17. java画篮球_PS教程!手把手教你绘制炫酷的科比篮球海报
  18. 如何独立设置Mac触摸板方向和鼠标滚轮方向?
  19. 新手如何快速入门node.js
  20. 视频去水印免费软件 怎么玩抖音的技巧

热门文章

  1. LeetCode 1891. 割绳子(二分查找)
  2. LeetCode 1870. 准时到达的列车最小时速(二分查找)
  3. Pytorch 神经网络训练过程
  4. LintCode 207. 区间求和 II(线段树)
  5. 叛乱2正版怎么创服务器,Insurgency Linux Server 叛乱2创建服务器教程(转steam指南)
  6. matlab仿真模拟随机过程,基于MATLAB的随机过程仿真.pdf
  7. google 浏览器默认打开控制台_前端开发调试:浏览器console方法总结
  8. css样式子绝父相,子绝父相_HTML+CSS前端基础知识教程_腾讯视频
  9. 机器学习:Scikit-learn与特征工程
  10. 平行空间怎么设置32位_高低床怎么设置不占空间