洛谷 P2096 最佳旅游线路
某旅游区的街道成网格状。其中东西向的街道都是旅游街,南北向的街道都是林阴道。由于游客众多,旅游街被规定为单行道,游客在旅游街上只能从西向东走,在林阴道上则既可从南向北走,也可以从北向南走。
阿龙想到这个旅游街游玩,他的好友阿福给了他一些建议,用分值表示所有旅游街相邻两个路口之见的街道值得游览的程度,分值是从-100到100的整数,所有林阴道不打分。所有分值不可能全是负分。如图:

输入输出格式
输入格式:
输入文件的第一行是两个整数m和n,之间用一个空格隔开,m表示有m条旅游街(1≤m≤100 ),n 表示有(n+1)条林阴道(1≤n≤20001 )。接下来的m行依次给出了由北向南每条旅游街的分值信息。每行有n个整数,依次表示了自西向东旅游街每一小段的分值。同一行相邻两个数之间用一个空格隔开。
输出格式:
输出文件只有一行,是一个整数,表示你的程序找到的最佳游览线路的总分值。
输入输出样例
3 5
-50 -47 36 -30 -23
17 -19 -34 -13 -8
-42 -3 -43 34 -45
输出样例#1:
84
e,边做题,边写题解,大致读了遍题,是道 贪心,
那么我们分析一下题,图大概是下面这个样子:

