X day3
题目
官方题解
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的更多相关文章
- 冲刺阶段day3
day3 项目进展 今天周三,我们五个人难得的一整个下午都能聚在一起.首先我们对昨天的成果一一地查看了一遍,并且坐出了修改.后面的时间则是做出 登录界面的窗体,完善了登录界面的代码,并且实现了其与数据 ...
- python笔记 - day3
python笔记 - day3 参考:http://www.cnblogs.com/wupeiqi/articles/5453708.html set特性: 1.无序 2.不重复 3.可嵌套 函数: ...
- python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理
python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...
- Spark菜鸟学习营Day3 RDD编程进阶
Spark菜鸟学习营Day3 RDD编程进阶 RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 使用fluent风格写法,可以减少对于中间变量的定义. 使用lambda表示式来替换对象写 ...
- Spark Tungsten揭秘 Day3 内存分配和管理内幕
Spark Tungsten揭秘 Day3 内存分配和管理内幕 恭喜Spark2.0发布,今天会看一下2.0的源码. 今天会讲下Tungsten内存分配和管理的内幕.Tungsten想要工作,要有数据 ...
- Catalyst揭秘 Day3 sqlParser解析
Catalyst揭秘 Day3 sqlParser解析 今天我们会进入catalyst引擎的第一个模块sqlparser,它是catalyst的前置模块. 树形结构 从昨天的介绍我们可以看到sqlPa ...
- Kakfa揭秘 Day3 Kafka源码概述
Kakfa揭秘 Day3 Kafka源码概述 今天开始进入Kafka的源码,本次学习基于最新的0.10.0版本进行.由于之前在学习Spark过程中积累了很多的经验和思想,这些在kafka上是通用的. ...
- python s12 day3
python s12 day3 深浅拷贝 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- Day3 - Python基础3 函数、递归、内置函数
Python之路,Day3 - Python基础3 本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...
- 三校联考 Day3
三校联考 Day3 大水题 题目描述:给出一个圆及圆上的若干个点,问两个点间的最远距离. solution 按极角排序,按顺序枚举,显然距离最远的点是单调的,线性时间可解出答案. 大包子的束缚 题目描 ...
随机推荐
- Linux命令应用大词典-第45章 服务器配置
45.1 ssh-agent:存储用于公钥验证的私钥 45.2 ssh-add:添加RSA或DSA身份的认证代理 45.3 ssh-keyscan:收集主机公钥 45.4 sshd:运行sshd守护进 ...
- Linux命令应用大词典-第35章 终端
35.1 tty:显示当前连接到当前标准输入的终端设备文件名 35.2 consoletype:显示连接到标准输入的控制台类型 35.3 fgconsole:显示活动的虚拟终端数量 35.4 ming ...
- Python文件操作大全
Python 编程文件操作大全 文件打开模式 打开模式 执行操作 'r' 以只读方式打开文件(默认) 'w' 以写入的方式打开文件,会覆盖已存在的文件 'x' 如果文件已经存在,使用此模式打开将引 ...
- 【sessionInfo】使用说明
对象:sessionInfo 说明:会话类型操作,此对象是session与cookies的完善版,解决了session异常丢失及cookies文件大小的问题. 注意: 1) 访客的IP地址发生变化时 ...
- 【text】 文本组件说明
text文本组件:在小程序里除了文本节点以外的其他节点都无法长按选中. 原型: <text selectable="[Boolean]" space="[ensp ...
- 如何使用AEditor制作一个简单的H5交互页demo
转载自:http://www.alloyteam.com/2015/06/h5-jiao-hu-ye-bian-ji-qi-aeditor-jie-shao/ 本教程演示如何使用AEditor制作一个 ...
- Grid 网格布局
CSS 网格布局(Grid Layout) 是CSS中最强大的布局系统. 这是一个二维系统,这意味着它可以同时处理列和行,不像 flexbox 那样主要是一维系统. 你可以通过将CSS规则应用于父元素 ...
- Period :KMP
I - Period Problem Description For each prefix of a given string S with N characters (each character ...
- 面试应该get这三大技能
链接:https://www.nowcoder.com/discuss/84391?type=0&order=3&pos=16&page=0 一.自我介绍凸显学业背景中的隐含信 ...
- Chameleon-mini简介
ChameleonMini(变色龙)原德国大学在研究RFID安全时所设计的一块针对多频段多类型RFID模拟的硬件,其设计本身支持ISO14443和ISO15693标准协议,最简单直接的用法就是把获取到 ...