Codeforces Round #545 (Div. 2) D
链接: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的更多相关文章
- Codeforces Round #545 (Div. 1) 简要题解
这里没有翻译 Codeforces Round #545 (Div. 1) T1 对于每行每列分别离散化,求出大于这个位置的数字的个数即可. # include <bits/stdc++.h&g ...
- Codeforces Round #545 (Div. 2) D 贪心 + kmp
https://codeforces.com/contest/1138/problem/D 题意 两个01串s和t,s中字符能相互交换,问最多能得到多少个(可交叉)的t 题解 即将s中的01塞进t中, ...
- Codeforces Round #545 (Div. 1) Solution
人生第一场Div. 1 结果因为想D想太久不晓得Floyd判环法.C不会拆点.E想了个奇奇怪怪的set+堆+一堆乱七八糟的标记的贼难写的做法滚粗了qwq靠手速上分qwqqq A. Skyscraper ...
- Codeforces Round #545 (Div. 2)(D. Camp Schedule)
题目链接:http://codeforces.com/contest/1138/problem/D 题目大意:给你两个字符串s1和s2(只包含0和1),对于s1中,你可以调换任意两个字符的位置.问你最 ...
- Codeforces Round #545 (Div. 2)(B. Circus)
题目链接:http://codeforces.com/contest/1138/problem/B 题目大意:贼绕口的题目,就是给你两个字符串s1,s2,然后每一个人代表一列,第一列代表技能一每个人是 ...
- Codeforces Round #545 (Div. 2) E 强连通块 + dag上求最大路径 + 将状态看成点建图
https://codeforces.com/contest/1138/problem/E 题意 有n个城市(1e5),有m条单向边(1e5),每一周有d天(50),对于每个城市假如在某一天为1表示这 ...
- Codeforces Round #545 (Div. 2) 交互 + 推公式
https://codeforces.com/contest/1138/problem/F 题意 有一条长为t的链,一个长为c的环,定义终点为链和环相连环上的第一个点,现在有10个人在起点,你每次可以 ...
- Codeforces Round #545 (Div. 2)-Camp Schedule
题目要求,给定一个s序列,一个p序列,问能不能对s做相应的调整,使得s序列中,有尽可能多的p子串(可以重复) 最开始我拿到这个题目,也是一点头绪都没有,如何做调整呢? 首先考虑如何会有尽可能多的子串, ...
- CodeForces Round #545 Div.2
A. Sushi for Two 代码: #include <bits/stdc++.h> using namespace std; ; ; int a[maxn], vis[maxn]; ...
随机推荐
- Leetcode -- 258 数位相加
258. Given a non-negative integer num, repeatedly add all its digits until the result has only one d ...
- es6在网页中模块引入的方法
前言: 以前,当然包括现在的大部分js引入,我们都是利用<script></script>这种全局的方式进行引入,当然这种弊端还是用的,比如这样直接利用script引入的话,会 ...
- Python_服务器与多客户端通信、UDP协议、pycharm打印带颜色输出、时间同步的机制
1.服务器与多客户端通信 import socket # 创建tcp socket的套接字 sk = socket.socket() # bind sk.bind(('127.0.0.1',8080) ...
- SOAP UI-----测webservice接口
webservice的请求报文和返回报文都是xml格式的. 使用soapui.storm对webservice接口进行测试,postman无法测. http://www.webxml.com.cn/W ...
- Windows10 Build 18298 桌面显示计算机(此电脑)
- Python&R&量化 金融之路
[ 分类 ]- 金融之路 - 闲云孤鹤(人生在世五十年,大千世界一瞬间,浮生若梦,仿佛间,幻境一场,生者无常,终须尽.) - CSDN博客 https://blog.csdn.net/robertso ...
- [转帖]HTTP 头部解释
HTTP 头部解释 https://www.cnblogs.com/poissonnotes/p/4844014.html 之前看的太粗了 同事闻起来 referer 才知道自己所知甚少.. ==== ...
- @Param注解
关于mybatis的@Param注解和参数 引用 https://www.cnblogs.com/whisper527/p/6568028.html 薇飘意 1,使用@Param注解 当以下面的方式进 ...
- 如何确定 Hadoop map和reduce的个数--map和reduce数量之间的关系是什么?
1.map和reduce的数量过多会导致什么情况?2.Reduce可以通过什么设置来增加任务个数?3.一个task的map数量由谁来决定?4.一个task的reduce数量由谁来决定? 一般情况下,在 ...
- MyCat数据库中间件 - 分库
MyCat MyCat用于解耦分布式数据库与java,比如分库分表以后,需要查询某条数据时,需要java根据需要查的数据先计算去哪个库查,然而有了Mycat就不用自己计算怎么存储,怎么查询了.MyCa ...