题目

官方题解

T1:

一道水题

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<stack>
using namespace std;
inline int read(){
int f=,ans=;char c;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
return f*ans;
}
char str,str1[];
stack<int> sta;
int ans;
int main(){
scanf("%s",str1+);
int len=strlen(str1+);
for(int i=;i<=len;i++){
if(str1[i]=='('){
sta.push();
}else{
if(sta.empty()) ans++,sta.push();
else sta.pop();
}
}
cout<<ans+sta.size()/;
}

T2:

线段树优化贪心,我们可以先将他们的末尾排序,然后依次看一看是否能放

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#define int long long
using namespace std;
inline int read(){
int f=,ans=;char c;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
return f*ans;
}
int n,m,k;
struct node{
int u,v,w;
}x[];
int sum;
int maxn[],ans[];
void pushdown(int k,int l,int r){
int mid=l+r>>;
if(ans[k]!=){
ans[k<<]+=ans[k];
ans[k<<|]+=ans[k];
maxn[k<<]+=ans[k];
maxn[k<<|]+=ans[k];
ans[k]=;
}return;
}
int query(int k,int l,int r,int x,int y){
if(x<=l&&r<=y) return maxn[k];
int mid=l+r>>,mmaxn=;
pushdown(k,l,r);
if(x<=mid) mmaxn=max(mmaxn,query(k<<,l,mid,x,y));
if(mid<y) mmaxn=max(mmaxn,query(k<<|,mid+,r,x,y));
maxn[k]=max(maxn[k<<],maxn[k<<|]);
return mmaxn;
}
void update(int k,int l,int r,int x,int y,int w){
if(x<=l&&r<=y){ans[k]+=w;maxn[k]+=w;return;}
pushdown(k,l,r);
int mid=l+r>>;
if(x<=mid) update(k<<,l,mid,x,y,w);
if(mid<y) update(k<<|,mid+,r,x,y,w);
maxn[k]=max(maxn[k<<],maxn[k<<|]);
return;
}
bool cmp(node x1,node x2){return x1.v<x2.v;}
signed main(){
m=read(),n=read(),k=read();
for(int i=;i<=m;i++) x[i].u=read(),x[i].v=read(),x[i].w=read();
sort(x+,x+m+,cmp);
for(int i=;i<=m;i++){
int res=query(,,n,x[i].u,x[i].v),ans=;
if(res>=k) continue;
if(res+x[i].w<=k) ans=x[i].w;
else ans=k-res;
update(,,n,x[i].u,x[i].v-,ans);
sum+=ans;
}
cout<<sum;
return ; }

T3:

我们容易想到一维情况是最大子序列,然后二位也是如此。每次确定$[l,r]$表示当前子矩阵在$l-r$行的最大值,然后二维的像一维那样搞。但是这种可以删除一个数,所以我们需要在定一维表示是否删除一个数

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
inline int read(){
int f=,ans=;char c;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
return f*ans;
}
int n,m,k,dp[][],a[][],minv[],s[][],sum[],maxn;
int main(){
n=read(),m=read(),k=read();
for(int i=;i<=n;i++){
for(int j=;j<=m;j++) a[i][j]=read(),s[i][j]=s[i-][j]+s[i][j-]-s[i-][j-]+a[i][j];
}/*l i R j*/
for(int i=;i<=n;i++){//L
memset(minv,/,sizeof(minv));
for(int j=i;j<=n;j++){//R
memset(dp,,sizeof(dp));
sum[]=;
for(int kk=;kk<=m;kk++){//INIT
minv[kk]=min(minv[kk],a[j][kk]);
sum[kk]=s[j][kk]-s[i-][kk]-s[j][kk-]+s[i-][kk-];
}
for(int kk=;kk<=m;kk++){
dp[kk][]=max(dp[kk-][]+sum[kk],sum[kk]);
dp[kk][]=max(dp[kk-][]+sum[kk],max(dp[kk-][]+sum[kk]-minv[kk]+k,sum[kk]-minv[kk]+k));
maxn=max(maxn,max(dp[kk][],dp[kk][]));
}
}
}
cout<<maxn;
}

