郑州集训Day4 [小Cat与小鲜肉]
考试的时候由于没有想出这道题就弃疗了
发现主要还是自己姿势不够
【问题描述】
\(P\) 校某宿舍人才辈出,其舍长图书馆男神因被偷拍侧身照而在网络上一票走红。
小鲜肉 \(SJY\) 是小 \(Cat\ Rainbow\) 的好朋友,他也是该宿舍的一员。作为一名著 名的程序设计师,小鲜肉 \(SJY\) 不但注重萌萌哒的外表,还掌握了无数的黑科技。
有一天,\(SJY\) 制造了一块比特板,这个比特板有 \(2^N\)个比特元,编号为 \([0,2^N-1]\)。 每个比特元有一个饱和值 \(T\),可以接收一个\([0, 2^M-1]\)之间的整数作为输入信号,并 产生整数 \(P\) 作为固定的输出信号。当编号为 \(i\) 的比特元接收到输入信号 \(j\) 时,将 生成 \(W(i,j)\)枚比特币。
相似的比特元之间还会产生叠加效果。如果两个比特元的编号 \(a\) 和 \(b\) 在二进 制下只有一位不同,并且两个比特元中的至少一个接收到的输入信号不小于其饱 和值时,这两个比特元将额外生成 \(P_a\ xor\ P_b\) 枚比特币。
\(SJY\) 希望给每个比特元适 当的输入信号,使比特板生成的比特币总数尽量多。\(SJY\) 认为这个问题太简单了, 作为一名小鲜肉,比赚钱更重要的是出去赢得无数妹子的目光,所以他把这个问 题交给你解决。
【输入格式】
从文件 \(sjy.in\) 中读入数据。 第一行两个整数 \(N\),\(M\)。 第二行 \(2^N\)个整数 \(T_i\),表示每个比特元的饱和值。 第三行 \(2^N\)个整数 \(P_i\),表示每个比特元的固定输出信号。 接下来 \(2^N\)行每行 $2^M \(个整数\) W(i,j)$,比特币是虚拟货币,所以 \(W(i,j)\)可能是 负数。
【输出格式】
输出到文件 \(sjy.out\) 中。 一个整数,表示最多能生成的比特币数。
【数据规模与约定】
对于 \(20\%\)的数据,\(1≤n≤3\), \(1≤m≤2\)。
对于另外\(20\%\)的数据,\(T_i=0\) 或 \(2^m\)。
对于另外 \(20\%\)的数据,\(m=1\)。
对于 \(100\%\)的数据,\(1≤n≤8\),\(1≤m≤8\),\(0≤T_i≤2^m\), \(0≤P_i\), \(|W(i,j)|≤1024\)。
【非常垃圾的题意简述】
一看题意感觉非常麻烦,之后努力分析了一下大概是这个样子
有\([0,2^n-1]\)个机器给每一个机器一个\([0,2^m-1]\)的信号
如果\(i\)机器得到了\(j\)信号,那么就会产生\(W(i,j)\)的收益(可能存在\(W(i,j<0)\))
如果两个机器编号在二进制下只有一位不同的话且至少有一个选择的信号大于某一个给定值的话就会产生一个收益,由于这个收益来源于异或,所以这个收益一定为正
【并不存在的分析】
看到这个数据范围基本上是网络流了
有价值这种东西就基本不可能是最大流了,而且这种价值不会重复计算的问题一般不会是费用流
基本确定算法是最小割了
经过一番思考,我们发现一个机器的信号只可能是两种,一种是大于等于\(T_i\)的最大值,这样能去产生那个异或值的收益,要么激素hi小于\(T_i\)的最大值这样并不能产生收益所以要尽量选择大的呀
于是有一个非常简单的套路,就是和原点相连表示不饱和,和汇点相连表示饱和,边的容量就是相应的最大值
但是这个时候两个问题没有解决
负边的边权如何解决
何如限制使得两个点在同时和原点相连的时候割掉一条边
于是考试的时候就疯狂建模,最后成功自闭
首先第一个问题其实蛮好解决的,因为这个题的话每个点必然会和原点和汇点之一相连,所以我们可以直接给每条边加上一数使得其变为正数,最后在把这些加上去的正数减掉就好了
之后第二个问题好像还是很困难的样子,最大权闭合图好像确实做不到啊
但是发现这个题的限制关系很有特点,就是两个机器二进制下只有一位不同
那也就保证了二进制里\(1\)的个数只相差了\(1\),那就一定说明奇偶性是不同的
于是我们可以考虑对所有的机器按照二进制下\(1\)的个数的奇偶性分组,对于其中的一组我们还是用和\(S\)相连表示不饱和,和\(T\)相连表示饱和
但是对于另一组我们令和\(S\)相连表示饱和,和\(T\)相连表示不饱和
由于我们的分组保证了我们需要加的限制一定存在于两个不同的分组之间,于是我们现在只需要限制两个点一个和\(S\)连一个和\(T\)的时候需要割掉一条边就好了,这个就非常显然了直接把那个异或值当作边权把两个点连起来就好了
就这样解决了
代码就咕咕咕了
郑州集训Day4 [小Cat与小鲜肉]的更多相关文章
- Loj #6069. 「2017 山东一轮集训 Day4」塔
Loj #6069. 「2017 山东一轮集训 Day4」塔 题目描述 现在有一条 $ [1, l] $ 的数轴,要在上面造 $ n $ 座塔,每座塔的坐标要两两不同,且为整点. 塔有编号,且每座塔都 ...
- loj6068. 「2017 山东一轮集训 Day4」棋盘 二分图,网络流
loj6068. 「2017 山东一轮集训 Day4」棋盘 链接 https://loj.ac/problem/6068 思路 上来没头绪,后来套算法,套了个网络流 经典二分图 左边横,右边列 先重新 ...
- Loj 6068. 「2017 山东一轮集训 Day4」棋盘
Loj 6068. 「2017 山东一轮集训 Day4」棋盘 题目描述 给定一个 $ n \times n $ 的棋盘,棋盘上每个位置要么为空要么为障碍.定义棋盘上两个位置 $ (x, y),(u, ...
- NOIP2017 国庆郑州集训知识梳理汇总
第一天 基础算法&&数学 day1难度测试 如果要用一个词来形容上午的测试,那真是体无完肤. 成绩: 题目 成绩 评价 T1 50 一般 T2 10 大失所望 T3 0 差 基础算法 ...
- 郑州集训day1自闭有感
被拉到郑州培训了 考了一上午莫名自闭 帮助慎老师拿到\(rk1\)非常开心 简述一下题目吧 T1.まんふは函数 原题地址 考原题还行 据说是\(Huffman\)树 在成爷爷的再三讲解下,我终于明白了 ...
- 集训Day4
在bzoj刷了好几天杂题感觉手感不是很好 继续回来集训一下 好几天没更新了啊... bzoj1875 一个无向图,一个人要从起始点走$t$步走到终点,不能沿着刚走过来那条边回去,问有多少种走法 $m ...
- 考前停课集训 Day4 雷
Day 4 今天Rating掉了两百多 为什么呢 因为是真实力打的 倒数第三 没什么好说的了 这才是我的真实水平 强的人一如既往强 作弊的人一落千丈. 只有我.是的,只有我. 被老师嘲讽了,哎,您真的 ...
- 省队集训 Day4 a
[题目大意] 求有多少区间只包含1个出现次数为1的数. $1\leq n \leq 5*10^5, 0 \leq a_i \leq 10^9$ [题解] 考虑枚举右端点,设这个数上一次出现位置为pre ...
- 【清华集训】小Y和地铁
图已挂,前往luogu 题目: 小 $\rm Y$ 是一个爱好旅行的 $\rm OIer$.一天,她来到了一个新的城市.由于不熟悉那里的交通系统,她选择了坐地铁.她发现每条地铁线路可以看成平面上的一条 ...
随机推荐
- zabbix 另一种方式取 zabbix-sender
一,zabbix-sender介绍 这种模式是两主机并没有agent互联 使用zabbix-serder的话适用那种没有固定公网IP的,实时系统数据监控操作 还一个实用为零延迟数据监控, 本省zabb ...
- easyUI----grid
1.设置标题行高 .datagrid-header-row td{background-color:rgb(15,185,234);color:#fff;height:35px ;font-size: ...
- js判断文件是否存在的方法
在做电力监控项目的时候,有一个需求就是左右布局的框架,点击左边的图形文件地址,然后去文件夹中找到文件,再在右边出现对应的图形文件,但是有些文件可能是配置的时候有问题,找不到文件,所以js需要判断,以下 ...
- android应用签名详解
1.Eclipse工程中右键工程,弹出选项中选择 android工具-生成签名应用包: 2.选择需要打包的android项目工程: 3.如果已有私钥文件,选择私钥文件 输入密码,如果没有私钥文件见 第 ...
- ife task0003学习笔记(三):JavaScript闭包
一.this易错分析 在学习闭包的时候,有一个概念this很重要,关于this的理解,下面3种情况:this指向谁? fn.call(obj1); obj2.fn() fn() 答案是obj1 obj ...
- 【计算机网络】HTTP请求和响应格式
HTTP请求格式:<request-line><headers><blank line>[<request-body>]说明:第一行必须是一个请求行(r ...
- rockmongo配置文件config.php
使用编辑器(比如notepad或者VI/VIM命令)打开RockMongo安装目录下的config.php,所有的配置都在这里. 认证 mongo_auth 和control_auth 在开始使用Ro ...
- bzoj 5305: [Haoi2018]苹果树
Description Solution \(n\) 个点的二叉树的方案数是 \(n!\) 证明十分显然:新加入的点占掉了 \(1\) 个位置,新加了 \(2\) 个位置,那么多出来一个位置,所以第 ...
- e.target和e.event和event.srcElement
e.target 是目标对象,e.event是目标所发生的事件,event.srcElement捕获当前事件作用的对象 1. $(function(){ $("li:has(ul)" ...
- 6、Angular Route 路由
1.没有嵌套路由 类似 ui-route 上述的html用红字标记的是必须导入的.这是因为:路由并不在ng2中,需要我们额外引入,另外我们需要设置base href,这是个什么东西呢?相当于我们后续所 ...