找回密码
 立即注册!
搜索

小喇叭+ 发布

系统消息:尊敬的用户,动象论坛的邮件系统已经完美修复,您现在可以顺利使用自助注册和找回密码功能了。万分感谢你对动象论坛的喜爱与支持~
06-10 15:28
系统消息:很抱歉的通知您,当前论坛的邮件系统暂时出现故障,因此自助注册和找回密码的功能将无法使用。如有任何需要,您可以直接添加客服QQ:230273459进行人工操作。对此给您带来的不便,我们深感歉意。
06-10 09:11
admin动象论坛祝大家端午快乐~悠悠粽草,人间芳华,年年岁岁皆如愿,岁岁年年长安康。
06-10 09:09
系统消息:动象论坛祝大家高考加油~
06-09 15:13
系统消息:各位坛友,由于“两会”封网原因,动象论坛服务中止了约一个星期,对于由此给您造成的麻烦我们感到万分抱歉。
03-18 23:04
admin动象论坛在这里祝大家2024龙年新年快乐~
02-09 14:58
系统消息:论坛端口问题已经解决~您可以直接访问论坛域名mcmc.ltd(www.mcmc.ltd)啦~(Tips:如访问时提示“连接被重置”报错,请清空您的DNS缓存与浏览器缓存。)
02-05 19:14
系统消息:论坛预计今天晚间将端口问题修复完成,请留意论坛动态,感谢您对动象论坛的支持~
02-05 14:06
系统消息:动象论坛目前正在紧急迁移服务器,目前请您先访问https://mcmc.ltd:150。论坛正在全力找CDN以修复端口问题,由此给您造成影响亿常抱歉。。
02-05 11:23
系统消息:动象论坛祝大家2024年新年快乐吖~祝大家前路浩浩荡荡,万事皆可期待~
12-31 22:41
系统消息:动象论坛拟于7月20日至7月21日进行服务器迁移和域名更换,届时论坛服务将暂时不可用。对此给您带来的麻烦,我们感到十分抱歉。
07-18 19:51
Mozillahello world
07-04 17:39
系统消息:高考倒计时2天!动象论坛祝大家2023高考完胜!加油!!!!!!
06-04 23:44
神秘人:
03-21 07:20
系统消息:向各位论坛坛友公开一下,我们现在吸收了@luoying2334 为论坛管理团队成员,管理讨论区、软件分享区和得闲饮茶区。如您有任何质疑,请您在【意见与建议】版块发帖,感谢您的支持~
03-20 23:23
admin论坛没啥人气啊emmm,欢迎大家来推荐退荐~
03-12 22:34
02-05 11:11
luoying2334给我学狗叫啊,三回啊三回
02-05 11:11
Civilmafia追尾黑色高级车
02-04 14:27
Civilmafia仙家军
02-03 19:08
查看: 1655|回复: 0

深度优先搜索

[复制链接]

11

主题

57

回帖

585

积分

清正廉明~版主

风纪委员

积分
585

最佳新人活跃会员

发表于 2020-7-18 11:42:56 | 显示全部楼层 |阅读模式 IP:浙江嘉兴
         深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。在一个HTML文件中,当一个超链被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超链结果之前必须先完整地搜索单独的一条链。深度优先搜索沿着HTML文件上的超链走到不能再深入为止,然后返回到某一个HTML文件,再继续选择该HTML文件中的其他超链。当不再有其他超链可选择时,说明搜索已经结束。
用c++更好地实现
  1. //C++深度优先搜索(递归树模拟)
  2. #define _CRT_SECURE_NO_WARNINGS
  3. #include <iostream>
  4. #define MAX_N 1000
  5. using namespace std;
  6.     int a[MAX_N];
  7.     int n,k;

  8. //已经从前i项得到了和sum,然后对于i项之后的进行分支
  9. bool dfs(int i,int sum)
  10. {
  11.     //如果前n项都计算过了 ,则返回sum是否与k相等
  12.     if(i==n)
  13.     {
  14.         return sum==k;
  15.      }

  16.     //不加上a[i]的情况的分支
  17.     if(dfs(i+1,sum))
  18.     {
  19.         return true;
  20.     }
  21.     //加上a[i]的情况的分支
  22.     //if(dfs(i+1,sum+a[i+1]))
  23.     if(dfs(i+1,sum+a[i]))
  24.     {
  25.         return true;
  26.     }

  27.     //无论是否加上a[i]都不能凑成k就返回false
  28.     return false;
  29. }
  30. void solve()
  31. {
  32.      //if(dfs(1,0))
  33.      if(dfs(0,0))
  34.     {
  35.          cout<<"Yes"<<endl;
  36.     }
  37.      else
  38.      {
  39.          cout<<"No"<<endl;
  40.      }
  41. }
  42. int main(void)
  43. {
  44.     cin>>n;
  45.     int i,temp;
  46.     //for(i=1;i<=n;i++)
  47.     for(i=0;i<n;i++)
  48.     {
  49.         cin>>temp;
  50.         a[i]=temp;
  51.     }
  52.     cin>>k;

  53.     solve();

  54.     return 0;
  55. }
复制代码





评分

参与人数 1比特币 +200 收起 理由
admin + 200 很给力!

查看全部评分

本帖被以下淘专辑推荐:


tel:181 5707 6602
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册!

本版积分规则

QQ|手机版|小黑屋|网站地图|动象论坛

GMT+8, 2024-11-21 14:21 , Processed in 0.231399 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表