BZOJ4254 : Aerial Tramway

可以修建的缆车总数不超过n,于是可以先通过$O(n^2)$的枚举求出所有可以修建的缆车。

对于一个缆车,若它仅连接i和i+1,那么它不受k的限制,把这种缆车额外取出,从大到小排序。

剩下的缆车两两之间要么是包含关系,要么没有任何交集,按照包含关系可以建出一棵树。

设f[i][j][k]表示以i为根的子树中修建了j个缆车,且该区间内所有点上面的缆车数的最大值为k的最优解。

则对于x的孩子i,通过枚举a,b,c,d,可以得到:

f‘[x][a+c][max(b,d)]=max(f‘[x][a+c][max(b,d)],f[x][a][b]+f[i][c][d])

可以通过讨论b和d的大小关系,维护两个前缀最大值来省去d的枚举。

如果把a的枚举上界定为x之前部分的子树大小,c的枚举上界定为i的子树大小,那么对于树上的两个点,只会在它们的lca处被DP到,所以这个树形DP的时间复杂度为$O(kn^2)$。

最后统计答案时,只要枚举修建的受k限制的缆车数和不受k限制的缆车数,取个最大值即可。

#include<cstdio>
#include<algorithm>
#define rep(i,l,n) for(int i=l;i<=n;i++)
#define dep(i,n,l) for(int i=n;i>=l;i--)
using namespace std;
const int N=210,inf=~0U>>2;
int T,n,m,i,j,k,flag,x[N],y[N],cnt,one,b[N],g[N],nxt[N],ans;
int size[N],f[N][N][10],t[N][10];
struct P{int l,r,w;P(){}P(int _l,int _r,int _w){l=_l,r=_r,w=_w;}}a[N];
inline bool cmp(int x,int y){return x>y;}
inline void up(int&a,int b){if(a<b)a=b;}
void dfs(int x){
  rep(a,0,m)rep(b,0,k)f[x][a][b]=-inf;f[x][0][0]=0;
  for(int i=g[x];i;i=nxt[i]){
    dfs(i);
    dep(a,min(size[x]+size[i],m),0)rep(b,0,k)t[a][b]=f[x][a][b];
    dep(a,min(size[x],m),0)dep(c,min(size[i],m-a),0){
      int t1=-inf,t2=-inf;
      rep(b,0,k){
        up(t1,f[i][c][b]);
        up(t2,f[x][a][b]);
        up(t[a+c][b],max(f[x][a][b]+t1,f[i][c][b]+t2));
      }
    }
    size[x]+=size[i];
    dep(a,min(size[x],m),0)rep(b,0,k)f[x][a][b]=t[a][b];
  }
  if(!x)return;
  size[x]++;
  dep(a,min(size[x],m-1),0)dep(b,k-1,0)up(f[x][a+1][b+1],f[x][a][b]+::a[x].w);
}
int main(){
  while(~scanf("%d%d%d",&n,&m,&k)){
    k--;
    rep(i,1,n)scanf("%d%d",&x[i],&y[i]);
    rep(i,1,n)rep(j,i+1,n)if(y[i]==y[j]){
      flag=1;
      rep(k,i+1,j-1)if(y[k]>=y[i]){flag=0;break;}
      if(flag){
        if(i+1==j){
          b[++one]=x[j]-x[i];
        }else{
          a[++cnt]=P(i+1,j-1,x[j]-x[i]);
        }
      }
    }
    if(one>1)sort(b+1,b+one+1,cmp);
    rep(i,2,one)b[i]+=b[i-1];
    rep(i,1,cnt){
      j=0;
      rep(k,1,cnt)if(a[k].l<a[i].l&&a[k].r>a[i].r)if(!j||a[k].w<a[j].w)j=k;
      nxt[i]=g[j],g[j]=i;
    }
    dfs(0);
    ans=-1;
    rep(i,m-one,m)rep(j,0,k)up(ans,f[0][i][j]+b[m-i]);
    printf("Case %d: %d\n",++T,ans);
    rep(i,0,cnt)g[i]=size[i]=0;
    cnt=one=0;
  }
  return 0;
}

  

