题意:

给定两个字符串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;
}

CodeForces 615C的更多相关文章

  1. Codeforces 615C Running Track(DP + Trie树)

    题目大概说给两个串,问最少要用多少个第一个串的子串(可以翻转)拼成第二个串. UVa1401,一个道理..dp[i]表示前缀i拼接成功所需最少的子串,利用第一个串所有子串建立的Trie树往前枚举转移. ...

  2. 【28.57%】【codeforces 615C】 Running Track

    time limit per test1 second memory limit per test512 megabytes inputstandard input outputstandard ou ...

  3. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  4. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  5. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  6. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  7. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

  8. CodeForces - 274B Zero Tree

    http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...

  9. CodeForces - 261B Maxim and Restaurant

    http://codeforces.com/problemset/problem/261/B 题目大意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a ...

随机推荐

  1. SolidEdge如何快速绘制并完全定义槽型孔

    如果你点击A之后形成的圆弧不是你想要的   你试着换个方向,如下图所示   有时候只有一个方形可以形成你要的半圆  

  2. Office转SWF的一些感想(Office2007和Office2010)

    Office2007需要借助SaveAsPDFandXPS的插件完成,Office2010可以直接兼容. Office2PDF主要采用的是 Microsoft.Office.Interop的方式进行, ...

  3. IO模型:同步、异步、阻塞、非阻塞

    前言: 在Linux的网络编程中,同步IO(synchronous IO).异步IO(asynchronous IO).阻塞IO(blocking IO).非阻塞IO(non-blocking IO) ...

  4. CocoaPods安装问题

    主要步骤: sudo gem install cocoapods pod setup 验证是否安装成功: pod search SDWebImage 常见问题: 1 sudo gem install ...

  5. oracle 导出数据字典

    一.查看当前用户下表名,及表名的备注 select * from user_tab_comments where table_name like 'T_ONLINE%' 二.查询数据字典 -- 1. ...

  6. 【手势交互】4. Kinect for XBox

    "You are the Controller",Kinect for Xbox的广告词.明白说明了Kinect体感的交互方式.作为一款集成了诸多先进视觉技术的自然交互设备,Kin ...

  7. busybox 终端支持 ctrl-r

    Busybox Settings ---> Busybox Library Tuning ---> [*] History saving [ ] Save history on shell ...

  8. 启用了不安全的HTTP方法解决办法 IBM APPSCAN

    启用了不安全的HTTP方法解决办法  IBM APPSCAN     安全风险:       可能会在Web 服务器上上载.修改或删除Web 页面.脚本和文件. 可能原因:       Web 服务器 ...

  9. CSS 媒体类型 总结

    CSS 媒体类型 媒体类型允许你指定文件将如何在不同媒体呈现.该文件可以以不同的方式显示在屏幕上,在纸张上,或听觉浏览器等等. 媒体类型 一些CSS属性只设计了某些媒体.例如"voice-f ...

  10. HDU 5627Clarke and MST

    Clarke and MST Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...