bzoj4278
2024-10-01 08:19:14
题解:
把第一个串放好,加一个oo
然后把第二个串倒序放进来
然后就是http://www.cnblogs.com/xuanyiming/p/8510231.html这一题了
代码:
#include<bits/stdc++.h>
using namespace std;
#define ull unsigned long long
const int N=;
int m,n,s[N],s1[],ans[N];
ull h1[N],h2[N],pw[N];
int main()
{
scanf("%d",&n);
for (int i=;i<=n;i++)scanf("%d",&s[i]);
scanf("%d",&m);
s[n+]=;
for (int i=;i<=m;i++)scanf("%d",&s[n+m-i+]);
n+=m+;
pw[]=;
for (int i=;i<=n;i++)pw[i]=pw[i-]*;
for (int i=;i<=n;i++)h1[i]=h1[i-]*+s[i];
for (int i=n;i>=;i--)h2[i]=h2[i+]*+s[i];
for (int i=,l1=,r1=n;i<=n;i++)
{
int l=,r=r1-l1+;
while (l<=r)
{
int mid=(l+r)>>;
if (h1[l1+mid-]-h1[l1-]*pw[mid]==h2[r1-mid+]-h2[r1+]*pw[mid])l=mid+;
else r=mid-;
}
if (l>r1-l1+)l=;
if (s[l1+l-]>s[r1-l+])ans[i]=s[r1],r1--;
else ans[i]=s[l1],l1++;
}
for (int i=;i<n;i++)printf("%d ",ans[i]);
return ;
}
最新文章
- SpingMVC 核心技术帮助文档
- Thread-Safe Resource Manager
- 浏览器内核控制Meta标签
- smaller programs should improve performance
- String和包装类Integer\Double\Long\Float\Character 都是final类型
- JavaScript:改变li前缀图片和样式
- java里int和Integer什么区别
- mac 下 apache设置
- js判断图片上传时的文件大小,和宽高尺寸
- Android(java)学习笔记193:利用谷歌API对数据库增删改查(推荐使用)
- android怎样实现自动点击功能
- KBEngine WebConsole Guide
- Assert中的静态方法
- Yii2基本概念之——属性(property)
- Android学习第8天
- python3 数独
- [LeetCode] 441. Arranging Coins_Easy tag: Math
- WyBox用usb口驱动4G模块EC20
- apache开启gzip压缩
- Docker 之web api 访问 host sql server
热门文章
- python爬虫学习(二):定向爬虫例子-->;使用BeautifulSoup爬取";软科中国最好大学排名-生源质量排名2018";,并把结果写进txt文件
- Struts2框架之类型转换 --Struts2框架
- BGP - 1,基本概念
- Lab 1-2
- Android -------- MVC,MVP 和 MVVM 架构设计模式
- 在线linux 平台
- New task CodeForces - 788E (线段树优化dp)
- 封装jsonp
- 【MySQL】【4】数据库时间与实际时间相差8小时
- Leetcode 1021. 最佳观光组合