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

用中文模版可以做英文网站吗wordpress 全文搜索

用中文模版可以做英文网站吗,wordpress 全文搜索,广州设计公司排名榜,电力建设工程质监总站网站本题思路来源于acwing算法提高课 题目描述 看本文需要准备的知识 1.二分(强烈推荐文章:一分钟学会二分模板 2.dfs基本思想,了解“剪枝”这个术语 思路分析 首先这道题目看起来就是一个01背包,但是如果直接用01背包去做&…

本题思路来源于acwing算法提高课

题目描述

 看本文需要准备的知识

1.二分(强烈推荐文章:一分钟学会二分模板 

2.dfs基本思想,了解“剪枝”这个术语

思路分析

首先这道题目看起来就是一个01背包,但是如果直接用01背包去做,时间复杂度为2^31*46一定会超时,如果直接使用爆搜,也一定会超时+爆栈,此时,我们对爆搜进行优化,采用双向dfs去搞定这个题目

整体思路是下面的两步

step one:使用爆搜对前N/2个礼物打表(下面会说这里的打表具体指什么),需要的时间复杂度是2^(N/2)

step two:对剩下的N/2个礼物进行爆搜,对搜索树最后一层的每个结点的“礼物重量和”s使用二分,从前N/2个礼物的打表中找到最大不超过w-s的值(w是能拿的礼物重量的上限),求所有这些值的最大值ans

第一个问题,step one中的打表是什么,比如有三个礼物,重量分别为1,2,3,可以打表的个数为2^3个,分别是0,1,2,3,3,4,5,6,其实就是所有礼物的重量组合,很明显,打表之后会出现重量重复的情况,所以可以通过去重做一个小优化,此处去重是使用头文件<algorithm>中的unique函数,假设打表后的数组为weight,元素总个数为cnt,则可以写(排序之后再用):

cnt=unique(weight,weight+cnt)-weight;

第二个问题,step two中“搜索树最后一层的每个结点的礼物重量和”是什么意思,其实这个跟对前N/2个礼物打表是完全等价的,只不过是对后N/2个礼物进行打表并且这个结果没有记录下来而是当场直接使用了而已,具体的意思可以看代码理解

最后,还可以做一个小优化就是把刚开始的重量数组g[46]从大到小排序,这实际上是优化搜索顺序,减少递归树的分支

完整代码

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=50;
typedef long long LL;
int g[N];
int weight[1<<25],cnt;
int n,w,k;
int ans=0;
void dfs1(int u,int s)
{if(u==k){//cout<<u<<" "<<s<<endl;weight[cnt++]=s;return;}dfs1(u+1,s);if((LL)s+g[u]<=w)dfs1(u+1,s+g[u]);
}
void dfs2(int u,int s)
{if(u==n){int l=-1,r=cnt;while(l+1!=r){int mid=(l+r)/2;if(weight[mid]<=w-s)l=mid;else r=mid;}//cout<<weight[l]+s<<endl;if (weight[l]+(LL)s<=w)ans=max(ans,weight[l]+s);return;}dfs2(u+1,s);if((LL)s+g[u]<=w)dfs2(u+1,s+g[u]);
}
int main()
{cin>>w>>n;for(int i=0;i<n;i++)cin>>g[i];sort(g,g+n);reverse(g,g+n);k=n/2; dfs1(0,0);sort(weight,weight+cnt);// for(int i=0;i<cnt;i++)cout<<weight[i]<<endl;cnt=unique(weight,weight+cnt)-weight;//  for(int i=0;i<cnt;i++)cout<<weight[i]<<endl;dfs2(k,0);cout<<ans<<endl;return 0;
}

http://www.yayakq.cn/news/836898/

相关文章:

  • 建立网站需要分几部进行淘宝怎么推广
  • ext做的网站有那些wordpress+程序优化
  • 备案网站名怎么写金坛做网站的
  • 上海做网站找哪家好民治做网站多少钱
  • php怎么做网站网站建设 信科网络
  • 如何网站专题策划做网站的调研报告
  • 网站优化建议tap自助建站
  • 做个网站怎样做的商城网站建设案例
  • 朝阳网站建设公司电话企业网站seo平台
  • 建设通网站登录不进去单页网站seo
  • 导航网站设计方案dede网站qq类源码
  • 汉字市城乡建设规划局官方网站如何破解WordPress网站
  • 关键词做网站名字网站图标用代码代替
  • 电脑网站设计制作微网站建设的第一步是什么 标题
  • 成都网站开发建设公司英文营销网站 知乎
  • 电商设计灵感网站个人网页设计教程
  • pytson做网站安全吗烟台高端品牌网站建设
  • 福州网络营销网站论文网站开发
  • 点子网站制作阿里巴巴运营技巧
  • 景区网站建设教程凡科小程序直播
  • h5个人网页设计心得合肥seo整站优化网站
  • 湖里区建设局网站家庭宽带做网站服务器吗
  • 3d模型代做网站建设公司加盟
  • 企业免费网站设计公司广州网站开发怎么做
  • 免费搭建博客网站做网站公司logo
  • 企业展示型网站程序六安网站关键词排名优化报价
  • 注册网站电子游戏送钱了38如何做网站的教程
  • 有限公司网站建设 中企动力佛山成都网站制作公司有哪些
  • 公司备案号查询网站创建个人邮箱
  • 宠物网站设计的代码建设淘宝网站需要多少钱