2024/12/16 总结

news/2024/12/16 21:43:44/文章来源:https://www.cnblogs.com/Kang-shifu/p/18611182

2024/12/16 总结

背包问题(knapsack)

背包问题是一类已经被研究的比较透彻的问题, 在这道题中你需要考虑背包问题的 一个变种. 你现在有三个背包, 容量分别为 𝑉1,𝑉2,𝑉3. 你还有许多物品, 每个物品以一个三元组 (𝑤𝑖,1,𝑤𝑖,2,𝑤𝑖,3) 的格式给出. 对每一个物品, 你可以选择一个背包将这个物品放进去. 如 果你选择将其放入第 𝑗 个背包, 则会消耗第 𝑗 个背包 1 的容量, 同时获得 𝑤𝑖,𝑗 的价值. 现在总的物品数量恰为 𝑉1+𝑉2+𝑉3, 你需要找出一种将所有物品放进背包的方案, 使得 最终获得的总价值最大.

slove1

六个堆贪心,先把三个背包随便装满。然后建立六个堆,分别表示从背包1到背包2(存储背包1中的所有元素),背包1到3(存2的所有元素,其他同),2到3,2到1,3到1,3到2的答案变化。

即6个堆分别存将背包x的所有元素从背包x[1 , 3]移动到背包y[1, 3]的答案变化。

大根堆。如果x到y的堆根和y到x的堆根和是正的,就代表交换是优的,我们就交换,同时更改六个堆中的元素(增加或删除),一直做直到没有两个有关系的堆堆根和是正的了,当前解就是最优的了。

slove2

假设将三元组全部放在一个背包,然后要取出v2个放在背包2,取出v3个放在背包3.

然后问题就变为在n个二元组(b-a,c-a)中选(其他条件如题)

把这些二元组按照first-second排序,如果前面的放在背包2,后面的放在背包1,可以证明交换后解会优。

所以一定存在一个分界点,在他前面选前v1个较大贡献值放在背包1,后面的选前v2个较大贡献放在背包2.

枚举分界点,然后就做完了。

游戏(game)

Alice 和 Bob 在做游戏. 现在有一个 1×𝑛 的棋盘, 其上第 𝑖 个格子有正整数 𝑎𝑖. 有一个棋子初始在 𝑠 处. 现 在 Alice 和 Bob 交替操作, Alice 先手: 如果当前棋子在 𝑝 处, 则玩家可以选择 •将 𝑝 加上最少 1, 最多 𝑘 (不能让 𝑝>𝑡). •如果 𝑎𝑝>0, 给 𝑎𝑝 减 1 其中 𝑘 是给定的参数, 𝑡 是棋子的终点. 不能操作的玩家失败. 在这个游戏的基础上, 你需要维护 𝑞 次操作, 每次操作可以 1.给定 𝑙,𝑟,𝑑, 将区间 [𝑙,𝑟] 中的 𝑎𝑖 全部加上 𝑑. 2.给定 𝑠,𝑡, 查询以 𝑠 为起始点, 𝑡 为结束点的游戏中, 谁会获胜

结果是必败态。

当一个玩家认为当前往后直接走会必败的时候,他一定会选择将当前ai减一交给对手,但是对手在ai为偶数的时候显然会不让他这么做,必败的结果不会改变,所以:

所以 𝑎𝑖 =1 为先手必胜的状态; 𝑎𝑖 =0 的状态需要看后 𝑘 个位置当中有没有先手必 败的状态

然后稍微转换一下就变成了[弹飞绵羊]([P3203 HNOI2010] 弹飞绵羊 - 洛谷 | 计算机科学教育新生态)

把序列分块,

维护to[i]表示跳出所在块后的位置,这样的话判断结果就是根号的。

修改的话就暴力重构块。

重 要 的 经 验

永远不要同时使用__gnu_pbds和std命名空间,你永远不知道会发生什么!!!!!!
再也别写六个堆反悔贪心了,调不出来的

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

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

相关文章

Docker安装Redis和Elasticsearch

本章将和大家分享在Docker中如何安装Redis和Elasticsearch。本章将和大家分享在Docker中如何安装Redis和Elasticsearch。废话不多说,下面我们直接进入主题。 一、Docker安装Redis 1、拉取最新版的 redis 镜像docker pull redis2、查看本地镜像docker images3、从官网获取 redi…

Redis应用—4.在库存里的应用

