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

建设一个门户网站外贸做的社交网站有哪些

建设一个门户网站,外贸做的社交网站有哪些,wordpress上传主题413,wordpress 站点语言用来复健单调队列优化 dp 的,对它也加深了一些理解。 1.Mowing the Lawn 题意 在一年前赢得了小镇的最佳草坪比赛后,Farmer John 变得很懒,再也没有修剪过草坪。现在,新一轮的最佳草坪比赛又开始了,Farmer John 希望能…

用来复健单调队列优化 dp 的,对它也加深了一些理解。

1.Mowing the Lawn

题意

在一年前赢得了小镇的最佳草坪比赛后,Farmer John 变得很懒,再也没有修剪过草坪。现在,新一轮的最佳草坪比赛又开始了,Farmer John 希望能够再次夺冠。

然而,Farmer John 的草坪非常脏乱,因此,Farmer John 只能够让他的奶牛来完成这项工作。Farmer John 有 nnn1≤n≤1051\le n\le 10^51n105)只排成一排的奶牛,编号为 1∼n1\sim n1n。每只奶牛的效率是不同的,奶牛 iii 的效率为 aia_iai0≤ai≤1090\le a_i\le 10^90ai109)。

靠近的奶牛们很熟悉,因此,如果 Farmer John安排超过 KKK 只连续的奶牛,那么,这些奶牛就会罢工去开派对。因此,现在 Farmer John 需要你的帮助,计算 FJ 可以得到的最大效率,并且该方案中没有连续的超过 kkk 只奶牛。

思路

fi,opf_{i,op}fi,op 表示,第 iii 头奶牛选(op=1op=1op=1)或不选(op=0op=0op=0)的方案数。那么:
fi,0=max⁡(fi−1,0,fi−1,1)fi,1=max⁡{fj,0+si−sj},i−j≤k\begin{matrix} f_{i,0}=\max(f_{i-1,0},f_{i-1,1})\\ f_{i,1}=\max\{f_{j,0}+s_i-s_j\},i-j\le k \end{matrix}fi,0=max(fi1,0,fi1,1)fi,1=max{fj,0+sisj},ijk

其中 sis_isi 表示 ∑k=1iak\displaystyle\sum_{k=1}^i a_kk=1iak

对于 fi,1=max⁡{fj,0+si−sj}f_{i,1}=\max\{f_{j,0}+s_i-s_j\}fi,1=max{fj,0+sisj}sis_isi 提出来得到:fi,1=si+max⁡{fj,0−sj}f_{i,1}=s_i+\max\{f_{j,0}-s_j\}fi,1=si+max{fj,0sj}。还有个限制等价为 j≥i−kj\ge i-kjik,发现限制单调递增。因此可以用单调队列维护决策点 jjj

回忆一下单调队列优化 dp 的基本步骤:弹出越界队首、加入所需元素、获取答案。每次最优决策点取队首,加入新决策点进队尾:

  • q[head]<i−kq[head]<i-kq[head]<ik 就弹出队首;
  • f[q[tail]][0]−s[q[tt]]<f[i][0]−s[i]f[q[tail]][0]-s[q[tt]]<f[i][0]-s[i]f[q[tail]][0]s[q[tt]]<f[i][0]s[i] 说明队尾不如决策 iii 更优,因此弹出队尾。

答案就是 max⁡(fn,0,fn,1)\max(f_{n,0},f_{n,1})max(fn,0,fn,1)

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll N=1e5+9;
ll n,k,a[N];
ll s[N],q[N],f[N][2];
int main()
{scanf("%lld%lld",&n,&k);for(int i=1;i<=n;i++){scanf("%lld",&a[i]);s[i]=s[i-1]+a[i];}ll hh=0,tt=0;for(int i=1;i<=n;i++){f[i][0]=max(f[i-1][0],f[i-1][1]);while(hh<=tt&&q[hh]<i-k)hh++;f[i][1]=f[q[hh]][0]+s[i]-s[q[hh]];while(hh<=tt&&f[q[tt]][0]-s[q[tt]]<f[i][0]-s[i])tt--;q[++tt]=i;}printf("%lld",max(f[n][0],f[n][1]));return 0;
}

