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 按极角排序,按顺序枚举,显然距离最远的点是单调的,线性时间可解出答案. 大包子的束缚 题目描 ...
随机推荐
- hdu1847Good Luck in CET-4 Everybody!(sg函数)
Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- Vs2015 遇到 CL:fatal error c1510 cannot load language clui.dll
网上说什么点击修复VS,修改VS的,经验证都不好使,直接下载这个库,放在system32/64下面皆可以了
- 180605-Linux下Crontab实现定时任务
Linux下Crontab实现定时任务 基于Hexo搭建的个人博客,是一种静态博客页面,每次新增博文或者修改,都需要重新的编译并发布到Github,这样操作就有点蛋疼了,一个想法就自然而然的来了,能不 ...
- Python3.5+selenium(11)脚本模块化&参数化
mail126.py脚本如下 from selenium import webdriver from time import sleep from model1 import Login driver ...
- APP功能性测试-2
安装与卸载 应用是否可以在不同的安卓版本上安装(过低不能适配) 安装后是否可以正常运行 安装空间不足时是否有相应提示 如果应用需要通过网络验证之类的安装,需要测试一下断网情况下是否有相应提示 安装过程 ...
- 【cover-view、cover-image】 覆盖组件说明
cover-view.cover-image 这两类覆盖组件用于显示在一些特殊组件上方(map.video.canvas.camera.live-player.live-pusher). 这类组件一般 ...
- 【swiper】 滑块组件说明
swiper 滑块视图容器,其原型如下: <swiper indicator-dots="[Boolean]" indicator-color="[Color]&q ...
- Sail
DescriptionThe polar bears are going fishing. They plan to sail from (sx,?sy) to (ex,?ey). However, ...
- 11.22Daily Scrum
人员 任务分配完成情况 明天任务分配 王皓南 实现网页上视频浏览的功能.研究相关的代码和功能.979 数据库测试 申开亮 实现网页上视频浏览的功能.研究相关的代码和功能.978 实现视频浏览的功能 王 ...
- 下载 编译 Android源代码 和 Android kernel源代码
下载Android源码简要流程 : a. 获取repo文件: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo ...