CodeForces 615C
题意:
给定两个字符串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相关推荐
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
- CodeForces 获得数据
针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...
- codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...
题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...
- CodeForces 595A
题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...
- codeforces A. Jeff and Digits 解题报告
题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
最新文章
- vuex结合php,vuex中store的使用介绍(附实例)
- matlab 图像函数以及运用(第十章)
- jquery判断页面滚动条(scroll)是上滚还是下滚,且是否滚动到头部或者底部
- 从行业龙头到世界500强,中国科技企业要跨过哪些坎?
- 使用go语言GUI库实现对mp3文件的播放1(简单的播放mp3文件)
- 【转】ABP源码分析十一:Timing
- excel如何输入毫秒级时间
- sap委外采购订单冲销 102_SAP那些事-实战篇-68-谈谈SAP的库存设计理念
- windows 下借助7zip实现命令行解压缩
- 纺织人工智能的下一个独角兽——智能验布机
- 1000套安卓(Android)毕业设计(带论文)、大作业、实例快速下载 (Android Studio)
- Java8 Function 用法简介
- 基于matlab的图像锐化,基于Matlab的图像锐化的研究
- layui模板引擎 (laytpl) 与Flask模板引擎 (jinja2)冲突的问题
- 微服务探索:nuoyi
- 通向互联网未来的七个路标
- java画篮球_PS教程!手把手教你绘制炫酷的科比篮球海报
- 如何独立设置Mac触摸板方向和鼠标滚轮方向?
- 新手如何快速入门node.js
- 视频去水印免费软件 怎么玩抖音的技巧
热门文章
- LeetCode 1891. 割绳子(二分查找)
- LeetCode 1870. 准时到达的列车最小时速(二分查找)
- Pytorch 神经网络训练过程
- LintCode 207. 区间求和 II(线段树)
- 叛乱2正版怎么创服务器,Insurgency Linux Server 叛乱2创建服务器教程(转steam指南)
- matlab仿真模拟随机过程,基于MATLAB的随机过程仿真.pdf
- google 浏览器默认打开控制台_前端开发调试:浏览器console方法总结
- css样式子绝父相,子绝父相_HTML+CSS前端基础知识教程_腾讯视频
- 机器学习:Scikit-learn与特征工程
- 平行空间怎么设置32位_高低床怎么设置不占空间