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

qoj1847 Elephants

题意

有一个长度为 \(n\)\(01\) 数组 \(a\)

给出 \(q\) 组限制条件,第 \(i\) 组给出大小为 \(k_i\) 的集合 \(C_i=\{x_{i,1},x_{i,2},\cdots,x_{i,k_i}\}\)。若 \(cnt_0\)\(\{x|x\in C_i,a_x=0\}\) 的集合大小,\(cnt_1\)\(\{x|x\in C_i,a_x=1\}\) 的集合大小,则保证 \(|cnt_0-cnt_1|\le 1\)

且保证若存在 \(i\neq j,x,y,z\)\(x\in C_i,x\in C_j,y\in C_i,z\in C_j\),则有 \(y\in C_j\)\(z\in C_i\)

求出一组可能的 \(a\),或判断无解。

思路

由题意得,对于两个不同的集合 \(C_i,C_j\pod{i\neq j}\),只可能存在不交和包含的关系。

将限制条件按照大小排序,我们便可以把限制条件表示为一棵树的关系,每个节点分为它的子节点和下面没有包含的颜色部分,如下图:

其中黑色部分表示这个限制条件包含的节点,红色部分表示下面没有包含的颜色部分。

可以发现,如果限制条件的长度为偶数,那么就只有一半 \(0\) 一半 \(1\) 的填法,但是如果为奇数,那么就可以多填一个 \(0\) 或者多填一个 \(1\)

于是对于每个限制条件,让它的所有长度为奇数的子节点以多一个 \(0\) 和多一个 \(1\) 的形式交错,最后再确定自己的红色部分即可。

代码

#include <bits/stdc++.h>
using namespace std;
int n,m,a[1000005],id[1000005],be[1000005],tp[1000005];
vector<int> t[1000005],e[1000005];
bool cmp(int x,int y){return t[x].size()>t[y].size();
}
void dfs(int x,int mr){vector<int> mc;for(int v:t[x])if(be[v]==x) mc.push_back(v);for(int v:e[x]){if(t[v].size()%2==1){if(mr==1) dfs(v,1);else dfs(v,0);mr^=1;}elsedfs(v,0);}int c=0;if(mc.size()%2==0){for(int v:mc){c++;if(c<=mc.size()/2) a[v]=0;else a[v]=1;}}else{for(int v:mc){c++;if(c==mc.size()) a[v]=mr;else if(c<=mc.size()/2) a[v]=0;else a[v]=1;}}
}
signed main() {ios::sync_with_stdio(false);cin.tie(nullptr),cout.tie(nullptr);cin>>n>>m;for(int k,i=1;i<=m;i++){cin>>k,id[i]=i;for(int x,j=1;j<=k;j++)cin>>x,t[i].push_back(x);}sort(id+1,id+1+m,cmp);for(int i=1;i<=m;i++){if(!be[t[id[i]][0]])e[0].push_back(id[i]);elsee[be[t[id[i]][0]]].push_back(id[i]);for(int v:t[id[i]])be[v]=id[i];}dfs(0,0);for(int i=1;i<=n;i++)cout<<a[i]<<" ";return 0;
}

相关文章:

qoj1847 Elephants

题意 有一个长度为 \(n\) 的 \(01\) 数组 \(a\)。 给出 \(q\) 组限制条件,第 \(i\) 组给出大小为 \(k_i\) 的集合 \(C_i=\{x_{i,1},x_{i,2},\cdots,x_{i,k_i}\}\)。若 \(cnt_0\) 为 \(\{x|x\in C_i,a_x=0\}\) 的集合大小,\(cnt_1\) 为 \(\{x|x\in C_i,a_x=1\}\) 的集合大小,…...

p4085

洛谷p4085 题目链接 首先想怎么计算一个区间的风味和辣度;风味是区间内的风味总和,可以用前缀和处理;辣度是区间最大值,可以用ST表处理; 处理完ST表和前缀和之后考虑怎么求答案,可以考虑二分查找前缀和满足风味要求的最小值,然后列举后面的所有情况求最小; 代码: #inc…...

Excel甘特图 - 教程

Excel甘特图 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 14px…...

基于ArcGIS的通用界址点导入导出工具设计与实现

# 基于ArcGIS的通用界址点导入导出工具设计与实现最近在开发一个兼容 **ArcGIS Desktop** 和 **ArcGIS Pro** 的通用界址点数据导入导出工具。在实际项目中,界址点虽然有国家标准规范,但各地的实际应用需求差异较大,导致格式五花八门:- 有的地方要求包含 **9个属性字段**;…...

