集训第四周(高效算法设计)M题 (扫描法)
2015-08-05 18:58
295 查看
原题:UVA11078
题意:给你一个数组,设a[],求一个m=a[i]-a[j],m越大越好,而且i必须小于j
怎么求?排序?要求i小于j呢。枚举?只能说超时无上限。所以遍历一遍数组,设第一个被减数为a【0】,之后遇到比a【0】大的数就更新它,再拿这个被减数去减数组中的每一个元素,同时也要不断地更新这个m值。
题意:给你一个数组,设a[],求一个m=a[i]-a[j],m越大越好,而且i必须小于j
怎么求?排序?要求i小于j呢。枚举?只能说超时无上限。所以遍历一遍数组,设第一个被减数为a【0】,之后遇到比a【0】大的数就更新它,再拿这个被减数去减数组中的每一个元素,同时也要不断地更新这个m值。
#include"iostream" #include"set" #include"cstring" #include"cstdio" #include"algorithm" using namespace std; const int maxn=100000+10; int a[maxn]; int main() { int T; cin>>T; while(T--) { int n; cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; } int x=a[0]; int ans=-1; for(int i=1;i<n;i++) { ans=max(x-a[i],ans); x=max(a[i],x); } cout<<ans<<endl; } return 0; }
相关文章推荐
- MFC类之间获取指针的方法
- Lua笔记6-闭包1
- 导出特定内容成insert语句
- 非文人,非墨客,以竹开题
- Spring MVC使用RESTful风格的PUT请求
- 文档、视图和框架:分割窗口
- 扑克牌算24点 DFS
- 字符串分割
- 有关截取歌词中字符串的作业(用工程实现)
- spark资料汇总
- 重学java23种设计模式(13)责任链模式
- Mybatis 源码解析(三) - properties标签
- UVA10815 Andy's First Dictionary
- POJ-3620Avoid The Lakes (搜索)
- hdoj 1181 变形课(深搜)
- DirectorySearcher LDAP
- javascript总结
- solr4的solr-ik插件
- 汇编寄存器笔记
- com.mchange.v2.c3p0.ComboPooledDataSource