当前位置: 首页 > 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.w-s-a.com/news/677734/

相关文章:

  • 厦门微信网站广州推广策划公司
  • 集团公司网站开发asp网站怎么运行
  • 广州短视频网站开发东莞市建设信息网
  • 建设网站如果赚钱电脑可以做服务器部署网站吗
  • 网站建设的编程专门做面包和蛋糕的网站
  • 档案网站建设比较分析南京建站公司
  • 哪个网站可以做店招傻瓜式wordpress
  • 网站开发项目经理职责青岛模版网站建设
  • 企业建站哪个好网站建设所用程序
  • 网站建设seo视频定制图片软件
  • 404错误直接转向到网站首页四川省建筑施工企业人员考试平台
  • 手表电商网站智能展厅
  • 南海网站推广梅州做网站公司
  • 昆明专业网站建设公司成都外贸网站建设费用
  • php mysql网站开发项目公司网站宣传设计
  • 自己做网站服务器的备案方法怎么查网站点击量
  • 信息产业部icp备案中心网站织梦做双语网站
  • 爱站网站长seo综合查询工具局网站信息内容建设 自查报告
  • 我想建一个网站怎么建淄博网站推广那家好
  • 做网站和app需要多久河南自助建站建设代理
  • 大连做企业网站的公司宣传平台有哪些类型
  • 如何用微信做网站免费设计logo网站有哪些
  • 服务平台型网站余姚网站定制
  • 网站搭建联系方式太平阳电脑网网站模板
  • 请简述网站制作流程html5网络公司网站模板
  • 海尔集团企业网站建设分析重庆市建设银行网站
  • 介绍公司的网站有哪些广西壮族自治区
  • 网站做rss wordpress9 1短视频安装软件
  • 网站建设价格西安室内设计网站排行榜前十名知乎
  • 用nas建设服务器网站用vs做音乐网站