A、B、C题很简单。

D、最大连续子序列

思路:

求最大连续子序列的值以及左右端点。

那么我们记录连续和值为s,最值为maxx,只有maxx改变时才改变左右端点,考虑记录l,r,即当前的区间端点。

那么当s<0时,那么我们直接更新l=r=i,当s>0,s+a[i],同时更新r的值。

代码:

#include<iostream>
#include<algorithm>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define dep(i,a,b) for(int i=a;i>=b;i--)
#define ll long long
#include<string.h>
#include<queue>
#include<stack>
#include<cstdio>
#include<cmath>
#include <stdlib.h>
#include<stack>
using namespace std;
const int maxn=100000+10;
#define mod 1000000007
#define INF 0x3f3f3f3f
int dx[]= {-1,1,0,0};
int dy[]= {0,0,-1,1};
int a[maxn];
int main()
{int n;while(scanf("%d",&n)!=EOF){int ansl=0,ansr=0,ans=0;int l=0,r=0;rep(i,0,n-1)scanf("%d",&a[i]);int s=0;int maxx=-999999;rep(i,0,n-1){if(s<0){s=a[i];l=i;r=i;}else{r=i;s+=a[i];}if(s>maxx){maxx=s;ansl=l;ansr=r;ans=maxx;}}if(ans<0){ansl=0;ansr=0;ans=0;}printf("%d %d %d\n",ans,ansl,ansr);}
}

E、安全路径

思路:

在更新dis数组时和迪杰斯特拉算法的思想一样,由原来的+变成了*,最短路变成了最长路,贪心原则改为先取长的即可。

代码:

#include<iostream>
#include<algorithm>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define dep(i,a,b) for(int i=a;i>=b;i--)
#define ll long long
#include<string.h>
#include<queue>
#include<stack>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=1000+6;
#define mod 1000000007
#define INF 0x3f3f3f3f
int dx[]= {-1,1,0,0};
int dy[]= {0,0,-1,1};
struct edges
{int to;int next;double v;
} edge[maxn*maxn];
int cnt;
int head[maxn*2];
void add(int u,int v,double w)
{edge[++cnt].to=v;edge[cnt].next=head[u];edge[cnt].v=w;head[u]=cnt;
}
double dis[maxn];
bool vis[maxn];
int n;
double maxx;
bool dir(int s,int t)
{rep(i,1,maxn-1)dis[i]=0;rep(i,1,maxn-1)vis[i]=0;dis[s]=1;for(int i=1; i<=n; i++){double minn=-INF;int tmp=-1;rep(j,1,n){if(vis[j])continue;if(dis[j]>minn){minn=dis[j];tmp=j;}}vis[tmp]=1;for(int j=head[tmp]; j; j=edge[j].next){int v=edge[j].to;double w=edge[j].v;if(w==0)continue;if(dis[v]<dis[tmp]*w){dis[v]=dis[tmp]*w;}}}return dis[t];
}
int main()
{while(scanf("%d",&n)!=EOF){cnt=0;memset(head,0,sizeof(head));rep(i,1,n){rep(j,1,n){double x;scanf("%lf",&x);add(i,j,x);}}int m;scanf("%d",&m);while(m--){maxx=-1;int u,v;scanf("%d %d",&u,&v);bool flag=dir(u,v);if(!flag)printf("What a pity!\n");elseprintf("%.3lf\n",dis[v]);}}return 0;
}

