2024-8-11 算法学习

news/2024/9/21 5:40:55/文章来源:https://www.cnblogs.com/zhang-mian/p/18354235

P4301 [CQOI2013] 新Nim游戏
题意:给定一串数列,拿走数列中的一些数,使得剩下来的一些数的所有非空子集的异或和都不为0,且拿走的数的和要最小
类似于线性代数,如果一些元素能够异或和为0,那么说明这些元素“线性相关”,所以只要留下无关的数,那么就满足题意。
采取线性基的做法,为了使得取出的数最小,从大往小遍历这个序列,能加入就加入,不能加入就拿走
P4151 [WC2011] 最大XOR和路径
题意:给出一个边权为非负整数的无向连通图,求出一条从1号节点到N号节点的路径,使得路径上经过的边的权值的异或和最大,可以重复经过边或点


对于f(N) 任意构造一棵树,例如dfs树就行了,而w相当于图里的环,通过dfs的方式找环的w,插入线性基,最后从高位到低位,贪心地去异或。
Bipartite Checking
题意:图中的边有时出现,有时消失,求对于每个时间点,该图是不是二分图
判断二分图,利用拓展域并查集,对于动态图求并查集,利用线段树分治,将边存在的时间映射到时间线段树上,就能完成一步一步添加边,利用栈存储过去状态,最后一步一步撤销回到原点。
P3605 [USACO17JAN] Promotion Counting P
题意:给定一棵树,求每个子树中,大于该子树父亲节点的权值的节点的数量。
线段树合并,每个节点维护权值线段树,具体做法是,先给每个节点一个初始的线段树,按照深度合并,合并中,如果主线段树某个节点空了,就把副线段树的节点给它就结束了,如果副线段树左边有就合并左边,右边有就合并右边,最后左右都没有,就说明到了l==r的情况,相加一下就行,记得最后要update或者pushup节点的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/781510.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue组件的完整原型链

转自:https://blog.csdn.net/weixin_65692463/article/details/128173817 vue组件的完整原型链构造函数原型 prototype构造函数通过原型分配的函数是所有对象所共享的JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象。注意这个 prototype 就是一个对…

Ethereum学习笔记 ---- 通过 Event 学习《合约ABI规范》

以太坊合约ABI规范见 官方文档-合约ABI规范 这里通过实验来印证 ABI 编码在 Event log 中的实现。 本地启动 ganache 首先在本地启动 ganache 作为 evm 链单节点,稍后与以太坊的交互都是通过与本地的 ganache 节点交互来实现的。 Ganache官网 将 ganache 节点的端口设置为以太…

pycharm专业版的安装和破解教程

1. 下载资源后解压,以管理员身份运行pycharm-professional-2024.1.exe 解压码:520000 下载链接:https://pan.xunlei.com/s/VO41LIAJ5geCjsQuhaUTNRM8A1?pwd=tjwt# 2. 安装程序内:下一步 -> 设置安装目录(软件安装不推荐放c盘,可以改成别的盘),下一步 -> 根据需要…

【转载】Behinder4.1(冰蝎)重写传输协议

0x01 编写流程首先新建你自己的传输协议名称然后使用java编写本地的加密函数再编写对应的解密函数,就可以保存然后再用对应语言编写远程加解密函数然后通过Wireshark抓包可以发现流量数据已经成功就行了加密 0x02 测试源码 1、本地加解密 // 加密函数 private byte[] Encrypt(…

pwntools缓冲区溢出与栈没对齐

我是ubuntu22.04,遇到了极其诡异的事情:可真是气死我了,got EOF是在逗我?怎么就EOF了?怎么就到end of file了? 下面请欣赏大佬的讲解:以下贴上gpt更详细的解答,我这次深刻的记住了栈要16字节对齐(我以前一直以为这只是为了提高效率的,可选可不选,无非慢一点) 当栈没…

Elasticsearch 磁盘空间异常:一次成功的故障排除案例分享

故障现象 近日有客户找到我们,说有个 ES 集群节点,磁盘利用率达到了 82% ,而其节点才 63% ,想处理下这个节点,降低节点的磁盘利用率。 起初以为是没有打开自动平衡导致的,经查询,数据还是比较平衡的。利用率较高的是 76 节点,如果 76 节点的分片比其他节点多,好像还比…

039.Vue3入门,异步加载组件,初始时不全部加载,使用时才加载

1.App.vue代码如下:<template><button @click="change">切换组件</button><p></p><keep-alive><component :is="tabComponent"></component></keep-alive> </template><script> impor…

P1270 “访问”美术馆

题意注意:要预留一秒的时间!!!不然你就 80 pts 分了。 小偷要回到大门。思路 定义 \(f_{i, j}\) 表示到在 \(i\) 的子树内拿 \(j\) 幅画。 那么我们可以枚举 \(f_{to, k}\) 表示在儿子结点拿 \(k\),那么总共为 \(f_{u, j + k} = min(f_{u, j + k}, f_{u, j} + f_{to, k} +…

matlab求解非线性规划

目录前言一、非线性规划的标准型二、fmincon函数1.目标函数--function f = fun(x)2.非线性约束函数--[c,ceq] = nonlfun(x)3.设置求解方法--option三、matlab求解非线性规划的实例与可能遇到的问题1.初值问题2.算法问题(1)内点法求解(2)SQP算法求解(3)active set算法求解…

genieacs安装

linux环境:ubuntu18.041. 安装node.js16.14wget https://nodejs.org/dist/v16.14.2/node-v16.14.2-linux-x64.tar.xz tar -Jxvf node-v16.14.2-linux-x64.tar.xz sudo mv node-v16.14.2-linux-x64/ /opt/ sudo ln -s /opt/node-v16.14.2-linux-x64/bin/node /usr/local/bin/ …

Scanner的进阶使用——基础计算

通过Scanner,可以将我们输入的数字进行计算从而反映出和以及平均数 1.定义两个变量,分别是输入的整数以及总数的和2.建立一个扫描器3.使用while关键字进行循环,在符合条件下(输入的是数字)可以一直进行计算过程4.设置电脑接收数据5.设置我们输入的次数以及数字的总和6.输出…

jUC中的锁

在JUC中 可以使用synchronized关键字进行加锁 如下所示 Object object = new Object(); synchronized (object){ // TODO }synchronized关键字所加的锁是逐步升级的,顺序是 无锁-> 偏向锁 -> 轻量级锁 -> 重量级锁、随着锁等级的提高,所带来的消耗也会越…