当前位置: 首页 > news >正文

做网站上饶/app推广代理

做网站上饶,app推广代理,龙岗网站建设需要考量些什么,国外的优秀网站线段树优化dp 数组f[i][j]表示在前i个村庄内,第j个基站建在i处的最小费用 根据交线牛逼法和王鹤松式可得方程 f[i][j]min(f[k][j−1]cost(k,i)) cost(k,i)表示第i~k个村庄之间没有被基站覆盖的村庄所需的赔偿费用,计算费用的复杂度为O(n) 利用二分查找预…

线段树优化dp

数组f[i][j]表示在前i个村庄内,第j个基站建在i处的最小费用

根据交线牛逼法和王鹤松式可得方程

f[i][j]=min(f[k][j−1]+cost(k,i))

cost(k,i)表示第i~k个村庄之间没有被基站覆盖的村庄所需的赔偿费用,计算费用的复杂度为O(n)

利用二分查找预处理每个位置的需求范围bef[i],beh[i]

之后就是利用线段树维护f[]+cost()的最小值,区间查询区间更新

当beh[x]=i,若i不建造,则加cost(可能存在很多x,前向星或vector存储)

Code:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#define ls(k) k<<1
#define rs(k) k<<1|1
using namespace std;
const int N=20010,K=110;
int dis[N],s[N],w[N],c[N],f[N];
int n,m,bef[N],beh[N];
int tot=0,to[N<<1],head[N<<1],nxt[N<<1];
int mn[N<<2],lz[N<<2];
void Add(int x,int y)
{to[++tot]=y;nxt[tot]=head[x];head[x]=tot;
}
void up(int k)
{mn[k]=min(mn[ls(k)],mn[rs(k)]);
}
void build(int k,int l,int r)
{lz[k]=0;if(l==r){mn[k]=f[l];return ;}int mid=l+r>>1;build(ls(k),l,mid);build(rs(k),mid+1,r);up(k);
}
void down(int k)
{lz[ls(k)]+=lz[k];lz[rs(k)]+=lz[k];mn[ls(k)]+=lz[k];mn[rs(k)]+=lz[k];lz[k]=0;
}
int query(int k,int l,int r,int L,int R)
{if(L>R)return 0x3f3f3f3f;if(L<=l&&R>=r)return mn[k];int mid=l+r>>1;if(lz[k])down(k);int res=0x3f3f3f3f;if(L<=mid)res=min(res,query(ls(k),l,mid,L,R));if(mid<R)res=min(res,query(rs(k),mid+1,r,L,R));return res;
}
void change(int k,int l,int r,int L,int R,int vl)
{if(L>R)return ;if(L<=l&&R>=r){lz[k]+=vl;mn[k]+=vl;return ;}if(lz[k])down(k);int mid=l+r>>1;if(L<=mid)change(ls(k),l,mid,L,R,vl);if(R>mid)change(rs(k),mid+1,r,L,R,vl);up(k);
}
int main()
{scanf("%d%d",&n,&m);for(int i=2;i<=n;i++)scanf("%d",&dis[i]);for(int i=1;i<=n;i++)scanf("%d",&c[i]);for(int i=1;i<=n;i++)scanf("%d",&s[i]);for(int i=1;i<=n;i++)scanf("%d",&w[i]);n++,m++;dis[n]=w[n]=0x3f3f3f3f;for(int i=1;i<=n;i++){bef[i]=lower_bound(dis+1,dis+n+1,dis[i]-s[i])-dis;beh[i]=lower_bound(dis+1,dis+n+1,dis[i]+s[i])-dis;if(dis[beh[i]]>dis[i]+s[i])beh[i]--;Add(beh[i],i);}int now=0;for(int j=1;j<=n;j++){f[j]=now+c[j];for(int i=head[j];i;i=nxt[i])now+=w[to[i]];}int ans=f[n];for(int i=2;i<=m;i++){build(1,1,n);for(int j=1;j<=n;j++){f[j]=query(1,1,n,1,j-1)+c[j];for(int p=head[j];p;p=nxt[p])change(1,1,n,1,bef[to[p]]-1,w[to[p]]);}ans=min(ans,f[n]);}cout<<ans<<endl;return 0; 
}

转载于:https://www.cnblogs.com/Rorschach-XR/p/10969177.html

http://www.lbrq.cn/news/1409275.html

相关文章:

  • 杭州网站建设 网络服务/网站建设技术
  • 注册做网站的公司/优化搜索引擎营销
  • c2c商城网站建设方案/网页设计费用报价
  • 做网站还有价值吗/网站开发制作培训学校
  • 杭州网站设计询问蓝韵网络/营销策划机构
  • 行业猎头网/seo整站优化什么价格
  • 南京网站建设开发/seo3的空间构型
  • 响应式网站建设特征/微信朋友圈广告在哪里做
  • 做网站滚屏广告软件/semir是什么意思
  • 湘潭网站建设 诚信磐石网络/网站推广排名哪家公司好
  • wordpress 简历主题/企业seo推广
  • 泰安网站开发公司/百度热搜关键词排行榜
  • 南康做网站/网站推广和网站优化
  • 怎么自己编写网站/市场调研问卷调查怎么做
  • 驻马店市旅游网站建设/今日军事新闻头条
  • 手机app是怎么开发出来的/seo关键词布局
  • 网站备案是在哪个部门/怎么样做推广最有效
  • 网站权重不稳定/聚合搜索引擎接口
  • 软件定制开发成本/外包seo公司
  • 广东电白建设集团有限公司网站/百度域名收录提交入口
  • 网站团队的建设/企业培训系统
  • 个人空间网站建设/网络营销五种方法
  • 西安做网站好的公司/人力资源培训与开发
  • 新手怎么推广自己的店铺/深圳关键词优化
  • 做网站建设公司赚钱吗/seo是什么单位
  • 有没有个人做网站赚钱/seo关键词排名优化矩阵系统
  • 上线了 做商务网站/高级seo
  • 网站建设 制作/黑帽seo技术论坛
  • 仙游县建设局网站/关键词推广优化
  • 做二手钢结构网站/上海百度seo公司
  • openldap安装 -添加条目
  • 【笔记ing】考试脑科学 脑科学中的高效记忆法
  • html页面打水印效果
  • 开源im即时通讯软件开发社交系统全解析:安全可控、功能全面的社交解决方案
  • C语言(12)——进阶函数
  • 【CV 目标检测】Fast RCNN模型②——算法流程