$POJ2442\ Sequence$ 堆
正解:堆
解题报告:
全场除了我都切了系列$kk$
首先看$n=2$的情况.
首先暴力不说?就记录一个$sum$再分别记录$xy$两维的下标存到堆里面每次取队头并继续扩展就完事$QwQ$.
然后发现会枚举重复,就不太优秀,考虑优化$QwQ$.
于是考虑记录下这个点是扩展$x$的时候扩展来的还是扩展$y$的时候扩展来的,如果是扩展$x$的时候扩展来的就只扩展$x$了,否则就$xy$都要扩展.
这样就能保证每个状态只会被扩展一次了.
然后现在考虑$n>2$的情况.
就直接当$n=2$地做$n-1$次就完事
然后这个复杂度是$O(nmlogm)$的.
优化康考试总结$QwQ$,$over$
#include<algorithm>
#include<iostream>
#include<iomanip>
#include<vector>
#include<cstdio>
#include<queue>
using namespace std;
#define il inline
#define gc getchar()
#define ri register int
#define rb register bool
#define rc register char
#define rp(i,x,y) for(ri i=x;i<=y;++i)
#define my(i,x,y) for(ri i=x;i>=y;--i) const int N=1e5+;
int n,m,as;
vector<int>V[N],v;
struct node{int sum,fr,nwx,nwy;};
priority_queue<node>Q; il int read()
{
ri x=;rb y=;rc ch=gc;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')y=,ch=gc;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
}
il bool cmp(ri gd,ri gs){return gd>gs;}
il bool operator < (node gd,node gs){return gd.sum>gs.sum;}
il void work(ri x,ri y)
{
ri szx=V[x].size(),szy=V[y].size();
while(Q.size())Q.pop();;v.clear();Q.push((node){V[x][]+V[y][],,,});
rp(i,,m)
{
node nw=Q.top();Q.pop();v.push_back(nw.sum);
if(nw.nwx+<szx)Q.push((node){nw.sum-V[x][nw.nwx]+V[x][nw.nwx+],,nw.nwx+,nw.nwy});
if(nw.fr)continue;
if(nw.nwy+<szy)Q.push((node){nw.sum-V[y][nw.nwy]+V[y][nw.nwy+],,nw.nwx,nw.nwy+});
}
V[y]=v;
} int main()
{
//freopen("2442.in","r",stdin);//freopen("2442.out","w",stdout);
ri T=read();
while(T--)
{
n=read();m=read();as=;
rp(i,,n){V[i].clear();rp(j,,m)V[i].push_back(read());sort(V[i].begin(),V[i].end());}
rp(i,,n)work(i-,i);rp(i,,m-)printf("%d ",V[n][i]);printf("\n");
}
return ;
}
随机推荐
- 阿里云MaxCompute 2019-4月刊
摘要: 4月新功能发布,精彩技术好文推荐,5月线上线下活动抢先知道,尽在4月刊. 您好,MaxCompute 2019.4月刊为您带来产品最新动态和丰富的产品技术内容,欢迎阅读. 导读 [功能发布]4 ...
- HZOJ Function
比较神仙的一道dp,考试的时候还以为是打表找规律啥的. 我们重新描述一下这道题:一个10 9 × n的网格,每个格子有一个权值,每一列格子的权值都是相同的.从一个起点开始,每次可以向上走一格或者向左上 ...
- P2P需集齐四大证照
今后做P2P需集齐四大证照 比牌照制还严 2016-09-05 11:53:24 分类:热点观察 作者:汪祖刚 8月24日,P2P网贷监管细则在千呼万唤中始出来,整个行业内外的关注热度可谓史无前例.有 ...
- @codeforces - 1205E@ Expected Value Again
目录 @description@ @solution@ @part - 1@ @part - 2@ @part - 3@ @solution@ @details@ @description@ 给定两个 ...
- mysql数据库之多表查询
准备 ...
- hdu 4419 Colourful Rectangle (离散化扫描线线段树)
Problem - 4419 题意不难,红绿蓝三种颜色覆盖在平面上,不同颜色的区域相交会产生新的颜色,求每一种颜色的面积大小. 比较明显,这题要从矩形面积并的方向出发.如果做过矩形面积并的题,用线段树 ...
- ubuntu18.04 挂载ntfs硬盘无法写入解决办法
win10和ubuntu18.04双系统,在ubuntu下通过/etc/fstab挂载ntfs硬盘无写入权限,尝试通过chmod修改写入权限和ntfs-config图形工具修改写入权限均失败.在ubu ...
- phpStudy本地环境测试,打开网页很慢的解决办法!
很多人应该都遇到了在使用phpStudy本地环境测试软件时候打开很慢的问题,甚至动辄达到了1000ms以上,开篇直接给出解决办法: 下面给大家介绍phpstudy访问速度慢的解决办法. 1.修改mys ...
- 浮动,定位,flex布局
什么是文档流 英文原文是:Normal flow. In CSS 2.1, normal flow includes block formatting of block-level boxes, in ...
- Jieba分词包(一)——解析主函数cut
1. 解析主函数cut Jieba分词包的主函数在jieba文件夹下的__init__.py中,在这个py文件中有个cut的函数,这个就是控制着整个jieba分词包的主函数. cut函数的定义如 ...