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

网站设计师认证培训百度关键词排名联系方式

网站设计师认证培训,百度关键词排名联系方式,聊城优化seo,网站开发费用如何账务处理一.动态规划走楼梯2难点:不能连续走三次两级台阶如何表示思路:可以用二维数组f[i][j],i表示当前台阶数,j表示已经连续走了j次二级台阶了转移方程:f[i2][j1]f[i2][j1]f[i][j] 当j!2时,我们可以选择走二级台阶…

一.动态规划

  1. 走楼梯2

难点:不能连续走三次两级台阶如何表示

思路:可以用二维数组f[i][j],i表示当前台阶数,j表示已经连续走了j次二级台阶了

转移方程:f[i+2][j+1]=f[i+2][j+1]+f[i][j] 当j!=2时,我们可以选择走二级台阶

f[i+1][0]=f[i+1][0]+f[i][j] 选择走一级台阶,此时j变为了0

这两种情况是同时进行的

代码:

#include <bits/stdc++.h>

using namespace std;

int main()

{

int n;

cin>>n;

long long f[55][5];

memset(f,0,sizeof(f));

f[0][0]=1;

for(int i=0;i<=n;i=i+1)

{

for(int j=0;j<=2;j=j+1)

{

if(j!=2)

{

f[i+2][j+1]=f[i+2][j+1]+f[i][j];

}

f[i+1][0]=f[i+1][0]+f[i][j];

}

}

long long sum=f[n][0]+f[n][1]+f[n][2];

cout<<sum;

return 0;

}

2.任务分配

难点:是以时刻来枚举还是任务编号来枚举

思路:本题以时刻来枚举,可以通过起始时间和结束时间来进行转移

转移方程:

f[g[num].e]=max(f[g[num].e],f[i]+g[num].w);当此时刻i与当前任务的起始时间相等时,我们可以选择做此任务

f[i+1]=max(f[i],f[i+1]);此时刻不选择做任务或者无任务可做

两个方程同时进行

代码:

#include <bits/stdc++.h>

using namespace std;

struct ren

{

int s;

int e;

int w;

}g[1005];

bool cmp (ren a,ren b)

{

return (a.s<b.s||a.s==b.s&&a.e<b.e);

}

int f[1006];

int main()

{

int n;

cin>>n;

for(int i=1;i<=n;i=i+1)

{

cin>>g[i].s>>g[i].e>>g[i].w;

}

sort(g+1,g+n+1,cmp);

int num=1;

for(int i=1;i<=1005;i=i+1)

{

while(i==g[num].s)

{

f[g[num].e]=max(f[g[num].e],f[i]+g[num].w);

num=num+1;

}

f[i+1]=max(f[i],f[i+1]);

}

cout<<f[1005];

}

3.走路(此题略过,思路和前面两题类似)

二.二分查找

1.饿饿 饭饭

难点:如何分辨题目为二分答案类型题

思路:由于此题数据极大,普通的枚举一定过不了,需要一个快速的方法把前面的绝大部分流程跳过,因此我们用到了二分答案

二分答案的操作:寻找打到了mid轮之后,再打一轮就会超过总数k。判断条件:第mid轮打的total份饭<=总数k

代码:

#include <bits/stdc++.h>

using namespace std;

long long a[100050],c[100050];

int n;

long long k;

long long check(int x)

{

long long tt=0;

for(int i=1;i<=n;i=i+1)

{

if(a[i]<=x)

{

tt=tt+a[i];

}

else

{

tt=tt+x;

}

}

return tt;

}

int main()

{

cin>>n>>k;

long long zong=0;

for(int i=1;i<=n;i=i+1)

{

cin>>a[i];

zong=zong+a[i];

}

if(zong<k)

{

cout<<"-1";

}

else if(zong==k)

{

return 0;

}

else

{

int l=0;

int r=1e9;

while(l+1<r)

{

int mid=(l+r)/2;

if(check(mid)>k)

{

r=mid;

}

else

{

l=mid;

}

}

k=k-check(l);

int tot=0;

for(int i=1;i<=n;i=i+1)

{

if(a[i]>l)

{

c[++tot]=i;

}

}

for(int i=k+1;i<=tot;i=i+1)

{

cout<<c[i]<<" ";

}

for(int i=1;i<=k;i=i+1)

{

if(a[c[i]]!=l+1)

{

cout<<c[i]<<" ";

}

}

}

}

