poj 2442 优先队列 复杂度用了两个break 降到了m*n*log(n)
来源:互联网 发布:tensorflow pytorch 编辑:程序博客网 时间:2024/06/05 22:07
#include<iostream>#include<algorithm>#include<queue>using namespace std;int a[5000],b[5000],a1[3000],c;priority_queue<int> q;int main(){int t,i,j,m,n,temp;cin>>t;while(t--){i=0;cin>>m>>n; //while(m--)这种写法好是好,但是m的值会因此改变for(i=0;i<n;i++)cin>>a[i];m--;while(m--){for(i=0;i<n;i++) //第一次这样写,思路是两两相加,取前n个和下一行相加,这样既减少了复杂度,又能避免开二维数组cin>>b[i];sort(b,b+n);for(i=0;i<n;i++) //for(i=0;i<n;i++) a1[i]=a[i]+b[0]; // for(j=0;j<n;j++)for(i=0;i<n;i++)q.push(a1[i]);sort(a,a+n);for(i=1;i<n;i++) //c[k++]=a[i]+b[j];{ temp=0; for(j=0;j<n;j++) // sort(c,c+n*n); { c=a[j]+b[i]; if(c<q.top()) { q.pop(); q.push(c); temp=1; } else break;}if(temp==0)break;}i=0;while(!q.empty()){a[i++]=q.top();q.pop();}}sort(a,a+n);for(i=0;i<n-1;i++)cout<<a[i]<<" ";cout<<a[i]<<endl;}}
0 0
- poj 2442 优先队列 复杂度用了两个break 降到了m*n*log(n)
- POJ 2442-Sequence(优先队列-m组n个数每组取一个求n个最小值)
- 求n^m 时间复杂度log(m)的算法
- 庞果英雄会-合法字符串 复杂度 O(log(n)*log(n)*log(m))
- 用了n多年了, qq终于两个太阳了...
- LeetCode 第三题,官方给的标准答案的一个分析,利用空间换时间,将复杂度降到了O(n)
- 两个堆栈m和n(m<n)模拟一个队列,容量为m+m
- poj 2127 时间复杂度为O(m*n)
- 1.1 broken neckless(一直想用O(N)复杂度的方法写,写了两天两个百多行的都跪了,还是乖乖用O(N^2)复杂度的方法写算了)
- Java,打了n 枪中了m环,递归
- poj 1036 n!/(n-m)!*m!
- C实现 log n(m)
- Dijkstra(n log(n))优先队列优化+链式前向星
- LeetCode Median of Two Sorted Arrays 在两个已排列的数组中找出中位数。时间复杂度为O(log(min(N,M))
- POJ 2051 优先队列/小顶堆O(klog(n))轻松实现
- 线段树降空间复杂度,从O(4n)降到O(2n)
- 用log(n)时间复杂度解决Fibonacci问题
- 两个无序数组分别叫A和B,长度分别是m和n,求中位数,要求时间复杂度O(m+n),空间复杂度O(1) 。
- Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
- 爆火之神经猫
- android动态加载sd卡的xml布局文件
- apt-get
- DCOM组件权限设置
- poj 2442 优先队列 复杂度用了两个break 降到了m*n*log(n)
- 如何为cookie设置HttpOnly
- 设计模式——工厂模式(Factory)
- Git远程基本操作命令
- cocos2dx游戏源码之《德州扑克》
- iOS应用截图
- Layout_weight这个属性
- 1551. Digital Roots
- Android Launcher分析和修改10——HotSeat深入进阶