P13714 淘汰(Hard ver.)

news/2025/11/13 22:15:23/文章来源:https://www.cnblogs.com/wingheart/p/19219676

P13714 淘汰(Hard ver.)

题意

略。

思路

参考第一篇题解。

先想了一些最短路的东西,但是复杂度好像怎么都不行。


于是考虑 DP。

对于任意一位,在某一个操作(称为这一位的关键操作)之后,这一位就不再变化。

对于任意一位,在它的关键操作之前,这一位是什么不重要。因为我们的操作一定是霸道地把这一位设为 0/1。

\(f_S\) 表示集合为 \(S\) 的位已经固定。那么集合 \(S\) 的位置,与 \(y\) 相同。不属于集合 \(S\) 的位置,随便。

转移。枚举 \(S\) 的补集/的子集 \(T\),钦定这次操作将要固定集合 \(T\) 的位置。

对于 AND 操作为例,要求 \(y\)\(T\) 的位置,均为 \(0\)。可选的 AND 操作,需要满足在 \(T\) 的位置均为 \(0\),且在 \(S\) 中为 \(1\) 的位置,均为 \(1\)。即在 \(T\) 和 (\(S\) 中为 \(1\)) 的位置上,要与 \(y\) 相同。

对于 OR 操作是类似的。

我们预处理出 \(g_S\),表示在集合 \(S\) 上与 \(y\) 相同的 AND 操作,的最小费用。这个可以高位前缀和求。而且因为是取 \(\min\) 操作,所以不用容斥。

对于 OR 操作是类似的。

时间复杂度 \(O(2^k k + 3^k)\)

code

为了方便写代码,代码中状态定义如下:

  • \(f_S\) 表示集合为 \(S\) 的位置还没有固定,不属于集合 \(S\) 的位置已经固定,且与 \(y\) 相同,的最小花费。
  • \(ga_S\) 表示集合为 \(S\) 的位置可以与 \(y\) 不相等,不属于集合 \(S\) 的位置一定与 \(y\) 相等,的 AND 操作,的最小花费。
  • \(gb_S\) 为 OR 操作,其他同上。
#include<bits/stdc++.h>
#define sf scanf
#define pf printf
#define rep(x,y,z) for(int x=y;x<=z;x++)
#define per(x,y,z) for(int x=y;x>=z;x--)
using namespace std;
typedef long long ll;
namespace wing_heart {constexpr int K=16,N=(1<<K)+7;constexpr ll infll=0x3f3f3f3f3f3f3f3f;void _min(ll &a,ll b) { a=min(a,b); }int T;struct pii {int w,x;}a[N],b[N];int n;int k;int s,t;ll f[N],ga[N],gb[N]; // S 尚未确定(其他=t),S 可以与 y 不相等(and),同前(or)void main() {sf("%d",&T);while(T--) {sf("%d%d%d%d",&n,&k,&s,&t);int x;rep(i,1,n) sf("%d",&x), a[i].x=x;rep(i,1,n) sf("%d",&x), b[i].x=x;rep(i,1,n) sf("%d",&x), a[i].w=x;rep(i,1,n) sf("%d",&x), b[i].w=x;memset(ga,0x3f,sizeof(ll)<<k);memset(gb,0x3f,sizeof(ll)<<k);rep(i,1,n) _min(ga[a[i].x^t],a[i].w);rep(i,1,n) _min(gb[b[i].x^t],b[i].w);rep(i,0,(1<<k)-1) {rep(j,0,k-1) if(!((i>>j)&1)) {_min(ga[i|(1<<j)],ga[i]);_min(gb[i|(1<<j)],gb[i]);}}memset(f,0x3f,sizeof(ll)<<k);int p = s^t; rep(i,p,(1<<k)-1) if((i|p) == i) f[i]=0;per(i,(1<<k)-1,0) if(f[i]!=infll) {for(int j=i;j;j=(j-1)&i) { // 确定 jif(!(t&j)) _min(f[i^j],f[i]+ga[(((~i)&(~t))|(i^j))&((1<<k)-1)]);if((t&j)==j) _min(f[i^j],f[i]+gb[((~i)&t)|(i^j)]);}}if(f[0]==infll) puts("-1");else pf("%lld\n",f[0]);}}
}
int main() {#ifdef LOCALfreopen("in.txt","r",stdin);freopen("my.out","w",stdout);#endifwing_heart :: main();
}

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

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

相关文章

Windows 10 本地部署工作流自动化工具 n8n

参考豆包 deepseek https://docs.n8n.io/ https://zhuanlan.zhihu.com/p/1968808989946016165 https://blog.csdn.net/qq_43499921/article/details/154605297 https://www.n8nclub.com.cn/article/docker_n8n#1ef34a8…

Gary Yen教授在BICTA2025做主旨汇报并访问本课题组

2025年11月7日至8日,本课题组成功举办了一场高水平的国际学术交流活动。此次活动邀请到了国际计算智能领域著名学者、四川大学人工智能讲席教授Gary G. Yen教授莅临本组进行学术访问与交流,并出席在武汉举办的第20届…

