0x22 迭代加深

news/2024/12/2 20:41:57/

poj2248 真是个新套路。还有套路剪枝...大到小和判重

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<bitset>
using namespace std;int n,D,x[110];bool bk,v[110][110];
void dfs(int k)
{if(bk==true)return ;if(k==D+1)return ;if(x[k-1]>n)return ;if(x[k-1]==n){bk=true;for(int i=1;i<k-1;i++)printf("%d ",x[i]);printf("%d\n",x[k-1]);return ;}memset(v[k],false,sizeof(v[k]));for(int i=k-1;i>=1;i--){if(x[i]+x[i]<x[k-1])break;for(int j=i;j>=1;j--){if(x[i]+x[j]<x[k-1])break;if(v[k][x[i]+x[j]]==false){v[k][x[i]+x[j]]=true;x[k]=x[i]+x[j];dfs(k+1);x[k]=0;}}}
}
int main()
{while(scanf("%d",&n)!=EOF){if(n==0)break;D=1;bk=false;x[1]=1;while(1){dfs(2);if(bk==true)break;D++;}}return 0;
}
poj2248

送礼物 折半搜索(orz cgh队长之前教我),书上叫双向搜索。又双叒叕有套路剪枝...大到小和很明显的可行性。结果dfs时居然还要先尝试选再尝试不选。。无语

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL;int n;int W,c[110];
bool cmp(int x,int y){return x>y;}int len;int a[10001000];
inline void dfs(int k,int d)
{if(k==n/2+1){a[++len]=d;return ;}if(((LL)d)+c[k]<=W)dfs(k+1,d+c[k]);dfs(k+1,d);
}
int mmax;
int erfen(int k)
{int l=1,r=len;int ans;while(l<=r){int mid=(l+r)/2;if(a[mid]<=k){ans=a[mid];l=mid+1;}else r=mid-1;}return ans;
}
inline void dfs2(int k,int d)
{if(k==n+1){mmax=max(mmax,d+erfen(W-d));return ;}if(((LL)d)+c[k]<=W)dfs2(k+1,d+c[k]);dfs2(k+1,d);
}
int main()
{scanf("%d%d",&W,&n);for(int i=1;i<=n;i++)scanf("%d",&c[i]);sort(c+1,c+n+1,cmp);len=0;dfs(1,0);sort(a+1,a+len+1);len=unique(a+1,a+len+1)-a-1;mmax=a[len];dfs2(n/2+1,0);printf("%d\n",mmax);return 0;
}#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL;int n;int W,c[110];
bool cmp(int x,int y){return x>y;}int len;int a[10001000];
inline void dfs(int k,int d)
{if(k==n/2+1){a[++len]=d;return ;}if(((LL)d)+c[k]<=W)dfs(k+1,d+c[k]);dfs(k+1,d);
}
int mmax;
int erfen(int k)
{int l=1,r=len;int ans;while(l<=r){int mid=(l+r)/2;if(a[mid]<=k){ans=a[mid];l=mid+1;}else r=mid-1;}return ans;
}
inline void dfs2(int k,int d)
{if(k==n+1){mmax=max(mmax,d+erfen(W-d));return ;}if(((LL)d)+c[k]<=W)dfs2(k+1,d+c[k]);dfs2(k+1,d);
}
int main()
{scanf("%d%d",&W,&n);for(int i=1;i<=n;i++)scanf("%d",&c[i]);sort(c+1,c+n+1,cmp);len=0;dfs(1,0);sort(a+1,a+len+1);len=unique(a+1,a+len+1)-a-1;mmax=a[len];dfs2(n/2+1,0);printf("%d\n",mmax);return 0;
}
送礼物

 

转载于:https://www.cnblogs.com/AKCqhzdy/p/9270121.html


http://www.ppmy.cn/news/614419.html

相关文章

YOLO、SSD、FPN、Mask-RCNN检测模型对比

YOLO、SSD、FPN、Mask-RCNN检测模型对比 一&#xff0e;YOLO&#xff08;you only look once&#xff09; YOLO 属于回归系列的目标检测方法&#xff0c;与滑窗和后续区域划分的检测方法不同&#xff0c;他把检测任务当做一个regression问题来处理&#xff0c;使用一个神经网…

fcm算法的MATLAB实现,FCM算法的matlab程序(初步)

FCM算法的matlab程序1.采用iris数据库iris_data.txt5.1 3.5 1.4 0.24.9 3 1.4 0.24.7 3.2 1.3 0.24.6 3.1 1.5 0.25 3.6 1.4 0.25.4 3.9 1.7 0.44.6 3.4 1.4 0.35 3.4 1.5 0.24.4 2.9 1.4 0.24.9 3.1 1.5 0.15.4 3.7 1.5 0.24.8 3.4 1.6 0.24.8 3 1.4 0.14.3 3 1.1 0.15.8 4 1.…

金蝶K/3 BOS产品培训教案

K/3 BOS产品培训教案 1 K/3 BOS IDE练习案例... 2 1.1新建基础资料... 2 1.1.1新增基础资料交货地点... 2 1.2新建业务单据... 2 1.2.1新建寄存入库单&#xff0c;寄存入库单字段信息描述... 2 1.2.2练习值更新事件、加载更新事件、保存规则... 3 1.2.3练习操作事件定义... 3 1…

第四代自动泊车从APA到AVP技术

第四代自动泊车从APA到AVP技术 前言 自动泊车是指汽车自动泊车入位不需要人工控制&#xff0c;系统能够自动帮你将车辆停入车位&#xff0c;在倒车入库中可谓是驾驶者的一项利器。当我们找到一个理想的停车地点&#xff0c;只需轻轻启动按钮、坐定、放松&#xff0c;其他一切…

Idea中配置Tomcat

配置步骤 在idea项目左上角选择‘Edit Configurations’ 2. 配置server 3. 配置项目 4. 配置成功后就可以在项目下面看到tomcat了 运行Tomcat遇到权限问题&#xff1a;Cannot run program "/XXX/bin/catalina.sh" (in directory "/XXX/bin"): error13, Per…

阿里云服务器ping不通如何解决?

阿里云服务器ping不通&#xff1f;什么原因&#xff1f;在安全组中允许【全部 ICMP(IPv4)】&#xff0c;当然阿里云服务器禁ping也是通过配置安全组的ICMP规则来实现的&#xff0c;阿里云服务器网来详细说下安全组开通ping功能教程&#xff1a; 目录 阿里云服务器ping不通的解…

3D车道线检测:Gen-LaneNet

3D车道线检测&#xff1a;Gen-LaneNet Gen-LaneNet: A Generalized and Scalable Approach for 3D Lane Detection 论文链接&#xff1a;https://arxiv.org/abs/2003.10656 摘要 提出了一种广义的、可扩展的方法&#xff0c;称为Gen-LaneNet&#xff0c;用于从单个图像中检…

label在PHP中的作用,深入理解HTML中label的作用和使用方法(附代码)

在工作中经常会用到表单布局&#xff0c;在表单布局中会遇到label标签&#xff0c;有很多新手在学习中可能会忽视了label标签&#xff0c;也有些人对label标签一知半解&#xff0c;那接下来就和大家聊聊label标签是什么意思&#xff1f;label标签什么用处&#xff1f;在表单布局…