找回密码
 立即注册!
搜索

小喇叭+ 发布

12-31 23:03
系统消息:尊敬的用户,动象论坛的邮件系统已经完美修复,您现在可以顺利使用自助注册和找回密码功能了。万分感谢你对动象论坛的喜爱与支持~
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
查看: 1686|回复: 0

深度优先搜索

[复制链接]

11

主题

57

回帖

585

积分

清正廉明~版主

风纪委员

积分
585

最佳新人活跃会员

发表于 2020-7-18 11:42:56 | 显示全部楼层 |阅读模式 IP:浙江嘉兴
         深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。在一个HTML文件中,当一个超链被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超链结果之前必须先完整地搜索单独的一条链。深度优先搜索沿着HTML文件上的超链走到不能再深入为止,然后返回到某一个HTML文件,再继续选择该HTML文件中的其他超链。当不再有其他超链可选择时,说明搜索已经结束。
( i* _  ]. x9 o, ?* ]1 Y用c++更好地实现
, ~; p8 G  b6 T8 p( Q. ~
  1. //C++深度优先搜索(递归树模拟)
    $ Z% @+ _7 M  Y- |5 v
  2. #define _CRT_SECURE_NO_WARNINGS
    . \) D5 q4 m& n. j7 m# l5 J
  3. #include <iostream>9 ^3 I+ `" z6 U% k) Y* A0 e
  4. #define MAX_N 1000
    * c, y- z# e& Q3 ]% Z* U
  5. using namespace std;
    3 g& E6 Z7 `; |9 k
  6.     int a[MAX_N];
    6 ~' ^' u. I  Q- Y, q7 Z
  7.     int n,k;
    5 P  R. V. C( L2 y4 ]$ m
  8. $ L0 t  X) ]* V1 n5 z" K0 Z
  9. //已经从前i项得到了和sum,然后对于i项之后的进行分支' |8 U  \3 O" G; }* g" j9 U, t
  10. bool dfs(int i,int sum); |0 m0 Q2 L9 E4 s0 v: s
  11. {
    3 S$ o8 x) T. W8 {. l
  12.     //如果前n项都计算过了 ,则返回sum是否与k相等* B5 e7 @& _7 T% b2 I0 O
  13.     if(i==n): G  o8 D+ A5 |6 q& ?* k3 q& Q
  14.     {: y, U( \) |: n! k% w" q1 R7 n
  15.         return sum==k;
    % I7 h  n6 Q+ j5 \
  16.      }
    9 D8 ~) ~0 [2 l. |3 L
  17. 4 F; _# H- m( z2 Q! Z# K. t5 ?
  18.     //不加上a[i]的情况的分支
    7 K7 j+ {. W& w# c+ u$ s
  19.     if(dfs(i+1,sum))- w- z- {! N' E: x6 s0 S
  20.     {3 u6 I$ j8 G! |" R4 p) s! G0 H
  21.         return true;
    % W# r9 j9 u( ]. M7 V
  22.     }
    7 }6 l. }2 w0 ^6 Z5 n
  23.     //加上a[i]的情况的分支
      @. V* J3 M% B( v: O0 k
  24.     //if(dfs(i+1,sum+a[i+1]))
    5 }4 R. V, M& O
  25.     if(dfs(i+1,sum+a[i]))' j% J, b2 e; S; B! P' y7 N
  26.     {
    7 q2 {0 u& s$ e+ f$ I4 K! d
  27.         return true;
    # ^1 G4 ]) Z/ T# Z' [( v  p% O
  28.     }5 E. j3 X# u0 H3 F
  29. 2 \: f  z; a% t; P7 g# r8 |
  30.     //无论是否加上a[i]都不能凑成k就返回false, }. B0 w  R3 N) ?+ {/ I: F
  31.     return false;; W2 k4 T1 n  o
  32. }
    + N0 V. v5 n! E: e' D. p
  33. void solve()
    3 l0 W; x5 T4 ~: f; ?5 i! A
  34. {5 X4 G! X1 g4 g0 q
  35.      //if(dfs(1,0))
    3 f( U% b8 n9 b% w6 U/ W
  36.      if(dfs(0,0))
    1 u" X) h- S5 C+ Z- ?" c; a4 Y
  37.     {* S# m" o( ^, q& Q1 \& C- R. R+ b0 b/ {
  38.          cout<<"Yes"<<endl;1 ^; M! [( [3 T* B
  39.     }( D; i4 }: k: c* Y. B
  40.      else
    & m5 y  C$ w2 \
  41.      {
    # {3 |2 K8 K* e7 ^* O( L
  42.          cout<<"No"<<endl;1 q8 E6 i1 C' ~" @
  43.      }$ A7 J* r$ B+ ]) N, d+ y' H
  44. }
    7 v+ s6 t4 S1 F
  45. int main(void)
    8 O) N1 ?: ^, U4 a/ o
  46. {
    5 Y- q6 [( X: ?- ?5 z
  47.     cin>>n;: o% V0 F  d' A' n. K5 z0 k
  48.     int i,temp;* _. \8 l0 `9 w# I6 m1 r
  49.     //for(i=1;i<=n;i++)
    % x6 I0 U0 u- Y
  50.     for(i=0;i<n;i++)- T+ W# W# L; c& y
  51.     {
    5 c  D( g# {7 T- l7 Y
  52.         cin>>temp;, q% H! ?7 }) j% Q2 a: P
  53.         a[i]=temp;$ C0 o. |; v: H8 t
  54.     }" y6 Y' x' W* P. ]; m( c4 v3 Y
  55.     cin>>k;: ]8 [3 W5 ?3 s

  56. # B) ~9 c, D- @& S% c. |6 p) _# M
  57.     solve();
    ) W' [$ W2 g5 l5 [; U; L
  58. # k, ]8 k% B9 x$ y
  59.     return 0;/ p$ X) p% R: M: l$ W6 k# ]
  60. }
复制代码

) ~2 T, A7 \  \$ P6 D( G' q
' [3 H4 l8 {3 t
$ l7 Y1 w6 Q8 |4 P' {$ }7 g5 J- g5 _$ h' D/ }" J& P
7 T) d5 _9 e; |4 ]# N3 Z

评分

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

查看全部评分

本帖被以下淘专辑推荐:


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

本版积分规则

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

GMT+8, 2025-1-31 01:51 , Processed in 0.176511 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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