EUC 2024 题解(瞎写的

这场比赛,感觉题目很好。但是总的有点奇异搞笑。 A. Grove 退火哦耶! 官方题解给的是最大独立集搜索,也很搞笑哥们。 B. Charming Meals 显然的 \(a\) 的前缀依次匹配 \(b\) 的后缀,\(a\) 的后缀依次匹配 \(b\) 的…

污染控制化学及工程考点背诵手册

污染控制化学及工程考点背诵手册(修订版) 一、固体废物污染及控制(核心考点) (一)基础概念固体废物定义:生产/生活/其他活动产生的丧失利用价值或被抛弃的固态、半固态及容器中气态物质,含危险废物。 危险废物…

关于AI元人文构想与价值工程生态系统的全面研究报告

关于AI元人文构想与价值工程生态系统的全面研究报告岐金兰 2025年11月13日 本报告系统性地阐述了一套旨在应对当前人工智能伦理挑战的创新型理论体系。 📚 报告全文概览 以下是本报告各章节的核心概要,可以帮助读者…

图论有关问题

mndzk,mndbu。 最短路相关 1. 三角形不等式 对于单源最短路,记 \(dis_i\) 为原点到 \(i\) 的最短路径长度。那么 \(\forall (u,v,w) \in E,dis_{u}+w \ge dis_v\)。且在边 \((u,v,w)\) 在最短路上时取等。这个比较显…

杂记 - 2

作者:So_noSlack-2025.11.03想写点东西,总结一下最近的经历吧。 上次写是 \(2025.09.29\),这又过了一个月了,\(10\) 月份的第一周国庆,写写学校作业,回老家了一趟,其他好像也没干什么。对于 \(\text{OI}\) 貌似…

算法随笔 - LogTrick

这类 \(O(\log V)\) 的 trick,都是利用了值变化单调且变化幅度大的特性 每次下降或上升都跨越一个“数量级”,因此变化次数有限,即使包在循环中整体也只会是 \(O(n \log V)\) 而非 \(O(n^2)\)。 下面举几个比较典型…

杂记 - 4

作者:So_noSlack-2025.11.13今天是 \(2025\) 年 \(11\) 月 \(13\) 日。 最近感觉状态好多了,从 \(25.11.11\) 开始每天写做题笔记,写完题之后或者写之前把思路简单写一下。感觉挺有用的,顺便把每个算法都整理一下。…

智能眼镜论文笔记

智能眼镜论文笔记 目录智能眼镜论文笔记0x00 概要0x01 论文内容总结1.1 AI for Service1.1.1 研究背景与核心范式1.1.2 核心技术挑战与解决方案1.1.3 Alpha-Service 框架设计1.1.4 思考1.2 EgoLife1.2.1 背景1.2.2 数据…

杂记 - 3

高一?我怎么已经高一了。 仿佛上一次抬头,我还在小学的教室里,和有趣的同学们一同上数学课。作为数学课代表的我,当然对数学课满腔热情,积极回应老师的每一个问题。下课和同学聊八卦、分零食,最好的朋友教我打篮…

LeetCode 面试经典 150_栈_简化路径(53_71_C++_中等)(栈+stringstream) - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

污染控制化学及工程知识点整理

污染控制化学及工程(第一章)核心内容梳理 一、思维导图二、简答题及解说 1. 简述环境地球化学的核心研究内容及在环境污染治理中的作用 答案:核心研究内容包括环境生物地球化学循环的过程与关键反应、影响因素、耦合…

夯实MySQL基础:SQL核心与MySQL入门全解析

夯实MySQL基础:SQL核心与MySQL入门全解析在数据驱动的时代,MySQL作为全球最受欢迎的关系型数据库管理系统之一,已成为软件开发、数据分析等领域的核心工具。无论是小型项目的数据存储,还是大型网站的高并发数据处理…

400万美元ARR,小企业和个人AI客服Beside融资3200万美元;KalpaLabs:不到1000美元训练语音模型丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 技术 」、「有亮点的 产品 」、「有思考的 文章 」、…

优先级队列的学习 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Codeforces Round 1063 (Div. 2)题解

A. Souvlaki VS. Kalamaki 【题目】 给定一个长为n的数组nums,A,B两个人轮流行动。A先开始 第i轮,当前行动人可以跳过或者交换nums[i]和nums[i+1] 开始时A可以对nums任意排序。 要求最后nums必须是非递减,则A胜否则…

system自启动

system自启动[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com BindsTo=containerd.service After=network-online.target containerd.service Wants=network-online.t…

25.11.13联考题解

A 神人构造,随机区分度真恶心。 我们考虑将序列分成前半段限制为 \(m\) 和后半段限制为 \(m=0\)。前面我们用 \(n,n-1,\dots,n-m+1\) 并让其合法即可,考虑后面的构造。考虑把序列分成尽量相等的三段,然后大的两段从…

2025.11.13模拟赛

赛场心态下去了,回不来了,悲( T3有望做出来的,没想dp 考虑到其实可以考虑只有一个区间变为大区间然后统计答案即可,考场上想了半天这东西怎么维护 其实拿一个线段树用脚区间+1,-1,维护区间标记为0的权值和 这个…