链接:http://codeforces.com/contest/1138/problem/D

啊啊啊啊啊啊,自闭啊,比赛的时候判断条件 if(s1[i-1]=='0') aa++;写成了 if(s1[i]=='0') aa++;少写了个-1,被hack了,上分场变成了掉分场。

思路;

题目需要t字符串出现次数最多,那么找到最大的重叠部分就好了,然后依次加上就好了

主要就是要找到字符串t与本身的重叠部分,,假设有两个t,第一个t不变,第二个t向右移动:

比如:

10101010

-10101010 ->  一直向右移直到重叠部分相等

如:

10101010

-- 10101010   如这种情况 重叠部分为: 101010 ,题目需要最多的t字符串,我们只需要先摆上一个 t ,然后每补上一次t重叠部分这样就可以多出现一次t.最后算下能出现几次,输出出来,剩余的0和1直接跟在后面输出。

实现代码:

#include<bits/stdc++.h>
using namespace std;
#define mid int m = (l + r) >> 1
#define ll long long
const int M = 1e5 + ;
string s,s1;
int main()
{
int a=,b=,a1=,b1=;
cin>>s;
int len = s.size();
cin>>s1;
int len1 = s1.size();
for(int i = ;i < len;i ++){
if(s[i]=='') a++;
else b++;
}
for(int i = ;i < len1;i ++){
if(s1[i]=='') a1++;
else b1++;
}
int k;
if(a1==) k = b/b1;
else if(b1 == ) k = a/a1;
else k = min(a/a1,b/b1);
if(k==){
cout<<s<<endl;
}
else{
int en = len1;
int aa = ,bb = ,aa1 = ,bb1 =;
for(int i = ;i < len1;i ++){
int flag = ;
if(s1[i-]=='') aa++;
else bb++;
if(s1[len1-i]=='') aa1++;
else bb1++;
if(aa!=aa1||bb!=bb1) continue;
for(int j = ;j < len1-i;j ++){
if(s1[i+j]!=s1[j]){
flag = ;
break;
}
}
if(flag == ){
en = i;
break;
}
}
//cout<<en<<endl;
int a2 = ;int b2 = ;
if(en != len1){
for(int i = len1 - en;i < len1;i ++){
if(s1[i]=='') a2++;
else b2++;
}
}
else {
a2 = a1,b2 = b1;
}
a-=a1; b-=b1;
cout<<s1;
int k1;
if(a2==) k1 = b/b2;
else if(b2 == ) k1 = a/a2;
else k1 = min(a/a2,b/b2);
for(int i = ;i <= k1;i ++){
for(int j = len1-en;j < len1;j ++)
cout<<s1[j];
}
a -= a2*k1; b -= b2*k1;
for(int i = ;i <= a;i ++)
cout<<;
for(int i = ;i <= b;i ++)
cout<<;
cout<<endl;
}
}

Codeforces Round #545 (Div. 2) D的更多相关文章

  1. Codeforces Round #545 (Div. 1) 简要题解

    这里没有翻译 Codeforces Round #545 (Div. 1) T1 对于每行每列分别离散化,求出大于这个位置的数字的个数即可. # include <bits/stdc++.h&g ...

  2. Codeforces Round #545 (Div. 2) D 贪心 + kmp

    https://codeforces.com/contest/1138/problem/D 题意 两个01串s和t,s中字符能相互交换,问最多能得到多少个(可交叉)的t 题解 即将s中的01塞进t中, ...

  3. Codeforces Round #545 (Div. 1) Solution

    人生第一场Div. 1 结果因为想D想太久不晓得Floyd判环法.C不会拆点.E想了个奇奇怪怪的set+堆+一堆乱七八糟的标记的贼难写的做法滚粗了qwq靠手速上分qwqqq A. Skyscraper ...

  4. Codeforces Round #545 (Div. 2)(D. Camp Schedule)

    题目链接:http://codeforces.com/contest/1138/problem/D 题目大意:给你两个字符串s1和s2(只包含0和1),对于s1中,你可以调换任意两个字符的位置.问你最 ...

  5. Codeforces Round #545 (Div. 2)(B. Circus)

    题目链接:http://codeforces.com/contest/1138/problem/B 题目大意:贼绕口的题目,就是给你两个字符串s1,s2,然后每一个人代表一列,第一列代表技能一每个人是 ...

  6. Codeforces Round #545 (Div. 2) E 强连通块 + dag上求最大路径 + 将状态看成点建图

    https://codeforces.com/contest/1138/problem/E 题意 有n个城市(1e5),有m条单向边(1e5),每一周有d天(50),对于每个城市假如在某一天为1表示这 ...

  7. Codeforces Round #545 (Div. 2) 交互 + 推公式

    https://codeforces.com/contest/1138/problem/F 题意 有一条长为t的链,一个长为c的环,定义终点为链和环相连环上的第一个点,现在有10个人在起点,你每次可以 ...

  8. Codeforces Round #545 (Div. 2)-Camp Schedule

    题目要求,给定一个s序列,一个p序列,问能不能对s做相应的调整,使得s序列中,有尽可能多的p子串(可以重复) 最开始我拿到这个题目,也是一点头绪都没有,如何做调整呢? 首先考虑如何会有尽可能多的子串, ...

  9. CodeForces Round #545 Div.2

    A. Sushi for Two 代码: #include <bits/stdc++.h> using namespace std; ; ; int a[maxn], vis[maxn]; ...

随机推荐

  1. 用PhoneGap创建第一个项目

    1.在eclipse中新建Android Project2.在项目的目录下,建两个文件夹:/libs/assets/www3.进入将刚刚下载并解压的PhoneGap包里Anroid目录,我们需要的资源 ...

  2. ES5与ES6的小差异

    ES5与ES6的小差异 变量的定义 ES6与ES5的区别 ES5: <script> console.log(username); var username; var username = ...

  3. js总结:三级联动

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. python读取文件内的IP信息 练习

    代码如下: #导包 import fileinput import re def readArw(): for line in fileinput.input(r"G:/raw.txt&qu ...

  5. C# Note24: 指针的使用

    C#为了类型安全,默认并不支持指针.但是也并不是说C#不支持指针,我们可以使用unsafe关键词,开启不安全代码(unsafe code)开发模式.在不安全模式下,我们可以直接操作内存,这样就可以使用 ...

  6. 关于Navicat连接虚拟机宝塔数据库

    1.由于虚拟机安装的宝塔面板,目前没找到数据库安全配置文件,所以没能用Navicat连接数据库 2.在宝塔面板=>安全下 放行 3306 端口 即可以 连接成功 跟将bind-address = ...

  7. switch-case和if-else可互换时

    当switch-case和if-else可互换时,应当优先采用switch-case.因为switch-case的效率更高(详情下回分解).

  8. 关于我使用spring mvc框架做文件上传时遇到的问题

    非常感谢作者 原文:https://blog.csdn.net/lingirl/article/details/1714806 昨天尝试着用spring mvc框架做文件上传,犯了挺多不该犯的毛病问题 ...

  9. 详解 RestTemplate 操作

    转载自:https://blog.csdn.net/itguangit/article/details/78825505 作为开发人员,我们经常关注于构建伟大的软件来解决业务问题.数据只是软件完成工作 ...

  10. python学习笔记(9)--函数

    函数定义: def <函数名>(<参数(0个或多个)>): 函数体 return <返回值> 参数有非可选参数,和可选参数,可选参数放在参数列表的最后,可以为可选参 ...