大纲 1.库存模块设计 2.库存缓存分片和渐进式同步方案 3.基于缓存分片的下单库存扣减方案 4.商品库存设置流程与异步落库的实现 6.库存入库时"缓存分片写入 + 渐进式写入 + 写入失败进行MQ补偿"的实现 7.库存扣减时"基于库存分片依次扣减 + 合并扣减 + 扣不了返…

Learn learn Cython

[SCTF ez_cython]简单分析需要调用一个cy库,找到文件"cy.cp38-win_amd64.pyd"pyd文件生成:编写pyx文件 \#test.pyx def say_hello_world(name): print("Hello world" % name)编写setup \#setup.py from distutils.core import setup from Cython.Build imp…

24.10.31 补充日志分析以及打包压缩

uniq 作用:去重,一般与sort搭配使用,单用uniq,是合并相邻两行相同内容 参数: -c #统计重复行的次数 eg:[root@oldboyedu ~]# cat uniq.txt oldboy lidao lidao lidao lidao oldboy oldboy lidao oldboy pldboy [root@oldboyedu ~]# uniq uniq.txt oldboy lidao oldboy l…

k8s阶段08 k8s扩展(kubectl插件), 调度器(亲和调度, 污点和容忍度调度), 集群日常管理, 高可用集群部署, 集群版本升级

Kubernetes 扩展机制 扩展Kubernetes1.kubectl插件 2.API Server扩展身份认证、鉴权和动态准入控制相关插件 3.API扩展,以支持更多的资源类型 4.调度器扩展以支持更多调度算法 5.控制器扩展以支持更多的Controller或Operator 6.网络插件,扩展Kubelet以配置Pod网络 7.设备插件…

WebP图片使用踩坑

前情 WebP是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,最初在2010年发布,目标是减少文件大小,相较于传统的 PNG、JPG,甚至是动图 GIF 的格式,WebP 比它们的空间更小。根据谷歌的测试,WebP 格式的图片可以比 JPEG 格式的图片小 26%-34%,比 PNG 格式的…

idea把unicode转为中文

国际化需求,中文转unicode了 ‌设置文件编码‌:打开IDEA,通过快捷键Ctrl+Alt+S或通过菜单File -> Settings,搜索File encoding,选择Transparent native-to-ascii conversion选项,并设置默认编码为UTF-8。这样设置后,打开properties文件就可以显示中文了。

Qt+OPC开发笔记(一):OPCUA介绍、open62541介绍、编译与基础环境Demo

前言本篇介绍OPC协议,相关开源库、编译并搭建Qt开发OPC的基础环境。 Demo OPCOPC(OLE for Process Control)是一个工业标准,用于实现工业自动化系统中的不同设备和应用软件之间的数据交换和互操作性。以下是关于OPC的详细介绍:OPC的起源与发展OPC起源于上世纪90年代,随着…

vue 上传组件 vxe-upload 图片和附件拖拽调整顺序

vue 上传组件 vxe-upload 图片和附件拖拽调整顺序,通过设置 drag-sort 参数就可以启用拖拽排序功能 官网:https://vxeui.com/ 图片拖拽排序<template><div><vxe-upload v-model="imgList" mode="image" multiple drag-sort></vxe-u…

arm安装数据库

https://blog.csdn.net/wochunyang/article/details/132883654https://blog.csdn.net/qq_43690482/article/details/132168349https://www.cnblogs.com/wshisboy/p/16374015.htmlhttps://www.cnblogs.com/windandchimes/p/18344463 首先先看麒麟系统的版本CPU对应版本。 cat /p…

12月做题记录

whk恐怖如斯,仅补两周即可让呆猫失去大脑12月做题记录✩ trick ✯ 会大部分,要\(tj\)提示 ✬ 会小部分/完全没想到,看了\(tj\)才会 ◈ 脑电波 ✡ 有某一算法的神秘通用性质 ⊗ 待补目录12月做题记录CF1725K Kingdom of CriticismCF1446D2 Frequency Problem (Hard Version)根…

Vulnhub nxy

0x01:端口扫描 主机发现 nmap -sn 10.10.10.0/24全端口扫描 nmap --min-rate 10000 -p- 10.10.10.132UDP扫描 nmap -sU --top=20 10.10.10.132详细端口扫描 nmap -sT -sC -sV -O --min-rate 10000 -p22,80 10.10.10.132漏洞扫描 nmap --script=vuln -p22,80 10.10.10.1320x02:…