三.set的用法

1.订单编号

知识点:set容器其中的元素会自动排好队,并且不允许有重复元素

set的各常用成员函数列表:

insert()–在集合中插入元素

begin()–返回指向第一个元素的迭代器

end()–返回指向最后一个元素下一个位置(注意不是最后一个元素)的迭代器

clear()–清除所有元素

count()–返回某个值元素的个数

empty()–如果集合为空,返回true

find()–返回一个指向被查找到元素的迭代器

size()–集合中元素的数目

swap()–交换两个集合变量

upper_bound()–返回大于某个值元素的迭代器

lower_bound()--饭后第一个大于某个值元素的元素位置

max_size()–返回集合能容纳的元素的最大限值

rbegin()–返回指向集合中最后一个元素的反向迭代器

rend()–返回指向集合中第一个元素的反向迭代器

erase(itr)-删除整个已存在的容器

难点:此题需要返回未出现过的比原先值大的第一个数,这需要枚举很多内容,极有可能出现time limited这一错误信息

思路:set函数中的lower_bound()函数可以直接返回第一个大于元素的位置,可以用set存储

另外,我们可以用分区间的做法,来把已选值剔除出我们的枚举区间

另另外,这题思路好难,我尽力了

代码:

#include <bits/stdc++.h>

using namespace std;

int n;

set<pair<int,int> > c;

inline void insert(int l,int r)//往insert()函数中内置代码

{

if(l>r)

{

return;

}

c.insert(make_pair(r,l));

}

int main()

{

cin>>n;

c.insert(make_pair(2e9,1));

for(int i=1;i<=n;i=i+1)

{

int x;

cin>>x;

auto itr=c.lower_bound(make_pair(x,0));

if(itr->second<=x)//分区间做法

{

cout<<x<<" ";

insert(itr->second,x-1);

insert(x+1,itr->first);

c.erase(itr);

}

else

{

cout<<itr->second<<" ";

insert(itr->second+1,itr->first);

c.erase(itr);

}

}

}

http://www.hkea.cn/news/480387/

相关文章:

  • 兰州网站建设哪家专业谷歌seo网站推广
  • 崇信门户网站留言回复上优化seo
  • 网站建设费用有哪些站长工具搜索
  • 云主机能干什么独立站seo怎么做
  • 苏州专业网站建设设计公司免费发布推广信息的b2b
  • 空间 两个网站网络推广培训班
  • 零基础学做网站推广公司简介
  • 公司做网站最好引擎搜索器
  • 济南手工网站建设北京百度seo服务
  • 网站建设原创百度seo官网
  • 徐州企业网站建设衡阳seo服务
  • 网站自然排名优化seo专员是什么职业
  • 视频网站制作广告代理公司
  • wordpress主题域名授权密钥生成镇海seo关键词优化费用
  • 北京东直门+网站建设汕头seo外包平台
  • 长沙 做网站企业网络组网设计
  • 北京哪家做网站优化产品seo基础优化
  • 招商加盟网站建设百度网址安全检测
  • 知名做网站费用2024年将爆发新瘟疫
  • 河北省城乡与建设厅网站企业关键词排名优化哪家好
  • 网站开发合同协议百度百科推广费用
  • 推荐黄的网站产品推广策划
  • 济南网站建设设计公司线上运营推广
  • 小清新 wordpressseo排名是什么意思
  • 从客户—管理者为某一公司做一份电子商务网站管理与维护的方案自媒体是如何赚钱的
  • 黑龙江住房和城乡建设厅网站首页每日精选12条新闻
  • 做网站工作都包括什么企业网站搭建
  • 自己可以进行网站建设吗河北网站推广
  • 网站建设与管理论文seo整站怎么优化
  • 西安做网站收费价格网站流量监控