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 ...
随机推荐
- SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思 sql server 2005 2008
原文:http://www.cnblogs.com/ForFreeDom/archive/2009/10/16/1584680.html 在sqlserver2005或SQL2008数据库项目中,创建 ...
- [19/05/18-星期六] HTML_form标签
一.form标签(一) <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...
- ### Error building SqlSession. ### The error may exist in SQL Mapper Configuration ### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibat
这是一个由粗心导致的错误,具体报错如下: org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSessio ...
- CentOS7 修复grub.cfg文件
为了达到实验目的,首先删除grub.cfg文件 重启后发现系统进不去了,这正是我们想要的 进入系统救援模式,通过输入以下命令修复grub.cfg文件 重启后发现能正常引导进入系统了
- Java学习day5程序控制流程二
循环结构: 循环语句的四个组成部分:1.初始化部分(init_statement) 2.循环条件部分(test_exp) 3.循环体部分(body_statement) 4.迭代部分(after_st ...
- selenium自动新增店铺
说明:仅作为参考练习,代码中涉及数据均为测试数据. from selenium import webdriver from selenium.webdriver import ActionChains ...
- wxpython中列表框(ListBox类)、复选列表框(CheckListBox)、下拉选项(Choice)、进度条(Gauge)、滑块(Slider)使用实例源码分享
#coding=utf-8 import wx import time class MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(s ...
- 【问题解决方案】GitHub上克隆项目到本地
说明: 克隆线上项目到本地,可以直接clone克隆,不必再自己建文件夹啊,初始化啊. 命令: git clone + 想要克隆的项目的地址 END
- 一个完整的HTTP请求过程详细
整个流程1.域名解析 —> 2.与服务器建立连接 —> 3.发起HTTP请求 —>4. 服务器响应HTTP请求,浏览器得到html代码 —> 5.浏览器解析html代码,并请求 ...
- vue-cli-webpake搭建和配置
确认创建项目后,后续还需输入一下项目名称.项目描述.作者.打包方式.是否使用ESLint规范代码等等,详见上图.安装顺利执行后会,生成如下文件目录:1.全局化安装cnpm npm install cn ...