链接: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. docker环境搭建

    参考地址:https://www.imooc.com/article/details/id/25228 操作系统Centos7 1.替换yum源为阿里云yum源: //备份yum源 mv /etc/y ...

  2. java----牛客练习

    1. 形式参数就是函数定义时设定的参数.例如函数头 int min(int x,int y,int z) 中 x,y,z 就是形参.实际参数是调用函数时所使用的实际的参数.   真正被传递的是实参   ...

  3. Python_迭代器和生成器的复习_38

    迭代器和生成器 迭代器: 双下方法:很少直接调用的方法,一般情况下,是通过其他方法触发的 可迭代的协议——可迭代协议 含有__iter__ 的方法 ('__iter__' in dir(数据)) 可迭 ...

  4. Eclipse启动错误JVM terminated. exit code 1解决方法

    现象: 前一天eclipse还用得好好的,但今天就不能用了,怎么回事? 解决方案: 请先参考其它网络资料:http://www.baidu.com/s?wd=eclipse+jvm+terminate ...

  5. 福州大学软件工程1816 | W班 第8次作业[团队作业,随堂小测——校友录]

    作业链接 团队作业,随堂小测--校友录 评分细则 本次个人项目分数由两部分组成(博客分满分40分+程序得分满分60分) 博客和程序得分表 评分统计图 千帆竞发图 总结 旅法师:实现了更新,导出,查询, ...

  6. 简单封装mongodb

    首先安装mongodb  npm i mongodb --save 简单封装,在modules目录下新建db.js var MongoClient=require('mongodb').MongoCl ...

  7. Django Rest framework 框架

    一.开发模式: 1. 普通开发方式(前后端放在一起写) 2. 前后端分离(前后台通过ajaxo交互) 后端(django rest framework写的) <----ajaxo---> ...

  8. bootStrap的使用

    1.首先要打开bootstrap的官网 点进去 2你会看到下面这样一个页面里面有很多组件 这里面的代码是实现组件功能的核心代码,还不能直接使用,要引入相关的js css 我们要在起步中下载相关的页面下 ...

  9. Unable to handle kernel paging request at virtual address

    1.Unable to handle kernel paging request at virtual address 00000000 =====>越出内核地址空间范围,原因是由于使用空NUL ...

  10. saltstack一

    Saltstack概述 Salt一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯. salt底层采用动态的连接总线, 使其可以 ...