当前位置: 首页 > news >正文

视频网站为什么有人做/b2b网站源码

视频网站为什么有人做,b2b网站源码,株洲知名网站建设,北京网站建设公司大全分析以下代码 int dp(int i) {int& ansd[i]; //为该表项声明一个引用&#xff0c;简化对它的读写操作。 if(ans>0) return ans;ans1;for(int j0;j<n;j){if(G[i][j]){int tmpdp(j);ansans>tmp1?ans:tmp1; }}return ans; } 这是个DAG下的动态规划。是矩形嵌套的…

分析以下代码

int dp(int i)
{int& ans=d[i];    //为该表项声明一个引用,简化对它的读写操作。 if(ans>0) return ans;ans=1;for(int j=0;j<n;j++){if(G[i][j]){int tmp=dp(j);ans=ans>tmp+1?ans:tmp+1; }}return ans;
}

这是个DAG下的动态规划。是矩形嵌套的dp函数。粘这个代码的原因是为了反复体会这个ans在这个递归函数中的使用技巧。for语句块是为了选出当前行下的dp(j)的最大值,然后ans在此充当了max的作用。

 

下面这个是八皇后问题的递归代码

void solve(int i, int n)
{if(i == n){print(n);printf("\n");num++;}elsefor(int j =0;j<n ;j++){A[i][j]=1;if(IsLegal(i,j,n)){solve(i+1,n);}A[i][j]=0;}
}
for(int j =0;j<n ;j++)
{A[i][j]=1;if(IsLegal(i,j,n)){solve(i+1,n);}A[i][j]=0;
}

仔细看这个for循环,当尝试到第i行的第j列时,这时的目的是判断(i,j)这个位置是否合法,如果合法就在标识数组中填1,如果不合法就填0。这时我们很容易把代码写成这个样子

for(int j =0;j<n ;j++)
{if(IsLegal(i,j,n)){A[i][j]=1;solve(i+1,n);}
}

如果按照这种写法,分析一下:假如当前的(i,j)合法,然后我们把A[i][j]赋值为1,然后进入solve(i+1,n)的函数如果此时不能在该层找到合法的位置,退回上层,继续刚才未完成的for循环,所以A[i][j]此时等于1,而为得到更改。所以第二种方法错误。

这就是对于递归函数常犯的忘记修改标识变量的错误。

转载于:https://www.cnblogs.com/chaiwentao/p/3894667.html

http://www.jmfq.cn/news/5243383.html

相关文章:

  • 德州网站建设哪家好/网站搜索排名查询
  • 电子商务网站毕业论文/搜索引擎优化的内容包括
  • 禅城网站建设价格/seo入门培训教程
  • 子网站如何做/站长之家ppt素材
  • 免费真人做爰网站/青岛seo百科
  • ckeditor 转wordpress/seo网站自动推广
  • 博客型网站建设/seo网站的优化流程
  • 广东网站建设哪家好/廊坊网站建设优化
  • 保险做的好的网站有哪些内容/安卓优化大师最新版
  • 上海圣品科技 做网站/免费的h5制作网站模板
  • 长安手机网站建设/怎样做好销售和客户交流
  • 做系统的网站/怎么开网站
  • 虚拟主机建网站/网店推广方式有哪些
  • 公司网站建设及维护/上海优化营商环境
  • 网站结构分析怎么做/潍坊关键词优化排名
  • 长春网站排名优化报价/优化seo设置
  • 做菠菜网站代理犯法吗/湖南seo优化排名
  • 公共空间设计网站/九幺seo优化神器
  • seo平台代理/重庆seo团队
  • 做tcf法语听力题的网站/关键词网站排名软件
  • 企业网络营销策略有哪些/百度推广优化是什么意思
  • 域名申请好了 怎么做网站/优化营商环境心得体会个人
  • 网站建设规划书实训报告/官网建站多少钱
  • 试述建设一个网站的具体步骤/关键词排名seo
  • 做网站 图片更好看/小学四年级摘抄新闻
  • wordpress多主题破解版/泉州seo排名扣费
  • vip网站怎么做/百度seo分析工具
  • flashfxp 发布网站/手机优化
  • 网站更改备案信息在哪里/互联网推广是干什么的
  • wordpress 用户名/seo 工具分析