X day3的更多相关文章

  1. 冲刺阶段day3

    day3 项目进展 今天周三,我们五个人难得的一整个下午都能聚在一起.首先我们对昨天的成果一一地查看了一遍,并且坐出了修改.后面的时间则是做出 登录界面的窗体,完善了登录界面的代码,并且实现了其与数据 ...

  2. python笔记 - day3

    python笔记 - day3 参考:http://www.cnblogs.com/wupeiqi/articles/5453708.html set特性: 1.无序 2.不重复 3.可嵌套 函数: ...

  3. python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理

    python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...

  4. Spark菜鸟学习营Day3 RDD编程进阶

    Spark菜鸟学习营Day3 RDD编程进阶 RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 使用fluent风格写法,可以减少对于中间变量的定义. 使用lambda表示式来替换对象写 ...

  5. Spark Tungsten揭秘 Day3 内存分配和管理内幕

    Spark Tungsten揭秘 Day3 内存分配和管理内幕 恭喜Spark2.0发布,今天会看一下2.0的源码. 今天会讲下Tungsten内存分配和管理的内幕.Tungsten想要工作,要有数据 ...

  6. Catalyst揭秘 Day3 sqlParser解析

    Catalyst揭秘 Day3 sqlParser解析 今天我们会进入catalyst引擎的第一个模块sqlparser,它是catalyst的前置模块. 树形结构 从昨天的介绍我们可以看到sqlPa ...

  7. Kakfa揭秘 Day3 Kafka源码概述

    Kakfa揭秘 Day3 Kafka源码概述 今天开始进入Kafka的源码,本次学习基于最新的0.10.0版本进行.由于之前在学习Spark过程中积累了很多的经验和思想,这些在kafka上是通用的. ...

  8. python s12 day3

    python s12 day3   深浅拷贝 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  9. Day3 - Python基础3 函数、递归、内置函数

    Python之路,Day3 - Python基础3   本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...

  10. 三校联考 Day3

    三校联考 Day3 大水题 题目描述:给出一个圆及圆上的若干个点,问两个点间的最远距离. solution 按极角排序,按顺序枚举,显然距离最远的点是单调的,线性时间可解出答案. 大包子的束缚 题目描 ...

随机推荐

  1. Linux命令应用大词典-第45章 服务器配置

    45.1 ssh-agent:存储用于公钥验证的私钥 45.2 ssh-add:添加RSA或DSA身份的认证代理 45.3 ssh-keyscan:收集主机公钥 45.4 sshd:运行sshd守护进 ...

  2. Linux命令应用大词典-第35章 终端

    35.1 tty:显示当前连接到当前标准输入的终端设备文件名 35.2 consoletype:显示连接到标准输入的控制台类型 35.3 fgconsole:显示活动的虚拟终端数量 35.4 ming ...

  3. Python文件操作大全

    Python 编程文件操作大全   文件打开模式 打开模式 执行操作 'r' 以只读方式打开文件(默认) 'w' 以写入的方式打开文件,会覆盖已存在的文件 'x' 如果文件已经存在,使用此模式打开将引 ...

  4. 【sessionInfo】使用说明

    对象:sessionInfo 说明:会话类型操作,此对象是session与cookies的完善版,解决了session异常丢失及cookies文件大小的问题. 注意: 1)  访客的IP地址发生变化时 ...

  5. 【text】 文本组件说明

    text文本组件:在小程序里除了文本节点以外的其他节点都无法长按选中. 原型: <text selectable="[Boolean]" space="[ensp ...

  6. 如何使用AEditor制作一个简单的H5交互页demo

    转载自:http://www.alloyteam.com/2015/06/h5-jiao-hu-ye-bian-ji-qi-aeditor-jie-shao/ 本教程演示如何使用AEditor制作一个 ...

  7. Grid 网格布局

    CSS 网格布局(Grid Layout) 是CSS中最强大的布局系统. 这是一个二维系统,这意味着它可以同时处理列和行,不像 flexbox 那样主要是一维系统. 你可以通过将CSS规则应用于父元素 ...

  8. Period :KMP

    I - Period Problem Description For each prefix of a given string S with N characters (each character ...

  9. 面试应该get这三大技能

    链接:https://www.nowcoder.com/discuss/84391?type=0&order=3&pos=16&page=0 一.自我介绍凸显学业背景中的隐含信 ...

  10. Chameleon-mini简介

    ChameleonMini(变色龙)原德国大学在研究RFID安全时所设计的一块针对多频段多类型RFID模拟的硬件,其设计本身支持ISO14443和ISO15693标准协议,最简单直接的用法就是把获取到 ...