python 函数作用域

对于 python 中的全局变量,在函数体内只能访问,不可修改。若想修改则需要用 global 关键字声明。 eg:c = 1 def f():print(c)f() # 可执行c = 1 def g():global c # 在函数体内修改全局变量,需要声明c += 1print(c)g()定义在函数体内的函数,称为“闭包”。与全局变量原理一…...

基于Python+Vue开发的鲜花商城管理系统源码+运行

项目简介该项目是基于Python+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的鲜花商城管理系统项目,大学生可以在实践中学习和…...

Idea win 快捷键大全

转载自:https://www.cnblogs.com/chuangzhijian/p/8477220.html Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示…...

文献阅读 | AutoCodeBench

AutoCodeBench:大型语言模型是自动代码基准生成器 - AI论文精选 解决大模型标注困难的问题,可自动生成高难度多语言代码生成数据集TRANSLATE with xEnglishArabic Hebrew PolishBulgarian Hindi PortugueseCatalan Hmong Daw RomanianChinese Simplified Hungarian RussianC…...

【ARM Cache 及 MMU 系列文章 6.5 -- 如何进行 Cache miss 统计?】

ARM Cache Miss 统计 在ARMv8/v9架构中,缓存未命中(Cache Miss)的统计对于性能调优和系统分析至关重要。缓存未命中意味着处理器尝试从缓存中读取数据时没有找到,因此不得不从更低速的存储(如L2缓存或主内存)中加载数据,这会导致延迟增加和性能下降。理解和分析缓存未命…...

VSCode+neovim工作环境快速构建

