链接: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. Python-递归初识-50

    #递归函数 # 了解什么是递归 : 在函数中调用自身函数 # 最大递归深度默认是997/998 —— 是python从内存角度出发做得限制 # 能看懂递归 # 能知道递归的应用场景 # 初识递归 —— ...

  2. H5 audio标签

    37-audio标签 注意点: audio标签的使用和video标签的使用基本一样, video中能够使用的属性在audio标签中大部分都能够使用, 并且功能都一样 只不过有3个属性不能用, heig ...

  3. SPA单页面优缺点

    优点: 1.体验好,不刷新,减少 请求  数据ajax异步获取 页面流程: 2.前后端分离 3.减轻服务端压力 4.共用一套后端程序代码,设配多端 缺点: 1.首屏加载过慢: 2.SEO 不利于搜索引 ...

  4. c++入门之出话指针和地址。

    指针和地址是c和c++中重要的概念,在此,对指针做以下几方面的总结: new和delete: ]; point[] = ; point[] = ; point[] = ; cout << ...

  5. Misha, Grisha and Underground CodeForces - 832D (倍增树上求LCA)

    Misha and Grisha are funny boys, so they like to use new underground. The underground has n stations ...

  6. 配置nginx反向代理服务器,解决浏览器跨域调用接口的限制问题

    配置nginx反向代理服务器,解决浏览器跨域调用接口的限制问题 - 大venn的博客 - CSDN博客https://blog.csdn.net/u011135260/article/details/ ...

  7. 文件传输协议FTP、SFTP和SCP

    网络通信协议分层 应用层: HTTP(Hypertext Transfer Protocol 超文本传输协议,显示网页) DNS(Domain Name System) FTP(File Transf ...

  8. 便捷的ajax请求

    为什么要做这个呢?如果后端给的数据不单有JSON字符串,还有对象呢?这个时候我们就要每个都处理(JSON.parse).万一后端又改了,所有都是对象呢?如此一来我们就需要对我们的ajax进行封装. 这 ...

  9. Day 3-3 内置方法

    常用内置函数方法: min,max li = [1, 2, 3, 6, 9, 5, 10, 26] print('li的最小值是:', min(li)) # 取最小值 print('li的最大值是:' ...

  10. VUE 处理文本框获焦点高亮

    先贴例子代码  这里又三个div对应的三个input输入框 <!-- 登录的表单 --> <div class="input_group" :class=&quo ...