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

网站建设备案优化设企业网络的设计与实现

网站建设备案优化设,企业网络的设计与实现,网站建设公司四川,网站设置的参数涉及知识点 深度优化(DFS) 记忆化 题目 节点 0 处现有一棵由 n 个节点组成的无向树#xff0c;节点编号从 0 到 n - 1 。给你一个长度为 n - 1 的二维 整数 数组 edges #xff0c;其中 edges[i] [ai, bi] 表示在树上的节点 ai 和 bi 之间存在一条边。另给你一个下标从 0…涉及知识点 深度优化(DFS) 记忆化 题目 节点 0 处现有一棵由 n 个节点组成的无向树节点编号从 0 到 n - 1 。给你一个长度为 n - 1 的二维 整数 数组 edges 其中 edges[i] [ai, bi] 表示在树上的节点 ai 和 bi 之间存在一条边。另给你一个下标从 0 开始、长度为 n 的数组 coins 和一个整数 k 其中 coins[i] 表示节点 i 处的金币数量。 从根节点开始你必须收集所有金币。要想收集节点上的金币必须先收集该节点的祖先节点上的金币。 节点 i 上的金币可以用下述方法之一进行收集 收集所有金币得到共计 coins[i] - k 点积分。如果 coins[i] - k 是负数你将会失去 abs(coins[i] - k) 点积分。 收集所有金币得到共计 floor(coins[i] / 2) 点积分。如果采用这种方法节点 i 子树中所有节点 j 的金币数 coins[j] 将会减少至 floor(coins[j] / 2) 。 返回收集 所有 树节点的金币之后可以获得的最大积分。 参数范围 n coins.length 2 n 105 0 coins[i] 104 edges.length n - 1 0 edges[i][0], edges[i][1] n 0 k 104 分析 时间复杂度 O(节点数量) DFS调用的次数节点数量*2两种方式)*21(分割方式当n无穷大时2和21忽略。 核心原理 当有祖先节点现在方式二时本节点金币会减半。由于最多有10000个金币所以减半15次后就是0所以减半15次以上和减半15次结果一样。比赛时时间紧急所以弄了20次避免考虑边界情况。 变量解释 m_vRet[m_iN];//m_vRet[0] 未减半各节点及子孙节点的分数 m_vRet[i] 减半i次后的最大分数 代码 核心代码 class CNeiBo2 { public: CNeiBo2(int n, bool bDirect, int iBase 0):m_iN(n),m_bDirect(bDirect),m_iBase(iBase) { m_vNeiB.resize(n); } CNeiBo2(int n, vectorvector edges, bool bDirect,int iBase0) :m_iN(n), m_bDirect(bDirect), m_iBase(iBase) { m_vNeiB.resize(n); for (const auto v : edges) { m_vNeiB[v[0]- iBase].emplace_back(v[1]- iBase); if (!bDirect) { m_vNeiB[v[1]- iBase].emplace_back(v[0]- iBase); } } } inline void Add(int iNode1, int iNode2) { iNode1 - m_iBase; iNode2 - m_iBase; m_vNeiB[iNode1].emplace_back(iNode2); if (!m_bDirect) { m_vNeiB[iNode2].emplace_back(iNode1); } } const int m_iN; const bool m_bDirect; const int m_iBase; vectorvector m_vNeiB; }; class Solution { public: int maximumPoints(vectorvector edges, vector coins, int k) { m_iK k; for (int i 0; i m_iN; i) { m_vRet[i].assign(coins.size(),-1); } CNeiBo2 neiBo(coins.size(),edges, false); dfs(0, -1, 0, neiBo, coins); return m_vRet[0][0]; } int dfs(int cur, const int parent, int split,const CNeiBo2 vNeiBo,const vector coins) { if (split 20) { return 0; } int iRet m_vRet[split][cur]; if (-1 ! iRet) { return iRet; } const int curCoin coins[cur] / (1 split); int iType1 curCoin - m_iK; { for (const auto next : vNeiBo.m_vNeiB[cur]) { if (parent next) { continue; } iType1 dfs(next, cur, split, vNeiBo, coins); } } int iType2 curCoin/2; { for (const auto next : vNeiBo.m_vNeiB[cur]) { if (parent next) { continue; } iType2 dfs(next, cur, split1, vNeiBo, coins); } } iRet max(iType1, iType2); return iRet; } int m_iK; static const int m_iN 20; vector m_vRet[m_iN];//m_vRet[0] 未减半各节点及子孙节点的分数 m_vRet[i] 减半i次后的最大分数 }; 测试用例 template void Assert(const vector v1, const vector v2) { if (v1.size() ! v2.size()) { assert(false); return; } for (int i 0; i v1.size(); i) { assert(v1[i] v2[i]); } } template void Assert(const T t1, const T t2) { assert(t1 t2); } int main() { Solution slu; vectorvector edges; vector coins; int k; int res; edges { {0,1},{1,2},{2,3} }; coins { 10,10,3,3 }; k 5; res slu.maximumPoints(edges, coins,k); Assert(11, res); edges { {0,1},{0,2} }; coins { 8,4,4 }; k 0; res slu.maximumPoints(edges, coins, k); Assert(16, res); //CConsole::Out(res);} 扩展阅读 视频课程 有效学习明确的目标 及时的反馈 拉伸区难度合适可以先学简单的课程请移步CSDN学院听白银讲师也就是鄙人的讲解。 https://edu.csdn.net/course/detail/38771 如何你想快速形成战斗了为老板分忧请学习C#入职培训、C入职培训等课程 https://edu.csdn.net/lecturer/6176 相关下载 想高屋建瓴的学习算法请下载《闻缺陷则喜算法册》doc版 https://download.csdn.net/download/he_zhidan/88348653 充满正能量得对大家说闻缺陷则喜是一个美好的愿望早发现问题早修改问题给老板节约钱。墨家名称的来源有所得以墨记之。如果程序是一条龙那算法就是他的是睛 测试环境 操作系统win7 开发环境 VS2019 C17 或者 操作系统win10 开发环境 VS2022 C17
http://www.zqtcl.cn/news/676058/