环境系统:Windows 代码编辑器:VSCode 插件:vscode-neovim、clangd目的 为了减少右手趴鼠标上的时间,所以根据以下目标给出一份最简洁的配置方案:窗口跳转:<C-w>+ h j k l 标签页跳转:H L 终端打开\关闭: <C-`> 相对行号 引用跳转(Go to Define): gd 模式切…...

25.9.12随笔联考总结

考试 通读题面,感觉只能顺序开题。T1 做了 40 多分钟,感觉这个题比之前的要难一点;T2 很快找到一些性质,但是最后一个东西似乎不太能做,于是就花了好一会去想,但是还是没想出来。最后只写了暴力。T3 看着就很不可做,想了一会没找到啥性质。T4 是串串计数题,因为计数做少…...

macos

调节鼠标熟读 defaults write -g com.apple.mouse.scaling 6...

0912模拟赛总结

这次比赛T1没有注意 DP 初始化少了 30 分,T4把 \(m\) 写成 \(n\) RE 了,少了85分,所以一定要自己造极限数据,同时要把题目里面的变量改成自己的习惯。后面在对拍的时候一直在改T1,忽略了 -inf 和 0 是有区别的,后者可以转移出不存在的状态。这几次考试都反映出大样例是很…...

Java基础程序设计

Java基础程序设计Day02 关键字和保留字的含义: 关键字被Java语言赋予了特殊含义,用做专门用途的字符串(单词)(关键字特点字母都为小写),保留字不能被用作标识符来使用goto、const,保留字不能作为标识符来命名。 标识符:凡是需要起名字的地方都叫标识符 定义标准:标识符的命名规…...

CF482C Game with Strings

比较具有启发意义的题目。 首先看到 \(m \le 20\),我们第一个想到的就是状压 DP,设 \(f_i\) 为选取位置集合为 \(i\) 时期望多少步确定,显然转移是简单的,比较困难的地方在当 \(i\) 唯一确定一个串(这个串需要你枚举出来)时,\(f_i = 0\),而这一步需要 \(O(nm2^m)\) 的复…...

相机标定

为保证单目相机在全站仪融合定位中的精度,需要进行相机标定以获得准确的内参和畸变参数。 内参矩阵 (K):描述了相机自身的几何属性,与相机的位置和姿态无关。f_x, f_y: 以像素为单位的焦距,与物理焦距和图像传感器密度有关。c_x, c_y: 主点坐标,通常是图像的中心(或附近)…...

深度学习隐私测试框架PrivacyRaven全面解析

PrivacyRaven是专为深度学习系统设计的隐私攻击测试套件,支持模型提取、成员推理和模型反演三大攻击类型,通过模块化设计实现高效隐私测试,帮助研究人员评估系统安全性。PrivacyRaven Has Left the Nest - The Trail of Bits Blog Suha S. Hussain, Georgia Tech October 08…...

华硕灵耀双屏不定时死机,开机蓝屏 其一解决方法

关闭intel RST,关闭VMD,...

完整教程:Java 抽象(abstract)关键字

完整教程:Java 抽象(abstract)关键字pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !importa…...

自建rustdesk服务器,不填写中继地址无法连接的解决

研究相当长时间,官方文档在配置服务器步骤时省略了关键一步,导致当你用定义文件名方式给客户直接使用客户端时,无法连接中继的问题,不在于客户端,而在于服务端过程省略,直接设置hbbs 服务的启动参数,添加-r <中继地址> -k_ 即可默认为 -r 0.0.0.0 服务端不能推导I…...

Typescript中Type 类型的实现原理

TypeScript 中的 "类型"(Type)是对值的结构和行为的抽象描述。它不直接参与运行时,而是在编译阶段用于约束值的形态,确保代码符合预期的契约。1.核心作用:定义 "允许的值" 的范围和操作规则2.与 JavaScript 的关系:TS 的类型系统是对 JS 值的补充描述…...

数据结构与算法-30.图-拓扑排序

一、拓扑排序定义 二、检测有向图中的环API设计实现过程 以上仅供参考,如有疑问,留言联系...

1.进制转化

...

CF1796E Colored Subgraphs

是一个读懂题意就能做出来的题。 题目意思就是要你进行某种树上剖分,求最短链可能的最大长度。 显然,有一个很容易的 DP 是设 \(f_i\) 为以 \(i\) 结尾的最短链长度,显然,它会从儿子中的最短链转移而来。 那么,在换根的过程中,我们需要记录一个全局最小值和全局次小值,可…...

MySQL 日期时间类型:从入门到精通的核心指南 - 指南

MySQL 日期时间类型:从入门到精通的核心指南 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monosp…...

Map对象在JavaScript循环中的使用

在JavaScript中,Map对象是一种新的键值对集合数据结构,与传统的Object有着本质的差异。一个Map的键可以是任意值,包括函数、对象或任何原始值。Map对象与传统的Object相比,有以下几个显著的优点:键的范围不限于字符串和Symbol。 Map对象的键值对是有序的,即键值对的插入顺…...

戒己谨言

言一 高投入,低期待 —— 2025.9.13 言二 学习是以知识武装自己 —— 2025.9.13...

2025.9.13——1黄

普及/提高- B3873 [GESP202309 六级] 小杨买饮料 简单的背包dp,注意边界情况处理。...

安全加固:启动PostgreSQL 14服务器SSL加密的方法指南在CentOS 7环境中

在CentOS 7操作系统中配置PostgreSQL 14以启用SSL加密,需要进行以下步骤: 1. 安装PostgreSQL 14: 首先确保安装了PostgreSQL 14,可以通过以下命令安装: sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest…...

更美观的网页布局

更美观的网页布局<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=d…...

更灵活易用、延迟超低、更多情感语音支持!地表最强 Voice Agent 开源框架再进化!丨TEN Framework 更新

Hi !RTE 开发者社区的新老朋友们大家好,恰逢 TEN Framework 开源一周年之际,TEN 带着超厉害的 0.1.0 版 来了!TEN Framework 本次带来了多项功能更新和开发者体验提升,相信 TEN 将成为开发者构建下一代 Voice Agent 的开发利器!本次更新增加了简化的 main 概念,让开发者…...

详细介绍:【干货收藏】Transformer架构深度拆解:大模型入门核心指南

详细介绍:【干货收藏】Transformer架构深度拆解:大模型入门核心指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier N…...

实用指南:Terraform 从入门到实战:历史、原理、功能与阿里云/Azure 上手指南

实用指南:Terraform 从入门到实战:历史、原理、功能与阿里云/Azure 上手指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "C…...

Electron38-Wechat电脑端聊天|vite7+electron38仿微信桌面端聊天系统

最新研发Electron38+Vite7+Pinia3客户端仿微信聊天系统ElectronWinChat。 electron38-vue3-wechat基于vite7.1+electron38+pinia3+element-plus跨平台仿微信/QQ电脑端聊天Exe程序。封装electron多窗口管理、自定义系统导航栏。实现聊天、通讯录、收藏、朋友圈/短视频、我的等模…...

PsExec

PsExec keywords: PsTools PsExec 是一个可以远程连接其他Windows执行命令的工具,在SysinternalsSuite套件中。 下载链接: https://learn.microsoft.com/en-us/sysinternals/downloads/psexec 配置高级安全 Windows Defender 防火墙 -> 入站规则 -> 文件和打印机共享(S…...

详细介绍:开源AI智能客服与AI智能名片在S2B2C商城小程序客服管理中的应用与影响

详细介绍:开源AI智能客服与AI智能名片在S2B2C商城小程序客服管理中的应用与影响pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…...

深入解析:每日一算:电话号码的字母组合

深入解析:每日一算:电话号码的字母组合pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !import…...

华为系CEO,正在“接管”汽车圈?

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087新CEO又是“华为人”?这不是一句调侃,而是正在车圈上演的现实剧本。就在9月5日,深蓝汽车宣布由原荣耀中国区CMO姜海荣接任C…...

Marvell,跌落神坛!

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 在当今如日中天的AI时代,Marvell的股价震荡成为最刺眼的注脚。这家曾凭借AI定制芯片(ASIC)业务站上千亿美元市值的半导体巨…...

老同志们的93阅兵镜头

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 字(可选) 添加图片…...

英伟达老黄,又收购了一家AI编程公司

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087老黄正在看好什么?AI编程。这不,英伟达刚刚收购了一家AI coding初创公司,Agent方向。 添加图片注释,不超过 140 字(可选)…...

读人形机器人10酒店行业

读人形机器人10酒店行业1. 提升宾客体验 1.1. 长久以来,酒店一直是舒适与奢华的港湾1.1.1. 机器人正在重新定义服务艺术1.2. 在酒店业中,宾客体验至关重要 1.3. 温暖的欢迎、个性化的服务、对需求的预判—将一次普通入住转变为非凡体验 1.4. 人形机器人通过提供个性化、高效且…...

35岁不是终点,而是芯片人的爆发起点!

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087致那些白天写架构、晚上修福报、凌晨一点还在回消息的“中年码神”们: 你写的不是代码,是人生的编译日志。 别等报错才想起—…...

开源安全与法律争议:OpenSSH枚举、DMCA诉讼与数据泄露事件解析

本文探讨OpenSSH用户枚举漏洞的时序攻击技术细节,分析DMCA第1201条对安全研究的法律限制,并回顾Canonical论坛数据泄露事件的技术背景与影响,涉及密码哈希机制与无线网络安全认知等实质性技术内容。法律行动与数字版权争议 电子前沿基金会(EFF)宣布对美国政府的诉讼,挑战…...

9.12-huenqi

1. 显示超出区域 小数位过长 2. 修改手机号未验证格式 3. 添加交易账户后租户id错误的添加成了用户id 4. 修改前密码和修改后密码可以一样 5. logo背景色不一致 6. 修改复选框后应直接查询 交易状态和领域和方法学搜索 7. 只用在待审批时修改 不应允许待审批资产上架 8. 信用和…...

P3983 赛斯石(赛后加强版)踢姐

简要题意 题目链接 商家手里有 \(si\) 个重量为 \(1\) 的赛斯石,每两个塞斯石可以合并为一个重量更大的塞斯石,最大重量不能超过 \(10\) ,合并得到的塞斯石的重量为先前两个塞斯石的重量总和,每种重量的塞斯石售价不同,现在一共有 \(10\) 种载重不同的船,每艘船的租金和载…...

huggingface hub 离线模式

最近在一个新集群上,计算节点不能联网,只有特殊节点可以联网。 现在的代码仓库依赖 huggingface hub 很严重,模型和数据集只能在特殊节点先下载好,然后在计算节点加载缓存。 为了不用绝对目录,可以设置环境变量 HF_HOME: export HF_HOME="dir_to_pub/.cache/huggin…...

鸿蒙应用开发环境搭建全攻略

鸿蒙应用开发的第一步是搭建稳定高效的开发环境。一个配置完善的开发环境能够显著提升开发效率,减少后续开发过程中的兼容性问题。本文将系统讲解从环境准备到项目创建的完整流程,帮助开发者快速上手鸿蒙应用开发。 鸿蒙系统及开发基础概述 鸿蒙系统(HarmonyOS)是华为推出的…...

深度学习求导原理深度解析

在深度学习的黑盒世界里,梯度计算如同神经网络的中枢神经系统。理解张量运算的反向传播机制,是打开这个黑盒的金钥匙。本文将穿透数学表象,揭示转置(Transpose)、求和(Summation)等关键算子背后的微分本质。 一、张量运算与梯度本质 张量运算的梯度本质上是线性变换的逆…...

ingress 配置说明

1、需求:testinfo.org域名下的所有子域名都转发到pgs-gateway的service。试了以下配置, - host: "*.testinfo.org" 不生效apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: pgs-gateway-ingress# 注解(annotations)取决于你使用的Ingress Control…...