2.Little Bird

题意

nnn 棵树排成一排,第 iii 棵树的高度是 did_idi

qqq 只鸟要从第 111 棵树到第 nnn 棵树。当第 iii 只鸟在第 jjj 棵树时,它可以飞到第 j+1,j+2,⋯ ,j+kij+1, j+2, \cdots, j+k_ij+1,j+2,,j+ki 棵树。

如果一只鸟飞到一颗高度大于等于当前树的树,那么它的劳累值会增加 111,否则不会。由于这些鸟已经体力不支,所以它们想要最小化劳累值。

1≤n≤1061 \le n \le 10^61n1061≤di≤1091 \le d_i \le 10^91di1091≤q≤251 \le q \le 251q251≤ki≤n−11 \le k_i \le n - 11kin1

思路

fif_ifi 表示鸟飞到第 iii 棵树的最小劳累值。那么:
fi=min⁡{fj+[aj≤ai]},i−j≤kf_i=\min\{f_j+[a_j\le a_i]\},i-j\le kfi=min{fj+[ajai]},ijk

同样将限制转化为 j≥i−kj\ge i-kjik,限制单调递增,用单调队列维护决策点。

  • q[head]<i−kq[head]<i-kq[head]<ik 就弹出队首;
  • f[q[tail]]+[a[q[tail]]≤ai]>fif[q[tail]]+[a[q[tail]]\le a_i]>f_if[q[tail]]+[a[q[tail]]ai]>fi,比更新后的当前值小,直接推出队尾。

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll N=1e6+9;
ll n,a[N],Q;
ll f[N],q[N];
int main()
{scanf("%lld",&n);for(int i=1;i<=n;i++)scanf("%lld",&a[i]);scanf("%lld",&Q);while(Q--){memset(f,0,sizeof(f));memset(q,0,sizeof(q));ll k;scanf("%lld",&k);ll hh=0,tt=0;q[0]=1;for(int i=2;i<=n;i++){while(hh<=tt&&q[hh]<i-k)hh++;f[i]=f[q[hh]]+(a[q[hh]]<=a[i]);while(hh<=tt&&f[q[tt]]+(a[q[tt]]<=a[i])>f[i])tt--;q[++tt]=i;}printf("%lld\n",f[n]);}return 0;
}
http://www.dtcms.com/wzjs/792453.html

相关文章:

  • 刷业务网站怎么做怎么运营
  • 建设企业网站官网下载中心饮品网页设计图片
  • 58做网站北京好的网站开发
  • 如何用微信建设网站卖东西苏州装饰公司
  • 网站可以免费建立吗如何制作自己的网址教学视频
  • 徐州哪家公司做网站水平好vps可以用了做网站吗
  • 医院网站内链优化江苏新有建设集团有限公司官方网站
  • 南昌高端网站制作青海网站建设与管理
  • 深圳网站制作招聘我要自学网网页制作视频教程
  • 创意网站推荐大型医院设计网站建设
  • 青岛制作企业网站搭建及优化
  • 外国风格网站建设官网表格网站怎么做的
  • wordpress花园网站网络推广的主要内容
  • 德阳如何做百度的网站如何做网站挂qq
  • 网站如何导流量国外做连接器平台网站
  • 山西网站制作公司做网站需要多少钱 做
  • 电子商务书店网站设计实验互联网代理商联盟平台
  • 中科汇联网站建设手册图案生成器
  • 智慧团建官网登录网址模板建网站怎么做seo
  • 网站开发开源框架做菠菜网站多少钱
  • 制作网站的要素做内贸在哪些网站上找客户
  • 宝安公司网站制作哪家公司好青岛网站建设网站
  • 盐城网站开发建设零成本游戏网站开发
  • 情侣手表网站wordpress的后台管理导航菜单
  • 网站开发需求目标西安有那些做网站的公司好
  • 南京汤山建设银行网站seo推广价格
  • 获取网站访客qq代码seo专业优化方法
  • 零基础制作公司网站教程网站设计师职责
  • 厦门app网站建设郑州做网站推广地
  • 顺义企业网站建站公司移动端开发前景