士兵杀敌 三 --- O( 1 ) 的时间复杂度 .
2016-05-05 18:01
267 查看
![](http://images2015.cnblogs.com/blog/829161/201605/829161-20160505171802591-1314241007.png)
一看就是 十分简单的 题 , 然后上去开始无脑程序
超时~~~ 感觉时间复杂度 , 已经很低了 , 但是并没有什么卵用 .
#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #include<queue> #include<vector> #include<set> #include<stack> #include<string> #include<sstream> #include<map> #include<cctype> #include<limits.h> using namespace std; int main() { int w,q,a[100000],n,m; scanf("%d%d",&w,&q); for(int i=1;i<=w;i++) scanf("%d",&a[i]); for(int i=0;i<q;i++) { int maxn=INT_MIN,minn=INT_MAX; scanf("%d%d",&n,&m); for(int j=n;j<=m;j++) { maxn=maxn>a[j]?maxn:a[j]; minn=minn<a[j]?minn:a[j]; } printf("%d\n",maxn-minn); } return 0; }
两个程序的时间复杂度
![](http://images2015.cnblogs.com/blog/829161/201605/829161-20160506173309732-1056289751.png)
#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #include<queue> #include<vector> #include<set> #include<stack> #include<string> #include<sstream> #include<map> #include<cctype> #include<limits.h> using namespace std; int dp_max[100005][17]; int dp_min[100005][17]; void RMQ(int n) { for(int j = 1; j < 17; j++) // 这里 为啥 是 20 呢 ? //F[i, j]表示从第i个数起连续2^j个数中的最大值。(DP的状态) ??? { for(int i = 1; i <= n; i++) { if( i + (1<<j)-1 <= n) { dp_max[i][j] = max(dp_max[i][j-1],dp_max[i+(1<<(j-1))][j -1]); dp_min[i][j] = min(dp_min[i][j-1],dp_min[i+(1<<(j-1))][j-1]); } } } } int main() { int n,q,m,k; scanf("%d%d",&n,&q); // 士兵的 总人数 . for(int i = 1; i <= n; i++) { scanf("%d",&dp_max[i][0]); // dp_min[i][0]=dp_max[i][0]; // 最小和最大 都先默认了 } RMQ(n); // 一共 有 n 个 数字 while(q--) { scanf("%d%d",&m,&k); int s=(int)(log(k-m+1)/log(2)); int max_val = max(dp_max[m][s],dp_max[k-(1<<s)+1][s]); int min_val = min(dp_min[m][s],dp_min[k-(1<<s)+1][s]); printf("%d\n",max_val - min_val); } return 0; }
相关文章推荐
- 写入到文件
- 解决shell命令行只显示-bash-4.1#不显示用户和路径方法
- eclipse中部署opencms进行调试
- 小球的自由落体动画
- Stacked Autoencoders
- 笔试题47. LeetCode OJ (34)
- android studio中安装parcelable插件
- 启动外部程序及安装app的相关代码
- 深入解析SendMessage、PostMessage
- [转]WPF——Thumb
- Android Studio导入Vitamio问题详细解析
- mysql双master配置
- bzoj1483[HNOI2009]梦幻布丁 链表启发式合并
- ./configure,make,make install的作用
- 调用回调方法有返回值的情况
- android 缓存思路
- cocos2dx 3.3 cocos studio控件与C++代码内类的对应关系
- 建立简单的系统模型
- openGL中 GL_LINES 与GL_LINE_STRIP 的一些区别
- Shell中awk和sed的一些使用