poj2531 DFS

news/2024/11/8 8:37:13/

本题题意:先给你说明有几个点,然后给你几个点的之间的距离,问将这些点分在两边,求点距离的最大值

dfs最怕的就是你的重复计算,一不小心把以前走过的路又走了一遍
例如本题卡我这么久的T,我因为是我剪的不够好,我考虑到两边重复的情况,所有A那边最少数量不能少于一半,不能其实AB边发生了重复
例如A1,2 B 3 这种情况等价于 A 3 B 1,2
但我没有写好的地方是,这题的思想是组合,也就是前面一步确定好状态后不能回头!!! 而我却将它写成了组合,导致自己写出了A 1,2 B 3 然后有会再出现 A 2,1 B 3 的情况
其他没啥好注意的了,只要不要在传参的时候,传错就行啦
上代码:
1.两个数组

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int a[25][25];
int A[25],B[25],maxn = 0,n;
void DFS(int w,int nb ,int Vs,int na)
{if( na <= n/2) return;for (int i = w; i <= n; i++)//转移 {int kk = Vs;if(A[i]!= 0 ) {for (int j = 1; j <= n; j++){if( A[j]!= 0 ) kk+=a[A[i]][A[j]];}for (int j = 1; j <= nb; j++){kk-=a[A[i]][B[j]]; }if(kk > maxn)  maxn = kk;if(kk > Vs){B[nb+1] = A[i];A[i] = 0;DFS(i+1,nb+1,kk,na-1);//这步的  i+1 !!!!!!!A[i] = B[nb+1];B[nb+1] = 0;}}}
}
int main()
{scanf("%d",&n);for (int i = 1; i <= n; i++){for (int j = 1; j <= n; j++)scanf("%d",&a[i][j]);}for (int i = 1; i <= n; i++){A[i] = i;}DFS(1,0,0,n);cout<<maxn<<endl;} 

一维数组,其实保存到底这个数在左在右01判断即可

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int a[25][25];
int A[25],maxn = 0,n;
void DFS(int w, int Vs,int na)
{//if( na <= n/2) return;for (int i = w; i <= n; i++)//转移 {A[i] = 0;		int kk = Vs;for (int j = 1; j <= n; j++){if( A[j]!= 0 ) kk+=a[i][j];else kk-=a[i][j];}if(kk > maxn)  maxn = kk;if(kk > Vs){DFS(i+1,kk,na-1);}A[i] = 1;}
}
int main()
{scanf("%d",&n);for (int i = 1; i <= n; i++){for (int j = 1; j <= n; j++)scanf("%d",&a[i][j]);}for (int i = 1; i <= n; i++)	A[i] = 1;DFS(1,0,n);cout<<maxn<<endl;} 

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

相关文章

poj2531

题目感觉是图的题。。但是做的是POJ简单搜索的专题&#xff0c;嗯&#xff0c;没有思路。。看了大神的代码才学会的&#xff0c;回溯dfs。。 等以后图论学好了&#xff0c;在回头用图论做&#xff0c;我在网上看到有大神用最大割来做&#xff0c;加星星了&#xff0c;等回头在…

hdu 2531

起初没有看懂题目&#xff0c;无处下手&#xff0c;就去翻翻别人的代码&#xff0c;才知道题目的意思&#xff0c;汗…… 简单的一般的广搜的变形&#xff0c;这个解释的比较详细http://blog.csdn.net/swm8023/article/details/6765219 虽然知道怎么做了&#xff0c;但是还是犯…

MSB2531产品简介

MSB2531主要用来做PND/车载导航板/车载核心板方案&#xff0c;主芯片规格为ARM Cortex-A7 32-bit RISC CPU,800MHz,内置三路LDO, 两路DC/DC,充电管理. GPS BaseBand, FM Transmitter, Class-D Amplifier, 立体声耳机驱动;DRAM memory支持16-bit LPDDR和8-bit DDR3, NAND interf…

cc2531USB dongle 实现MT模式 数据转发 串口

由于项目需求要实现CC2531USB dongle的MT模式来实现dongle的数据转发功能&#xff0c;框架简图1所示。PC端实现了MT模式&#xff0c;也可以用Ztool。总结起来就是dongle在MT模式下接收串口数据&#xff08;数据满足MT格式&#xff09;&#xff0c;然后将数据解析为具体方法&…

POJ 2531 (简单dfs)

dfs一直不知道怎么写&#xff0c;可还是要练习。 这道题题意&#xff1a;n台电脑&#xff0c;分成两个集合&#xff0c;不同的集合交流需要时间&#xff0c;求最大的时间。 思想&#xff1a;遍历全部可能&#xff0c;最开始可以把所有电脑看作一个集合&#xff0c;然后一个一…

丹麦网站推出提供俊男靓女精子或卵子服务

丹麦约会网站“美丽人群”(BeautifulPeople.com)自2002年成立开始&#xff0c;已在全球190多个国家和地区拥有超过60万名注册会员&#xff0c;日点击量逾400万&#xff0c;促成会员间1000多对成婚&#xff0c;造就约600名漂亮宝宝。 最近&#xff0c;“美丽人群”网站在搭建约会…

2022年全球与中国油性凝胶面膜市场现状研究

2021年全球油性凝胶面膜市场销售额达到了 亿美元&#xff0c;预计2028年将达到 亿美元&#xff0c;年复合增长率&#xff08;CAGR&#xff09;为 %&#xff08;2022-2028&#xff09;。地区层面来看&#xff0c;中国市场在过去几年变化较快&#xff0c;2021年市场规模为 百万美…

欧洲游记之——在丹麦上班的日子(一)

去丹麦&#xff0c;已经不是第一次了&#xff0c;这次老板放出话来&#xff0c;不能只闲呆瞎逛瞧新鲜&#xff0c;得帮公司干点活啦。 一下飞机&#xff0c;就被告知&#xff0c;明天得去Herning参展。旅途累不累啊&#xff1f;习惯性地客气一句&#xff0c;不累。不累就去仓库…