当前位置: 首页 > news >正文

邯郸网站优化建设镇平建设局网站

邯郸网站优化建设,镇平建设局网站,笛东景观设计公司官网,智慧旅游网站开发与设计与实现题干#xff1a; 给出一个长度为N的整数数组A#xff0c;对于每一个数组元素#xff0c;如果他后面存在大于等于该元素的数#xff0c;则这两个数可以组成一对。每个元素和自己也可以组成一对。例如#xff1a;{5, 3, 6, 3, 4, 2}#xff0c;可以组成11对#xff0c;如…题干 给出一个长度为N的整数数组A对于每一个数组元素如果他后面存在大于等于该元素的数则这两个数可以组成一对。每个元素和自己也可以组成一对。例如{5, 3, 6, 3, 4, 2}可以组成11对如下数字为下标 (0,0), (0, 2), (1, 1), (1, 2), (1, 3), (1, 4), (2, 2), (3, 3), (3, 4), (4, 4), (5, 5)。其中(1, 4)是距离最大的一对距离为3。 Input 第1行1个数N表示数组的长度(2 N 50000)。  第2 - N 1行每行1个数对应数组元素Ai(1 Ai 10^9)。 Output 输出最大距离。 Sample Input 6 5 3 6 3 4 2 Sample Output 3 解题报告 这题第一反应是线段树但是想想思维题怎么可能上数据结构呢所以开始往思维方面想无非就是结构体存位置排序开一个数组存某个数最早(或晚)出现的位置等等方法呗、、、  线段树也不难想离散化一下之后从头到尾扫在离散化后的值那个权值那里存一下下标并标记说这个值已经出现过了即维护每个数字出现的最早时刻即最小下标然后扫到下一个数a[i]查询1~getpos(a[i])查询区间最小值维护差的最大值就可以了。getpos是找到a[i]对应的离散化以后的值。 这题我还想到了可否用setpair去维护在线更新set这样满足了每次查找的元素出现的先后关系但是对于值的大小emmm不好搞啊。反正51Nod - 1065这题是可以set做的。 这题看看代码就懂了题目中有两个要素元素的先后出现的关系关系是大于等于。排序的目的就是为了先满足后者因为后者最麻烦所以先让他满足为啥最麻烦呢因为看前后的话比较一下pos然后维护最小值就可以了但是对于值的话无法满足这个单调性也就是不好满足前缀可维护关系所以我们先排序排除了这个因素剩下的就是维护一个pos最小值了。 AC代码 #includebits/stdc.h using namespace std; int n,ans; struct Node {int val,pos; } node[50000 5]; bool cmp(const Node a,const Node b) {if(a.val! b.val) return a.val b.val;return a.pos b.pos; } int main() {cinn;for(int i 1; in; i) {scanf(%d,node[i].val);node[i].pos i;}sort(node1,noden1,cmp);int curpos node[1].pos;for(int i 1; in; i) {curpos min(curpos,node[i].pos);ans max(ans,node[i].pos - curpos); }printf(%d\n,ans);return 0 ; } 另如果要求了空间复杂度那么就不能排序解决了这时候考虑用优先队列去优化空间。 很巧妙但是可能只有面试的时候会遇到对空间有特别的要求的 AC代码2空间复杂度o(1)的版本 #includebits/stdc.h using namespace std; #define ll long long struct Node {int val,pos;friend bool operator (Node x,Node y) {if(x.valy.val) return x.posy.pos;return x.valy.val;} }; priority_queueNode pq; int n; int main() {cinn;Node tmp;for(int i 1; in; i) {scanf(%d,tmp.val);tmp.posi;pq.push(tmp);}int curn,ans0;while(!pq.empty()) {Node now pq.top();pq.pop();if(now.poscur) curnow.pos;ansmax(ans,now.pos-cur);}printf(%d\n,ans);return 0; }
http://www.pierceye.com/news/258680/

相关文章:

  • 游戏租号网站开发网页设计的技术有哪些
  • 工信部网站备案文件合肥网站制作建设
  • 网站架设标准网站域名注册费用
  • 东莞网站制作功能十堰微网站建设价格
  • google关键词分析工具网站建设seo 视频教程
  • 泸州市规划建设局网站网站建设及维护包括范围
  • 网站设计培训成都哪个网站开发软件
  • 四川炜航建筑公司网站新郑网络推广外包
  • 网站建设名头网站项目建设方案
  • 可以用asp做哪些网站简历模板大学生免费
  • 公司 宜宾网站建设头条小程序
  • 大连h5建站学院网站建设申请报告
  • 大蒜做营销型网站贵州最好的网站建设推广公司
  • 单仁资讯做网站怎样备案网站应用服务
  • 如何生成一个网站怎么查看一个网站有没有做推广
  • 温州网站设计案例wdcp创建多个网站
  • 做个公司网站专业做网站app的公司
  • 动漫网站源码下载莱芜金点子最新招工信息
  • 小区住宅可以注册公司吗简述seo的概念
  • 做农村电商要多少钱南宁软件优化网站
  • 网站系统建设技术服务费网站建设 专项资金变更
  • 网站建设画册怎么用eclipse做网页
  • 百度网站安全检测平台广州番禺营销型网站建设
  • 杭州大的做网站的公司甘肃省住房和城乡建设部网站首页
  • 网站建设与网页设计考试题棋牌软件开发搭建
  • 短链接生成网址wordpress主叶SEO优化
  • 免费的cms视频网站做cpa怎么建立自己网站
  • 在哪里找做网站的北京的招聘网站有哪些
  • 做旅行网站aspx网站开发
  • 网站接入服务器商查询wordpress更换端口