------------
竖直方向可以随便走嘛,所以求出每一列
的最大值,再做比较就可以了。
------------
but,命运多舛,交了一遍,80分,有两个点过不了,重读遍题发现:对了,不一定要在最右边结束,也不一定在最左边开始,这点很重要,这才AC了此题。
先上代码
------------
八十分版
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
#define ll long long
#define R register
#define mmax 20002
ll n,m,maxx=-0x7fffffff,ans;
ll tu[][mmax],da[mmax];
int main()
{
/*freopen(".in","r",stdin);
freopen(".out","w",stdout);*/
cin>>m>>n;
for(int i=;i<=m;i++)
for(int j=;j<=n;j++)
{
cin>>tu[i][j]; //输入
}
/*for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
{
cout<<tu[i][j]<<" ";
}*/ for(int i=;i<=n;i++)
{
maxx=-0x7ffffff;
for(int j=;j<=m;j++)
{
if(tu[j][i]>maxx)//注意i和j的顺序
{
da[i]=tu[j][i];
maxx=tu[j][i];//
} }
}
/*for(int i=1;i<=n;i++)
{
cout<<da[i]<<" ";//最大值
}*/
ll qzh1=,qzh2=;
for(int i=;i<=n;i++)
{
qzh1=qzh2+da[i];
qzh2=qzh1;
if(ans<qzh1) ans=qzh1;
}
cout<<ans<<endl;
/*fclose(stdin);
fclose(stdout);*/
return ;
}
------------
一百分版
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
#define ll long long
#define II int
#define R register
#define mmax 20002
#define inf 0x7ffffff
II n,m,ans;
II tu[][mmax],da[mmax];
II mxsum(II *x){ //最大子串和
II th=;
II mx=;
for(R II i=;i<=n;++i){
th+=x[i];
if(th<)th=;
else if(th>mx)mx=th;
}
return mx;
}
int main()
{
/*freopen(".in","r",stdin);
freopen(".out","w",stdout);*/
cin>>m>>n;
for(int i=;i<=m;i++)
for(int j=;j<=n;j++)
{
cin>>tu[i][j]; //输入
}
for(int i=;i<=n;i++)
{
da[i]=-inf;
for(int j=;j<=m;j++)
if(tu[j][i]>da[i])//注意i和j的顺序
{
da[i]=tu[j][i];、、每列最大值
}
}
cout<<mxsum(da)<<endl;
/*fclose(stdin);
fclose(stdout);*/
return ;
}
就这样了,好好打,别变棕哟QWQ。
洛谷 P2096 最佳旅游线路的更多相关文章
- P2096 最佳旅游线路
最大字段和加贪心 算长了个见识吧 #include<iostream> #include<cstdio> #include<algorithm> using nam ...
- [洛谷P2610] [ZJOI2012]旅游
洛谷题目链接:[ZJOI2012]旅游 题目描述 到了难得的暑假,为了庆祝小白在数学考试中取得的优异成绩,小蓝决定带小白出去旅游~~ 经过一番抉择,两人决定将T国作为他们的目的地.T国的国土可以用一个 ...
- 洛谷 P2233 [HNOI]公交车线路
洛谷 不知道大家做没做过传球游戏,这一题和传球游戏的转移方程几乎一样. 令\(A\)为\(1\)点,\(E\)为\(5\)点,那么\(f[i][j]\)代表第i步走到j的方案数. \[f[i][j]= ...
- 洛谷 P1336 最佳课题选择
P1336 最佳课题选择 题目提供者 yeszy 标签 动态规划 福建省历届夏令营 传送门 难度 尚无评定 题目描述 Matrix67要在下个月交给老师n篇论文,论文的内容可以从m个课题中选择.由于课 ...
- 洛谷 P3204 [HNOI2010]公交线路
题面 luogu 题解 矩阵快速幂\(+dp\) 其实也不是很难 先考虑朴素状压\(dp\) \(f[i][S]\) 表示最慢的车走到了\(i\),\([i, p+i-1]\)的覆盖情况 状态第一位一 ...
- 洛谷P4322.最佳团体
题目大意 一个 \(n(1\leq n\leq 2500)\) 个节点的森林,每个点 \(i\) 有权值 \(s_{i},p_{i}(0<s_{i},p_{i}\leq 10^4)\) 以及父亲 ...
- ⌈洛谷1505⌋⌈BZOJ2157⌋⌈国家集训队⌋旅游【树链剖分】
题目链接 [洛谷] [BZOJ] 题目描述 Ray 乐忠于旅游,这次他来到了T 城.T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接.为了方便游客到达每个景点但又为了节约成本,T ...
- Bzoj4753/洛谷P4432 [JSOI2016]最佳团体(0/1分数规划+树形DP)
题面 Bzoj 洛谷 题解 这种求比值最大就是\(0/1\)分数规划的一般模型. 这里用二分法来求解最大比值,接着考虑如何\(check\),这里很明显可以想到用树形背包\(check\),但是时间复 ...
- 洛谷P1027 Car的旅行路线
洛谷P1027 Car的旅行路线 题目描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速 ...
随机推荐
- PHP的Enum(枚举)的实现
转载请保留原文地址:http://www.cnblogs.com/zsxfbj/p/php_enum.html PHP其实有Enum类库的,需要安装perl扩展,所以不是php的标准扩展,因此代码的实 ...
- jQuery Validate自定义验证方法实现方式
对应调用函数: ( 可以在内部写js/或者外部引入-我是外部引入的文件 ) validate.expand.js // JavaScript Document //检测手机号是否正确 jQuery. ...
- const int *pi与int&nbs…
此质料是摘要:<<彻底搞定C 指针 >>,自己感觉比较有价值,现与大家分享. 1. 从const int i 说起 你知道我们声明一个变量时象这样int i :这个i是可能在它 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 5 Octave Tutorial—5.5 控制语句: for, while, if 语句
5.5 控制语句: for, while, if 语句 参考视频: 5 - 5 - Control Statements_ for, while, if statements (13 min).mkv ...
- 因浏览器而异的空白节点(js清除空白节点)
先看下面的代码:<dl id="dll"> <dt>title</dt> <dd>definition</dd>&l ...
- std:: lower_bound std:: upper_bound
std:: lower_bound 该函数返回范围内第一个不小于(大于或等于)指定val的值.如果序列中的值都小于val,则返回last.序列应该已经有序! eg: #include <iost ...
- bootstrap设计网站中添加代码高亮插件
这款插件的名字叫做google-code-prettify 使用该插件之前的效果: 使用插件之后的效果: 接下来说步骤: (1)下载两个文件 http://codecloud.sinaapp.com/ ...
- Qt5信号和槽机制
信号槽是 Qt 框架引以为豪的机制之一.熟练使用和理解信号槽,能够设计出解耦的非常漂亮的程序,有利于增强我们的技术设计能力. 所谓信号槽,实际就是观察者模式.当某个事件发生之后,比如,按钮检测到自己被 ...
- ubuntu开启ssh
SSH分客户端openssh-client和openssh-server如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-ge ...
- Linux安装tomcat服务器
1.下载tomcat(区分windows和Linux,以tar.gz为后缀名的是Linux操作系统使用的). 官网下载地址:http://test.m.xiaoyuanhao.com/micro/ap ...