1208E Let Them Slide
题目大意
给你n个序列,每个一行
每个序列是可以左右移动的
对于每一列问在随意左右移动这些序列的情况下
这一列的每个数的和最大是多少
分析
对于每个序列分为两种情况
[1]长度小于长度的一半
我们发现这种情况下一定是两头长度为k的地方只能考虑序列开头/结尾的前k个
于是我们直接维护开头和结尾前k个的最大值
对于每一个最大值的影响区间我们差分处理
[2]长度大于等于长度的一半
对于全长的每一个点我们可以轻松算出它对应序列上的哪些点
直接st表求最大值即可
仍然使用差分的方式维护
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<ctime>
#include<vector>
#include<set>
#include<map>
#include<stack>
using namespace std;
#define li long long
int n,w,m,lg[],st[][];
li ans[];
inline int q(int le,int ri){
int k=lg[ri-le+];
return max(st[le][k],st[ri-(<<k)+][k]);
}
int main(){
int i,j,k;
scanf("%d%d",&n,&w);
for(i=;i<=;i++)lg[i]=lg[i>>]+;
for(int _=;_<=n;_++){
scanf("%d",&m);
for(i=;i<=m;i++)scanf("%d",&st[i][]);
for(i=;i<=;i++)
for(j=;j<=m;j++)
st[j][i]=max(st[j][i-],st[j+(<<(i-))][i-]);
if(*m>=w){
for(i=;i<=w;i++){
int le=m-w+i,ri=i,v=q(max(le,),min(ri,m));
if(le<||ri>m)v=max(v,);
ans[i]+=(li)v;
ans[i+]-=(li)v;
}
}else {
int v1=,v2=;
for(i=;i<=m;i++){
v1=max(v1,st[i][]);
v2=max(v2,st[m-i+][]);
ans[i]+=(li)v1;
ans[i+]-=(li)v1;
ans[w-i+]+=(li)v2;
ans[w-i+]-=(li)v2;
}
ans[m+]+=(li)v1;
ans[w-m+]-=(li)v1;
}
}
for(i=;i<=w;i++){
ans[i]+=ans[i-];
printf("%lld ",ans[i]);
}
puts("");
return ;
}
1208E Let Them Slide的更多相关文章
- Qt qml 模拟iphone slide to unlock 的聚光动画文字效果
模拟iphone slide to unlock 的聚光动画文字效果 /底层放淡文字 /前景放高亮文字+半透明遮罩 /动画移动遮罩 Author: surfsky.cnblogs.c ...
- slide效果
html和js部分 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...
- slide.js使用文档
<!doctype html> <head> <script src="js/jquery-latest.min.js"></script ...
- React Native组件之Switch和Picker和Slide
React Native组件Switch类似于iOS中的UISwitch:组件Slide类似于iOS中UIslider,组件Picker类似于iOS的UIPickerView.他们的使用方法和相关属性 ...
- 使用 Aspose.Slide 获取PPT中的所有幻灯片的标题
本文使用的是第三方类库 Aspose.Slide,如果你使用的是OpenXml可以看下面的链接,原理是相同的,这个文章里也有对Xml标签的详细解释. 如何:获取演示文稿中的所有幻灯片的标题 原理: 原 ...
- GDC2014免费slide整理下载
GDC2014图形和程序相关的部分免费slide整理下载:)http://pan.baidu.com/s/1eQzMrxo gdc14_An Indie Approach to procedural ...
- 关于jQuery中,animate、slide、fade等动画的连续触发、滞后反复执行的bug的个人解决办法
照例,现在开头讲个这个问题发生的背景吧: 因为最近要做个操作选项的呼出,然后就想到了用默认隐藏,鼠标划过的时候显示的方法. 刚开始打算添加一个class="active",直接触发 ...
- 【转】 iOS 两种方法实现左右滑动出现侧边菜单栏 slide view
原文: http://blog.csdn.net/crayondeng/article/details/9057637 --- 关于评论中,很多网友都是需要这部分的相关源码,其实在我上传的新浪微博 ...
- 纯css实现slide效果
尝试一下,仅作记录. <!DOCTYPE html><html><head><style> *{transition:all 1s ease 0s ...
随机推荐
- 安全运维 - Windows系统应急响应
挖矿病毒应急 传播方式: 通过社工.钓鱼方式下载和运行了挖矿程序(邮件.IM等) 利用计算机系统远程代码执行漏洞下载.上传和执行挖矿程序. 利用i算计Web或第三方软件漏洞获取计算机权限,然后下载和执 ...
- xml与Properties的区别
1.properties配置文件,是一个属性对应于一个值(key = value)这样的键值匹对模式: 每一行properties配置文件的键值,对应着一次赋值: 特殊点: 在前后两行properti ...
- Ant-编译构建(1)-HelloWorld
1.项目目录构成,lib包暂时为空,本次例子未引入第三方包. 2.编写相关的build.xml <?xml version="1.0" encoding="utf- ...
- Greg and Array CodeForces 296C 差分数组
Greg and Array CodeForces 296C 差分数组 题意 是说有n个数,m种操作,这m种操作就是让一段区间内的数增加或则减少,然后有k种控制,这k种控制是说让m种操作中的一段区域内 ...
- 魔板 (bfs+康托展开)
# 10027. 「一本通 1.4 例 2」魔板 [题目描述] Rubik 先生在发明了风靡全球魔方之后,又发明了它的二维版本--魔板.这是一张有 888 个大小相同的格子的魔板: 1 2 3 4 8 ...
- 模板 - 可持久化无旋Treap
空间消耗非常玄学,有多大开多大就完事了.其实是因为单次操作可能会有数次Merge和Split操作,按照下面的版本的话Merge和Split都进行复制,所以一次操作可能复制了4个版本. 四个函数式查询, ...
- .NET基础篇——利用泛型与反射更新实体(ADO.NET Entity Framework)(转)
自从ADO.NET Entity Framework面世以来,受到大家的热捧,它封装了大量代码生成的工具,用户只需要建立好实体之间的关系,系统就是会为用户自动成功了Add.Delete.CreateO ...
- linux grep 设置高亮显示
[root@eric ~]# vi /etc/profile alias grep='grep --color=auto' [root@eric ~]# source /etc/profile
- 10-基于TMS320C6678+XC7K325T的6U CPCI Full Camera Link图像处理平台
基于TMS320C6678+XC7K325T的6U CPCI Full Camera Link图像处理平台 1.板卡概述 板卡由我公司自主研发,基于6UCPCI架构,处理板包含一片TI DSPTMS3 ...
- man(2) W
wait(2) wait3(2) wait4(2) waitpid(2) waitid(2) SEE ALSO _exit(2), clone(2), fork(2), kill(2), ptrace ...