0x22 迭代加深

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.mzph.cn/news/389226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云原生全球最大峰会之一KubeCon首登中国 Kubernetes将如何再演进?

雷锋网消息&#xff0c;11月14日&#xff0c;由CNCF发起的云原生领域全球最大的峰会之一KubeConCloudNativeCon首次登陆中国&#xff0c;中国已经成为云原生领域一股强大力量&#xff0c;并且还在不断成长。 毫无疑问&#xff0c;Kubernetes已经成为容器编排事实标准&#xff…

分布分析和分组分析_如何通过群组分析对用户进行分组并获得可行的见解

分布分析和分组分析数据分析 (DATA ANALYSIS) Being a regular at a restaurant is great.乙 eing定期在餐厅是伟大的。 When I started university, my dad told me I should find a restaurant I really liked and eat there every month with some friends. Becoming a reg…

python 工具箱_Python交易工具箱:通过指标子图增强图表

python 工具箱交易工具箱 (trading-toolbox) After a several months-long hiatus, I can finally resume posting to the Trading Toolbox Series. We started this series by learning how to plot indicators (specifically: moving averages) on the top of a price chart.…

PDA端的数据库一般采用的是sqlce数据库

PDA端的数据库一般采用的是sqlce数据库,这样与PC端的sql2000中的数据同步就变成了一个问题,如在PDA端处理,PDA端的内存,CPU等都是一个制约因素,其次他们的一个连接稳定及其间的数据传输也是一个难点.本例中通过在PC端的转化后再复制到PDA上面,这样,上面所有的问题都得到了一个有…

bzoj 1016 [JSOI2008]最小生成树计数——matrix tree(相同权值的边为阶段缩点)(码力)...

题目&#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id1016 就是缩点&#xff0c;每次相同权值的边构成的联通块求一下matrix tree。注意gauss里的编号应该是从1到...的连续的。 学习了一个TJ。用了vector。自己曾写过一个只能过样例的。都放上来吧。 路径压缩的…

商米

2019独角兽企业重金招聘Python工程师标准>>> 今天看了一下商米的官网&#xff0c;发现他家的东西还真的是不错。有钱了&#xff0c;想去体验一下。 如果我妹妹还有开便利店的话&#xff0c;我会推荐他用这个。小巧便捷&#xff0c;非常方便。 转载于:https://my.osc…

python交互式和文件式_使用Python创建和自动化交互式仪表盘

python交互式和文件式In this tutorial, I will be creating an automated, interactive dashboard of Texas COVID-19 case count by county using python with the help of selenium, pandas, dash, and plotly. I am assuming the reader has some familiarity with python,…

不可不说的Java“锁”事

2019独角兽企业重金招聘Python工程师标准>>> 前言 Java提供了种类丰富的锁&#xff0c;每种锁因其特性的不同&#xff0c;在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码&#xff08;本文中的源码来自JDK 8&#xff09;、使用场景进行举例&#xff0c…

数据可视化 信息可视化_可视化数据以帮助清理数据

数据可视化 信息可视化The role of a data scientists involves retrieving hidden relationships between massive amounts of structured or unstructured data in the aim to reach or adjust certain business criteria. In recent times this role’s importance has been…

seaborn添加数据标签_常见Seaborn图的数据标签快速指南

seaborn添加数据标签In the course of my data exploration adventures, I find myself looking at such plots (below), which is great for observing trend but it makes it difficult to make out where and what each data point is.在进行数据探索的过程中&#xff0c;我…

使用python pandas dataframe学习数据分析

⚠️ Note — This post is a part of Learning data analysis with python series. If you haven’t read the first post, some of the content won’t make sense. Check it out here.Note️ 注意 -这篇文章是使用python系列学习数据分析的一部分。 如果您还没有阅读第一篇文…

无向图g的邻接矩阵一定是_矩阵是图

无向图g的邻接矩阵一定是To study structure,tear away all flesh soonly the bone shows.要研究结构&#xff0c;请尽快撕掉骨头上所有的肉。 Linear algebra. Graph theory. If you are a data scientist, you have encountered both of these fields in your study or work …

前端绘制绘制图表_绘制我的文学风景

前端绘制绘制图表Back when I was a kid, I used to read A LOT of books. Then, over the last couple of years, movies and TV series somehow stole the thunder, and with it, my attention. I did read a few odd books here and there, but not with the same ferocity …

如何描绘一个vue的项目_描绘了一个被忽视的幽默来源

如何描绘一个vue的项目Source)来源 ) Data visualization is a great way to celebrate our favorite pieces of art as well as reveal connections and ideas that were previously invisible. More importantly, it’s a fun way to connect things we love — visualizing …

数据存储加密和传输加密_将时间存储网络应用于加密预测

数据存储加密和传输加密I’m not going to string you along until the end, dear reader, and say “Didn’t achieve anything groundbreaking but thanks for reading ;)”.亲爱的读者&#xff0c;我不会一直待到最后&#xff0c;然后说&#xff1a; “没有取得任何开创性的…

熊猫分发_熊猫新手:第一部分

熊猫分发For those just starting out in data science, the Python programming language is a pre-requisite to learning data science so if you aren’t familiar with Python go make yourself familiar and then come back here to start on Pandas.对于刚接触数据科学的…

多线程 进度条 C# .net

前言  在我们应用程序开发过程中&#xff0c;经常会遇到一些问题&#xff0c;需要使用多线程技术来加以解决。本文就是通过几个示例程序给大家讲解一下多线程相关的一些主要问题。 执行长任务操作  许多种类的应用程序都需要长时间操作&#xff0c;比如&#xff1a;执行一…

《Linux内核原理与分析》第六周作业

课本&#xff1a;第五章 系统调用的三层机制&#xff08;下&#xff09; 中断向量0x80和system_call中断服务程序入口的关系 0x80对应着system_call中断服务程序入口&#xff0c;在start_kernel函数中调用了trap_init函数&#xff0c;trap_init函数中调用了set_system_trap_gat…

Codeforces Round 493

心情不好&#xff0c;被遣散回学校 &#xff0c;心态不好 &#xff0c;为什么会累&#xff0c;一直微笑就好了 #include<bits/stdc.h> using namespace std; int main() {freopen("in","r",stdin);\freopen("out","w",stdout);i…

android动画笔记二

从android3.0&#xff0c;系统提供了一个新的动画&#xff0d;property animation, 为什么系统会提供这样一个全新的动画包呢&#xff0c;先来看看之前的补间动画都有什么缺陷吧1、传统的补间动画都是固定的编码&#xff0c;功能是固定的&#xff0c;扩展难度大。比如传统动画只…