相关文章:

  • 绿色蔬菜网站模板怎么做网站网站的代理
  • 网站seo优化推广专业app开发制作团队
  • 学校网站建设工作网上推广怎么做
  • 二 网站建设的目的及功能定位想找个专业做网站公司
  • 国内网站建设建设合肥城乡建设网站首页
  • 昆明市住房和城乡建设局网站怎么导出wordpress 整个网站
  • 哈尔滨 高端网站建设好用的网站链接
  • 优化网站建设seo关于申请网站建设经费的请示
  • 公交车网站怎么做留言板新公司起名大全
  • asp.net网站开发 vs2017广州seo成功案例
  • asp网站表格代码国家信用信息公示系统陕西
  • 网站建设技术文档网站做二维码
  • 模板建站公司wordpress 换行无效
  • 网站建设付款方式镇江网站设计开发公司电话
  • 萍乡网站制作公司末备案网站如何做cdn
  • 做透水砖的网站西充县企业网站建设
  • 29网站建设全部厦门建设网站建站
  • 列出网站开发建设的步骤高端品牌女装连衣裙
  • 长沙设计网站建设搜索引擎优化平台
  • 网站建设 可以吗打开浏览器的网站
  • 惠州定制网站制作推荐chinacd wordpress第三性
  • 网站建设从初级到精通网站开发成本预算价目表
  • 网站程序开发上海高端网站开发站霸网络
  • 企业网站对网络营销的意义环保材料 技术支持 东莞网站建设
  • 房地产网站建设价格买卖网站
  • 网站宣传方案开发专业网站
  • 电子商务+网站建设wordpress首页幻灯
  • 网站建设表格的属性学校网站建设命名
  • 清远网站建设自学网站开发要多久
  • 可信网站 quot 验证能防范哪些安全.教育类app开发价格表