2014年中南大学研究生复试机试题(字符串、基础dp、最短路)相关推荐

  1. 1028: 安全路径(2014年中南大学研究生复试机试题 )

    1028: 安全路径 时间限制: 1 Sec  内存限制: 128 MB 提交: 228  解决: 96 [提交][状态][讨论版] 题目描述 卫斯理小说经常提及外星人,比如蓝血人. 在土星星球有很多 ...

  2. 2018年 中南大学研究生复试机试题(1025~ 1028)

    目录: A:最短距离 B:a + b问题 C:逃离迷宫 D:可乐 A:最短距离 http://39.106.164.46/problem.php?id=1025 思路: 设小王的坐标为(x1 + u1 ...

  3. 1019: 堆石子 2016年中南大学研究生复试机试题

    题目描述 在一片沙滩上摆放着 n堆石子. 现要将石子有次序地合并成一堆. 规定每次选2 堆相邻石子合并成新的一堆,合并的费用为新的一堆石子数.试设计一个算法,计算出将 n堆石子合并成一堆的最小总费用. ...

  4. 2016年中南大学研究生复试机试题(1015~1019)

    目录: **A:第几天 B:加油站 C:序列求平均 D:士兵排阵 ** A:第几天 http://39.106.164.46/problem.php?id=1015 思路: 分闰年和非闰年讨论即可. ...

  5. 中南大学2019研究生复试机试题

    中南大学2019研究生复试机试题 机试题共六题 1.选球问题 题目描述 输入 输出 样例输入 样例输出 解决代码 2.模拟出入栈游戏 题目描述 输入 输出 样例输入 样例输出 解决代码 3.爬楼梯游戏 ...

  6. 1004: 惠民工程 (2013年中南大学研究生复试机试 )

    1004: 惠民工程 时间限制: 1 Sec  内存限制: 128 MB 提交: 404  解决: 81 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 市政府"惠民工程&q ...

  7. 1028-可乐(中南大学18年研究生复试机试题)

    题目描述 猪年快乐!在这个快乐的日子里我们当然要去超市买可乐喝啦! 现在超市有n种可乐,第 i 种可乐的价格为C[i] ,体积为 2i-1 毫升,每种可乐都是无限供应的 ,现在你想买至少 L毫升的可乐 ...

  8. 13-19年复旦大学计算机学院研究生复试机试题

    (不保证代码完全正确,自己敲的可能存在不完善的地方,请各位大佬发现后指出,谢谢!) 暂时结束. 试题列表 2019上机题 2018上机题 2017上机题 2016上机题 2015上机题 2014上机题 ...

  9. 华科研究生复试机试题代码堆积供以后参考

    #include "stdafx.h" #include <cstdio> #include <cstring> using namespace std;# ...

最新文章

  1. Python的系统管理_12_rrdtool
  2. 条件变量为什么要和互斥锁一起使用
  3. 【CSS系列】CSS 实现必填项前/后添加红色星号
  4. http://blog.csdn.net/baidu_31657889/article/details/52315902
  5. (21)System Verilog设计D触发器
  6. 计算几何之凸包_卷包裹算法
  7. pap认证要交换几次报文_华为HCIA认证RS路由与交换 —— 链路状态协议OSPF PPP原理与配置方法详解...
  8. 总结4月13日密室逃脱后至今复习的内容(夯实基础,构建知识脉络)
  9. 给 QtCtreator 工程文件 pro 配置 pthread库和liburcu库
  10. 关于快速幂与快速积取模实现的尝试
  11. 博客园(cnblogs)右侧添加悬浮打赏功能
  12. 工业大数据收集及预测建模方法(南京大学-宋哲博士分享)- 个人总结
  13. 怎么把html变成桌面壁纸,新手必看,把静态壁纸变为动态壁纸怎么设置?
  14. html5 拖拽绘图,HTML5 拖拽实现
  15. php汉字转拼音百家姓版,砚田马中华书《百家姓》(文字拼音版)
  16. 计算机触摸屏维修,工控触摸屏常见的故障问题和维修方法分别是什么
  17. 树莓派3B——Mailbox
  18. 张宇:2020版数学1000题勘误及公告
  19. Physical implementation —— LEF and DEF
  20. “核高基”的专家有哪些人?

热门文章

  1. Idea关联java documentation帮助文档
  2. 2018年华为杯研究生数学建模竞赛
  3. (转载)MATLAB机器人运动学与动力学
  4. 服务器 '***' 上的 MSDTC 不可用。
  5. Java、JSP电子政务系统毕业设计
  6. 计算机组策略怎么设置远程桌面,组策略 之   自动启用客户端远程桌面功能
  7. android 浏览器打开微信支付宝,Android通过webview调起微信和支付宝app进行支付
  8. ADDS:关于用户账户名称辨析
  9. 曼昆《经济学原理》第三四章总结
  10. CAPL编程中的思想:if...else...判断语句还能这么玩