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

怎么自己做网站推广入门级网页设计培训学员

怎么自己做网站推广,入门级网页设计培训学员,几何背景生成网站,大连旅顺problem luogu-P3698 solution1-贪心 显然我们想尽可能地少走回头路#xff0c;即一直往下走。 所以我们可以都会有个初步地猜测是走最长链。 但很快就会想到万一这是一条单链#xff0c;链中的点都是二度点#xff0c;走得越深回头浪费的步数也越多。 然后就可能直接…problem luogu-P3698 solution1-贪心 显然我们想尽可能地少走回头路即一直往下走。 所以我们可以都会有个初步地猜测是走最长链。 但很快就会想到万一这是一条单链链中的点都是二度点走得越深回头浪费的步数也越多。 然后就可能直接把这种想法抛却了。 以上都是脑中不到两分钟的粗略思路很容易误判。 实际上仔细想想建议画几个树就会发现最优解总可以调整成走长链。 当开始走长链的时候就一定不会走回头路了。 考虑一条链当走到底的时候发现有多余的步数然后又发现链中某点有多个儿子我们现在才返回去走一条新链的话这个浪费的步数就太多了。 所以我们应当是预知有多余的步数然后再走到那个点的时候就先走新链然后再倒回来继续走这条链。 对于新链而言一样按照上面的预知流程执行。 可以感觉地到这是个递归的过程。 但这并不是代码实现这只是来佐证贪心猜测的正确性的。 这也是网上题解说的 走完最长链上的点后每两步能到达一个新的点 这不是代表着一定是先走完最长链再回头还是最优解可以将步数和点数按照这种方式对应上。 时间复杂度 O(n)O(n)O(n)所以说出题人完全可以将 nnn 开大点卡掉 dpdpdp 的做法。 为你的良心点赞 code1 #include bits/stdc.h using namespace std; #define maxn 105 vector int G[maxn]; int n, m, ans;void dfs( int u, int fa, int dep ) {ans max( ans, dep );for( int v : G[u] ) if( v fa ) continue;else dfs( v, u, dep 1 ); }int main() {scanf( %d %d, n, m );for( int i 1, u, v;i n;i ) {scanf( %d %d, u, v );G[u].push_back( v );G[v].push_back( u );}dfs( 0, 0, 1 );if( m ans ) printf( %d\n, m 1 );else printf( %d\n, min( n, ans (m - ans 1) / 2 ) );return 0; }solution2-树形dp 这种样子长得就像个树形 dpdpdp。 设 f(i,j):f(i,j):f(i,j): 在以 iii 为根的子树内从 iii 开始向下在子树内走了 jjj 步最多经过的节点数。 然后可能就直接从上往下用 fafafa 的 fff 更新 uuu 的 fff 此时有新加点 然后搜索 uuu 子树完了回来又从下往上更新此时不会有新加点。 实际上这种做法的正确性必须保证对于一棵树 dfs\text{dfs}dfs 先搜的就是最长链相当于是跑的贪心。 实在不理解的可以自己写个数据生成器不用多大 888 以内都能给你排出错误来。 其实问题与贪心思考的一样就是是否回到这个点来。我们将这个变成第三维。 设 f(i,j,0/1):0f(i,j,0/1):0f(i,j,0/1):0 不回到 uuu 点111 回到 uuu 点。 则对于 uuu 枚举儿子 vvv以及自己一共在子树内走的步数和 vvv 在子树内走的步数 {f(u,i,0)max⁡{f(u,i−j,1)f(v,j−1,0),f(u,i−j,0)f(v,j−2,1)}f(u,i,1)max⁡{f(u,i−j,1)f(v,j−2,1)}\begin{cases} f(u,i,0)\max\Big\{f(u,i-j,1) f(v,j-1,0),f(u,i-j,0) f(v,j-2,1)\Big\}\\ f(u,i,1)\max\Big\{f(u,i-j,1) f(v,j-2,1)\Big\} \end{cases} ⎩⎨⎧​f(u,i,0)max{f(u,i−j,1)f(v,j−1,0),f(u,i−j,0)f(v,j−2,1)}f(u,i,1)max{f(u,i−j,1)f(v,j−2,1)}​ 回来的话 u−vu-vu−v 这条边就要走两次所以是 −2-2−2否则 −1-1−1。 时间复杂度 O(n3)O(n^3)O(n3)。 哪哪儿都比不上贪心好吧 code2 #include bits/stdc.h using namespace std; #define maxn 105 vector int G[maxn]; int n, m; int f[maxn][maxn][2];void dfs( int u, int fa ) {f[u][0][1] f[u][0][0] 1;for( int v : G[u] )if( v ^ fa ) {dfs( v, u );for( int i m;i;i -- )for( int j 1;j i;j ) {if( j 0 ) f[u][i][0] max( f[u][i][0], f[u][i - j][1] f[v][j - 1][0] );if( j 1 ) f[u][i][0] max( f[u][i][0], f[u][i - j][0] f[v][j - 2][1] );if( j 1 ) f[u][i][1] max( f[u][i][1], f[u][i - j][1] f[v][j - 2][1] );}} }int main() {scanf( %d %d, n, m );for( int i 1, u, v;i n;i ) {scanf( %d %d, u, v );G[u].push_back( v );G[v].push_back( u );}dfs( 0, 0 );int ans 0;for( int i 0;i m;i ) ans max( ans, max( f[0][i][1], f[0][i][0] ) );printf( %d\n, ans );return 0; }
http://www.zqtcl.cn/news/905551/

相关文章:

  • 建设一个连接的网站服装企业网站源码
  • 什么网站源码做分类信息网站好域名备案企业网站内容
  • wordpress 文章显示数量淘宝seo优化怎么做
  • 响应式网站模块商务网站创建流程是什么
  • 关于服饰搭配做的比较好的网站网站后台管理默认密码
  • 用自己电脑配置服务器做网站响应式框架
  • 任经理++徐州网站建设湖南正规关键词优化
  • 哪些软件可以做网站设计农村网站建设茂名
  • 平顶山网站建设费用腾讯云轻量应用服务器
  • 外贸优秀网站廊坊seo建站
  • 站长工具seo综合查询5g网站建设整改落实情况
  • 网站建设方案 流程wordpress客户案例
  • 网站被收录的过程如何创造属于自己的软件
  • 做神马网站优化快速排国外乡村建设网站
  • 东莞网站优化服务公司天河做网站开发
  • ui在线设计网站滁州 来安县建设局网站
  • 做印尼购物网站如何发货wordpress怎么换中文
  • 深圳方维网站建设公司企业网站推广方式和策略
  • 沙洋县住房和城乡建设局网站单页网站下载
  • 江宁区住房建设局网站建设工程扣分查询网站
  • wordpress火车采集优化算法分类
  • 厦门做网站公司有哪些有什么好的加盟店项目
  • wap网站开发技术怎么做消费信贷网站
  • 公司网站开发外包公司深圳网站建设sz886
  • 中英文网站建设需要懂英语吗电气网站设计
  • 双语网站用什么程序做新网站如何被网站收录
  • 怎么做视频平台网站想开个小说网站怎么做
  • 网站安全监测预警平台建设成效阐述网络营销策略的内容
  • 网站上的qq如何做悬浮沧州做网站的公司
  • 电子商务网站系统规划报告移动商城 网站建设方法方式