一看就是 十分简单的  题  ,   然后上去开始无脑程序

超时~~~      感觉时间复杂度 , 已经很低了  ,  但是并没有什么卵用 .

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 #include<iostream>
 5 #include<algorithm>
 6 #include<queue>
 7 #include<vector>
 8 #include<set>
 9 #include<stack>
10 #include<string>
11 #include<sstream>
12 #include<map>
13 #include<cctype>
14 #include<limits.h>
15 using namespace std;
16 int main()
17 {
18     int w,q,a[100000],n,m;
19     scanf("%d%d",&w,&q);
20     for(int i=1;i<=w;i++)
21         scanf("%d",&a[i]);
22     for(int i=0;i<q;i++)
23     {
24         int maxn=INT_MIN,minn=INT_MAX;
25         scanf("%d%d",&n,&m);
26         for(int j=n;j<=m;j++)
27         {
28             maxn=maxn>a[j]?maxn:a[j];
29             minn=minn<a[j]?minn:a[j];
30         }
31         printf("%d\n",maxn-minn);
32     }
33     return 0;
34 }

两个程序的时间复杂度

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 #include<iostream>
 5 #include<algorithm>
 6 #include<queue>
 7 #include<vector>
 8 #include<set>
 9 #include<stack>
10 #include<string>
11 #include<sstream>
12 #include<map>
13 #include<cctype>
14 #include<limits.h>
15 using namespace std;
16 int dp_max[100005][17];
17 int dp_min[100005][17];
18 void RMQ(int n)
19 {
20     for(int j = 1; j < 17; j++)     //   这里 为啥 是 20 呢  ? //F[i, j]表示从第i个数起连续2^j个数中的最大值。(DP的状态) ???
21     {
22         for(int i = 1; i <= n; i++)
23         {
24             if( i + (1<<j)-1 <= n)
25             {
26                 dp_max[i][j] = max(dp_max[i][j-1],dp_max[i+(1<<(j-1))][j -1]);
27                 dp_min[i][j] = min(dp_min[i][j-1],dp_min[i+(1<<(j-1))][j-1]);
28             }
29         }
30     }
31 }
32 int main()
33 {
34     int n,q,m,k;
35     scanf("%d%d",&n,&q);            //   士兵的 总人数  .
36     for(int i = 1; i <= n; i++)
37     {
38         scanf("%d",&dp_max[i][0]);      //
39         dp_min[i][0]=dp_max[i][0];    //    最小和最大 都先默认了
40     }
41     RMQ(n);             //   一共 有  n  个 数字
42     while(q--)
43     {
44         scanf("%d%d",&m,&k);
45         int s=(int)(log(k-m+1)/log(2));
46         int max_val = max(dp_max[m][s],dp_max[k-(1<<s)+1][s]);
47         int min_val = min(dp_min[m][s],dp_min[k-(1<<s)+1][s]);
48         printf("%d\n",max_val - min_val);
49     }
50     return 0;
51 }

转载于:https://www.cnblogs.com/A-FM/p/5462787.html

士兵杀敌 三 --- O( 1 ) 的时间复杂度 .相关推荐

  1. NYOJ 119 士兵杀敌(三)

    士兵杀敌(三) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5 描述 南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比 ...

  2. 蓝桥杯算法训练合集三 1.车的位置2.24点3.最大分解4.RP大冒险5.士兵杀敌(二)

    目录 1.车的位置(搜索) 2.24点(搜索) 3.最大分解(贪心) 4.RP大冒险 5.士兵杀敌(二) 1.车的位置(搜索) 问题描述 在一个n*n的棋盘中,每个格子中至多放置一个车,且要保证任何两 ...

  3. 士兵杀敌(三)RMQ板子

    题目来源: http://nyoj.top/web/contest/problem/cid/3/num/C 题目描述: 南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高 ...

  4. NYOJ 116士兵杀敌(二) 树状数组

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=116 士兵杀敌(一) 数组是固定的,所以可以用一个sum数组来保存每个元素的和就行,但是不 ...

  5. NYOJ 228 士兵杀敌(五)

    士兵杀敌(五) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5 描述 南将军麾下有百万精兵,现已知共有M个士兵,编号为0~M,每次有任务的时候,总会有一批编号连在一起人请战(编 ...

  6. nyoj116 士兵杀敌(二)树状数组 插点问线

    士兵杀敌(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. 小工是南将军手下的军师,南将军经常想知 ...

  7. 士兵杀敌(二)(线段树+树状数组)

    士兵杀敌(二) 时间限制:1000 ms  |           内存限制:65535 KB 难度:5 描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. 小工是南将军手下的军 ...

  8. nyoj123士兵杀敌4-树状数组-改区间查点

    士兵杀敌(四) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5 描述 南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,总会有一批编号连在一起人请战,最终他们获得相同军功 ...

  9. nyoj116士兵杀敌2

    题目链接: 士兵杀敌2 链接二 解法线段树,线段树有些像是特殊的二叉平衡树,不知道的可以搜搜二叉平衡树,可能并没有你想象中的那样难. AC代码: #include <stdio.h> #i ...

  10. NYOJ 123 士兵杀敌(四)

    士兵杀敌(四) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5 描述 南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编 ...

最新文章

  1. testNG安装一直失败解决方法
  2. [教程] MacBook Pro 开机密码忘记解决方法
  3. 深度案例 | 中商惠民:如何用数据洞察商超需求 重塑高效流通链
  4. OpenCV imgcodecs写入的实例(附完整代码)
  5. 基于keras中IMDB的文本分类 demo
  6. 【玩转cocos2d-x之十五】关卡选择的设计
  7. c# union结构体_P/Invoke各种总结(八、在C#中使用Union联合体)
  8. python 进程通信 延时_Python-----进程通信队列
  9. 关于系统响应函数OnSysCommand
  10. 阅读阿里巴巴开发人员手册1
  11. 网易电子邮箱的文档功能是什么?
  12. 【MySQL】exists与in的比较
  13. 《介绍几个常见常用的字符函数》(包括isdigit,isupper,islower,isalpha,isalnum,toupper,tolower)
  14. php对接一网通,Android招行一网通对接
  15. 微信公众号怎么为用户提供文件下载功能
  16. UI设计APP金刚区,卡片式设计
  17. 安防行业安全产品分类、趋势分析
  18. SWOT、6W2H、WBS、时间管理……
  19. 用latex在写MDPI的文章文献References部分时遇到的问题(! Misplaced alignment tab character .)
  20. ABAP字符串系列操作

热门文章

  1. 【转】让EntityManager的Query返回Map对象
  2. 浅谈软件性能测试中关键指标的监控与分析
  3. 51nod 1134最长递增子序列
  4. 【转】你有这么一个人么
  5. 【转】opengl的一些小问题
  6. 新版chrome移动端踩坑
  7. Redis HyperLogLog命令,phpredis如何执行HyperLogLog命令
  8. Android 热修复的相关总结(主要是阿里百川的)
  9. 【转】【翻】Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏...
  10. 对《构建之法——现代软件工程》13-17章的困惑与思考