时间: 2024-10-06 11:21:22

BZOJ4254 : Aerial Tramway的相关文章

A Multi-Sensorial Simultaneous Localization and Mapping (SLAM) System for Low-Cost Micro Aerial Vehicles in GPS-Denied Environments

一种在无GPS环境中设计的面向低价微型飞行器的多传感器同步定位成图系统 学术编辑:Gonzalo Pajares Martinsanz收到:2017年1月25日:接受:2017年4月5日:发布时间:4月8日201 Abstract: One of the main challenges of aerial robots navigation in indoor or GPS-denied environments is position estimation using only the ava

Saliency Region Selection in Large Aerial Imagery using Multi-scale SLIC Segmentation

1 : Saliency Region Selection in Large Aerial Imagery using Multi-scale SLIC Segmentation, Proc. SPIE 8360, Airborne Intelligence, Surveillance, Reconnaissance (ISR) Systems and Applications IX, 2012 2 : 此论文中值得留意的几个观点: (1) At a glance, salient region

大气散射 Aerial Perspective

http://mathinfo.univ-reims.fr/IMG/pdf/PreethamSig2003CourseNotes.pdf https://blog.csdn.net/toughbro/article/details/7800395 Modeling Skylight and Aerial Perspective 大气的构成 有厚度 成分不一样 会发生散射  地球是圆的 朝一个方向上看的时候 光经过的大气层厚度不一样 颜色就不一样 小粒子的散射模型 Rayleigh scatter

泡泡一分钟:Motion Planning for a Small Aerobatic Fixed-Wing Unmanned Aerial Vehicle

Motion Planning for a Small Aerobatic Fixed-Wing Unmanned Aerial Vehicle Joshua Levin, Aditya Paranjape, and Meyer Nahon 小型特技飞行无人机的运动规划 https://pan.baidu.com/s/1xB6WxNMEo-SNAApsNT0GQQ Abstract- A motion planner is developed for guiding a small aeroba

航空遥感图像(Aerial Images)目标检测数据集汇总

常规目标检测数据集有很多,现在前沿的目标检测算法(如Faster R-CNN, Yolo, SSD, Mask R-CNN等)基本都是在这些常规数据集上实验的,但是,基于常规数据集训练的分类器,在航空遥感图像上的检测效果并不好,主要原因是航空遥感图像有其特殊性: 1,尺度多样性,航空遥感图像从几百米到近万米的拍摄高度都有,且地面目标即使是同类目标也大小不一,如港口的轮船大的有300多米,小的也只有数十米: 2,视角特殊性,航空遥感图像的视角基本都是高空俯视,但常规数据集大部分还是地面水平视角,所

[Robotics: Aerial Robotics] Quadrotor Kinematics

1transformation 2.rotations 3euler angles 4Axis/Angle Representation 5Rotations and Angular Velocities

论文翻译 DOTA:A Large-scale Dataset for Object Detection in Aerial Images

  简介:武大遥感国重实验室-夏桂松和华科电信学院-白翔等合作做的一个航拍图像数据集 摘要: 目标检测是计算机视觉领域一个重要且有挑战性的问题.虽然过去的十几年中目标检测在自然场景已经有了较重要的成就,但在遥感图像上却进展缓慢,原因不仅仅体现在图像规模的庞大及多样性.物体定位问题和地球表面物体实例的形状检测上,还因为遥感场景中具有良好注释的数据集过于匮乏.为了推进在Earth Vision,又称Earth Observation and Remote Sensing上的目标检测的研究,我们引进在

UPenn - Robotics 1:Aerial Robotics - week 2:Geometry and Mechanics

                原文地址:https://www.cnblogs.com/ecoflex/p/9781708.html

POJ 3020 Antenna Placement 最大匹配

Antenna Placement Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6445   Accepted: 3182 Description The Global Aerial Research Centre has been allotted the task of building the fifth generation of mobile phone nets in Sweden. The most st