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

wordpress 独立相册seo站内优化包括

wordpress 独立相册,seo站内优化包括,深圳罗湖网站制作公司,互动平台表示公司帮助国内客户进行新冠药物研发思路 一开始,我是想利用异或的特性,重复异或两次变为原值,那么只要异或后的值更大,就更新 但是这和题意相违背,因为题目做处理是对边整体进行的 (我写的版本是对顶点分别控制的) 但即使加上一起变动的特性,这个思路也是不对的 如果一个顶点有多条边相连 & 当前已经对[先…

 

思路

一开始,我是想利用异或的特性,重复异或两次变为原值,那么只要异或后的值更大,就更新

  • 但是这和题意相违背,因为题目做处理是对边整体进行的 (我写的版本是对顶点分别控制的)

但即使加上一起变动的特性,这个思路也是不对的

  • 如果一个顶点有多条边相连 & 当前已经对[先遍历到的边]异或过
  • 那么到了同顶点的其他边时就无法再变动了 -- 因为异或后会变小(变为原值),但是可能这里对另一个顶点异或后会带来全局的更优解

总之还是去看了题解

贪心

梳理一下题意

  • 规定是可以对相邻两个节点同时进行异或操作,但是树中任意两个节点之间都是可以联通的(树 -- 无环且连通的无向图)
  • 所以如果对一条路径上的所有边都进行异或操作,最终只有路径端点被异或,其他节点都没变(异或两次恢复了)
  • 于是,原先的 [只有相邻节点可以被异或] 可以转换成 [对任意两个节点异或]

于是,可以先对每个节点进行异或,计算出和原来相比的差值

  • 如果差值为正,说明异或后可以使总和变大,那么就加入到结果中
  • 既然要求和的最大值 & 可以对任意两点进行异或,那就直接按差值排序,然后再成对使用

树形dp

递归

本题中,每个节点有两种选择:异或该节点 / 不异或该节点

  • 这里的选择取决于该节点的子节点选择了什么,子节点的选择又取决于孙子节点...
  • 于是形成了自顶向下的依赖关系,所以最好是使用递归逻辑

预处理

将原先给定边的形式,转换为邻接表

  • 方便后续的递归操作(dfs)

未完待续....

    代码

    class Solution {
    public:long long maximumValueSum(vector<int>& nums, int k,vector<vector<int>>& edges) {long long res = accumulate(nums.begin(), nums.end(), 0ll);vector<int> diff;for (auto& a : nums) {diff.push_back((a ^ k) - a);}sort(diff.begin(), diff.end());for (int i = diff.size() - 1; i > 0 && diff[i] + diff[i - 1] >= 0;i -= 2) {res += max(0, diff[i] + diff[i - 1]);}return res;}
    };
    class Solution {// dfs函数返回一个pair<long long, long long>:// first  -> 当前节点u“不进行异或操作”时,子树的最大价值和// second -> 当前节点u“进行异或操作”时,子树的最大价值和pair<long long, long long> dfs(int node, int parent,const vector<vector<int>>& graph,const vector<int>& nums, int k) {long long sumIfNotXor = 0;long long sumIfXor = LLONG_MIN;for (int child : graph[node]) {//if (child == parent)continue;auto [childNotXor, childXor] = dfs(child, node, graph, nums, k);long long newSumIfXor =max(sumIfXor + childNotXor, sumIfNotXor + childXor);long long newSumIfNotXor =max(sumIfNotXor + childNotXor, sumIfXor + childXor);sumIfXor = newSumIfXor;sumIfNotXor = newSumIfNotXor;}long long resultNotXor =max(sumIfNotXor + nums[node], sumIfXor + (nums[node] ^ k));long long resultXor =max(sumIfXor + nums[node], sumIfNotXor + (nums[node] ^ k));return {resultNotXor, resultXor};}public:long long maximumValueSum(vector<int>& nums, int k,vector<vector<int>>& edges) {int n = (int)nums.size();vector<vector<int>> graph(n);// 建图,邻接表形式for (auto& edge : edges) {int u = edge[0], v = edge[1];graph[u].push_back(v);graph[v].push_back(u);}// 从根节点0开始DFS,返回两个状态的最大值,我们要的是未异或状态的最大值return dfs(0, -1, graph, nums, k).first;}
    };

    http://www.dtcms.com/wzjs/179462.html

    相关文章:

  • 茶山网站仿做上海比较大的优化公司
  • 网站内容的建设资源网站优化排名软件
  • 昆山市住房和城乡建设网站谷歌地球
  • 工艺品网站模板下载-古色古香天津网站建设开发
  • 找人做软件去哪个网站找免费推广平台有哪些
  • 东莞商城网站开发怎样免费制作网页
  • 互联网行业包括哪些方面东莞百度seo在哪里
  • 网站的建设论文的选题描述怎么营销自己的产品
  • 如何在家里做网站搭建网站教程
  • 免费做网站通栏广告交换链接或称互惠链接
  • 长沙市做网站小程序开发框架
  • 做网站的是什么重庆网站seo公司
  • 网站建设中 什么意思哪个平台推广效果最好
  • 做网站的法律关键词有哪些关联词
  • 手机网站判断跳转代码青岛网站制作推广
  • 做足球推荐网站能赚钱吗属于b2b的网站有哪些
  • 教育课程网站建设知乎小说推广对接平台
  • 中国基建人才网南宁seo怎么做优化团队
  • 怎么上传自己的网站sem推广软件
  • 泰州网站建设报价免费找精准客户软件
  • 沈阳行业网站建设百度搜索关键词优化
  • 视频网站后台管理广东今天新闻最新消息
  • 国内最大网站制作公司在线培训平台
  • 福安市代理做网站百度推广培训机构
  • 成都企业网站建设那家好网络营销推广方法有哪些
  • 备案用的网站建设方案书怎么写短视频seo搜索优化
  • wordpress做在线商城西安seo托管
  • 基于web的在线电影网站设计google seo怎么做
  • 东莞网站公司怎么样做免费的百度seo
  • 三丰云怎么做网站实体店营销策划方案