二进制的神奇应用

2023-11-03

谜题:

这是一个在坐标轴上玩的,关于“坐标集合”({a1,a2,…,am},{b1,b2,…,bl}) 的游戏。 首先,Bob分别在坐标a1,a2,…,am放上一个球。接下来Bob分别在坐标b1+0.5,b2+0.5,…,bl+0.5挖了一个洞。最后Bib会将所有球往前推(往坐标变大的方向),让球滚进第一个遇到的洞里。如果有奇数个洞有最少一个球,Bob就赢得这场游戏。
现在Bob想知道对于n个集合S1,S2,…,Sn, 他可以在多少场“坐标集合”(Si,Sj) (i<j)的游戏中胜出。

Input

一个整数t,表示样例个数(t<=10)。每组样例第一行一个整数n (2≤n≤5000).
接下来n行分别有一个整数ki,表示集合Si的大小,ki后分别有ki个不同的整数Si,1,Si,2,…,Si,ki表示集合Si (1≤ki≤50,1≤Si,j≤50).

Output

每组样例输出一个整数表示Bob可以赢的游戏场数。

Sample Input

2
2
1 1
2 1 2
2
2 1 2
2 2 1

Sample Output

1
0
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=5005;
ll state[maxn];


int red(){
    char z=getchar();
    while (z<'0' || z>'9') z=getchar();
    int ans=0;
    while (z>='0' && z<='9') {
        ans=ans*10+z-'0';
        z=getchar();
    }
    return ans;
}

int main(){
    int t;
    int n,c,a;
    scanf("%d",&t);
    while(t--){
        n=red();
        for(int i=1;i<=n;i++){
            state[i]=0;
            c=red();
            for(int j=1;j<=c;j++){
                a=red()-1;
                state[i]|=1ll<<a;       //利用二进制进行保存
            }
        }
        int cnt=0;
        for(int i=1;i<=n;i++)
            for(int j=i+1;j<=n;j++){
                ll a1=state[i],a2=state[j];
                ll t1=a1&a2;      //直接进洞
                a1^=t1;  //把直接进洞的标记为0
                a2=~a2;  //把有洞的标记为0,无洞的标记为1
                ll a3=(a1+a2)&state[j]; //模拟进位,a1中某一位为1,2中某一位为0的情况是不可能存在的
                //所以会一直进位到出现2个0(a1为0,a2为1的时候还是会进位),此时便是前面的求球都进入这个洞
                //&state[j]是把原来有洞的地方的球取出来,因为可能某个位置为1的地方原来没有洞,
                //这种情况可能是两个1再有一位进位而产生的
                a3|=t1;
                int res=0;
                while(a3){
                    a3-=a3&(-a3);
                    res^=1;
                }
                cnt+=res;
            }
        printf("%d\n",cnt);
    }
    return 0;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二进制的神奇应用 的相关文章

  • vue设置全局时间格式化

    vue前台需要用户能看得懂的时间格式如常见的 2021 03 10 12 02 35 但是后台数据库则需要时间格式如LocalDateTime 2021 03 10T15 31 01 或者Date类型的 如果数据不经过处理 直接显示 肯定可
  • 方格运动问题

    常见的一个经典问题 给定一个方格子 另左上角坐标为 0 0 右下角坐标为 M N 从左上角开始每次只能向右走或者向下走 最后达到右下角的位置 求一共有多少种不同的路径 数学的想法 对于计算这个问题的时候 可以去思考 不管怎样 从上往下从左往
  • [Mac OS X] 如何解决 “dtrace cannot control executables signed with restricted entitlements”?

    本文转载并参考至 http stackoverflow com questions 33476432 is there a workaround for dtrace cannot control executables signed wi
  • 怎样解决电脑右下角弹出的广告

    根据此现象分析 应该是恶意网站或其他程序更改了系统注册表引起的 对于此类现象 一般先检查系统启动项 1 在 运行 对话框中输入 msconfig 并单击 确定 按钮 打开 系统配置实用程序 对话框 2 在 启动 选项中查找打开的网页启动项
  • pyautogui.locateOnScreen()扫描屏幕返回none问题

    我们有一张这样的图片 我们想用pyautgui模块的locateOnScreen 定位该图片在屏幕对应的位置 发现屏幕中明明存在改图片 但是扫描失败 找不到该图片 如下两张图 我们给locateOnScreen 括号里添加confidenc
  • 3DSMAX平时建模软件不会卡死,到了渲图时,渲染图出来了,软件就卡死了的问题是系统自带的输入法更新了和软件不兼容

    3DSMAX平时建模软件不会卡死 到了渲图时 渲染图出来了 软件就卡死了的问题是系统自带的输入法更新了和软件不兼容
  • 如何把GITLAB设置为简体中文

    如何把GITLAB设置为简体中文 直接步入正题 如图所示 登录git首页是这样 咱们需要点击个人头像下的preference 将跳转网页拉取到最下面 会有language一栏 将English改为简体中文 然后保存设置即可
  • 小技巧(8):Word中自定义目录,并设置自动目录的格式

    文章目录 一 对正文中的目录设置大纲级别 1 1 通过样式设置标题级别 1 2 通过段落设置标题级别 二 设定自定义目录格式 2 1 生成自定义目录 2 2 设置显示大纲级别 2 3 设置不同级别目录的显示格式 一 对正文中的目录设置大纲级
  • [小技巧] git 清理 repository

    使用如下命令可以快速清除 repository 里没有被 git 管理的文件 git clean xdf 如果要保留某些后缀的文件 如 txt 文件 使用如下命令 git clean xdfe txt 参考 http stackoverfl
  • Linux 下计算圆周率

    转自 http blog csdn net zhuying linux article details 7298465 oracle sor sys time echo scale 5000 4 a 1 bc l q 输出的是小数点后 位的
  • Mac 文件文本16进制数据查看

    准备 Sublime Text是mac上的一款优秀的文本内容查看 编辑工具 且其支持扩展插件 其中就包含 文本16进制内容查看插件 故须提前准备好Sublime Text 未安装的移步 下载 正文 安装步骤 1 Command Shift
  • 利用工厂模式和策略模式来替代if else

    对于代码写到一定地步 肯定会遇到很多业务代码的繁琐的if else分支 简单的几个条件可以if else几个 但是一旦后面的条件越来越多 有没有更好的替代让代码看起来没那么臃肿 更好维护 而不是一个if一个if的看过去 其实是有的 就是工厂
  • Java连接远程服务器debug

    日常我们debug是经常用的 但是本地还好说 远程debug就有点难度 而且有时候必须要在预演 测试环境的服务器去debug 举个例子 需要https 公网 域名之类的 测试服务器这些有些是配置的 但是你自己本地开发肯定不会有这些 就需要你
  • C#中File FileInfo 和Directory DirectoryInfo 类的区别

    老师在讲C 文件操作的时候讲的个类 功能类似 但用法有区别 他们都存在于systerm IO命名空间下 File和Directory的方法都是静态方法 FileInfo和DirectoryInfo的方法都是普通方法 老师建议是如果你要在某个
  • js获取当前月、上一月和下一月

    获得当前月 function getNowMonth var date new Date var year date getFullYear var month date getMonth 1 month month gt 9 month
  • 静默安装VC_redist.x64.exe

    始 为了使vs17开发的程序在新装的win10系统跑起来 过程 1 到微软官网 下载运行时库vc redist Download Visual C Redistributable Packages for Visual Studio 201
  • IDEA设置成白色背景

    遇到问题 对于习惯用eclipse的程序员本媛来说 真的不习惯Idea的黑色背景 看着就是别扭 解决办法 File Settings Appearance Behavior Theme换成 IntelliJ Light即可 注 IDEA默认
  • 制作及运行 WebUI(NovelAI)Docker 镜像

    准备 Novel AI 模型文件 下载地址 magnet xt urn btih 5bde442da86265b670a3e5ea3163afad2c6f8ecc 只需要部分下载其中的文件 必须的文件 文件 stableckpt anime
  • Gitee:如何快速的从Github上下载资源

    看不见的目录 首先呢让我们来了解一下git大家族 接下来我们进入正题 首先呢让我们来了解一下git大家族 Git Github Gitlab Gitee Git ce到底都是什么东西呢 git 是一种版本控制系统 是一个命令 是一种工具 g
  • ps导出图像自动修改dpi问题的处理

    问题 今天修改一个图片 一切都准备就绪后 只要一导出图片 像素不变 但dpi立刻就变成了96dpi 无论怎么修改就是这个值 但我的原值是300dpi 差的不是一点半点 最后在网友的帮助下解决 而且非常简单 解决办法 方法很是简单 就是不要使

随机推荐

  • jdk1.8 Lambda 实战

    我们用常用的实例来感受 Lambda 带来的便利 替代匿名内部类 过去给方法传动态参数的唯一方法是使用内部类 比如 1 Runnable 接口 new Thread new Runnable Override public void run
  • 【HJ40】统计字符

    题目描述 输入一行字符 分别统计出包含英文字母 空格 数字和其它字符的个数 本题包含多组输入 数据范围 输入的字符串长度满足 1 1000 输入描述 输入一行字符串 可以有空格 输出描述 统计其中英文字符 空格字符 数字字符 其他字符的个数
  • CSS字体

    CSS字体属性定义文本中的字体 指定字体 font family属性 指定在文本中使用的字体系列 如 body font family sans serif 从sans serif字体系列中选择一个字体 并将其应用到body元素中 CSS字
  • 关于idea中提交svn时一直显示performing VCS refresh

    vue前端项目会自动生成node modules文件夹 在首次上传版本到svn的时候 不要提交node modules文件夹 否则node modules文件也会在版本控制中 那么在npm install之后 灾难就来了 Version C
  • 21年新版kali安装

    第一步 官网下载kali系统镜像文件 官网地址 www kali org 访问kali官网 点击上方GET KALI 然后点击Bare Metal 旁边的Virtual Machines是专门为虚拟机设计的 相比更为轻量 安装过程也比较简单
  • 配置Dot1q终结子接口实现跨设备VLAN间通信示例

    示例图 一 实验目的 1 配置Dot1q终结子接口实现跨设备VLAN间通信示例 二 注意事项 1 Dot1q终结子接口和QinQ终结子接口不支持透传不带VLAN Tag的报文 收到不带VLAN Tag的报文会直接丢弃 2 由于三层以太网子接
  • 前端传输数组条件查询,myslq使用in

    mysql语句使用in条件查询 从前端获取数组 1 post请求体中的json对象 Data public class UserSearchParam String userName NotNull Integer pageNum NotN
  • maomi

    我到家啦 你今天怎么样 需要我帮忙查资料么 转载于 https www cnblogs com loverain archive 2009 07 02 1515416 html
  • 每日一题:7. 分糖果(C++)

    每日一题 7 分糖果 C 题目 Alice 有 n 枚糖 其中第 i 枚糖的类型为 candyType i Alice 注意到她的体重正在增长 所以前去拜访了一位医生 医生建议 Alice 要少摄入糖分 只吃掉她所有糖的 n 2 即可 n
  • Spring-Data-JPA +Sharding-jdbc+druid数据库连接池 实现数据库读写分离

    关于Sharding jdbc 简介 定位为轻量级Java框架 在Java的JDBC层提供的额外服务 它使用客户端直连数据库 以jar包形式提供服务 无需额外部署和依赖 可理解为增强版的JDBC驱动 完全兼容JDBC和各种ORM框架 适用于
  • JDBC之多种开源数据库连接池介绍

    目录 一 多种开源的数据库连接池 二 C3P0数据库连接池 三 DBCP数据库连接池 四 Druid 德鲁伊 数据库连接池 一 多种开源的数据库连接池 1 JDBC 的数据库连接池使用 javax sql DataSource 来表示 Da
  • Element-ui 使用详细介绍

    一 后台搭建 使用 vue admin template 来快速搭建后台管理 它包含了 Element UI axios iconfont permission control lint 这些搭建后台必要的东西 Element是 饿了么团队
  • 六、Docker安装微服务

    一 编译所有的所需jar包 二 上传到服务器 三 编写Docerfile FROM java 8 ADD registry center 1 0 SNAPSHOT jar registry center 1 0 SNAPSHOT jar E
  • js将数组中,每个元素中的逗号分隔的前两位相同的,第三位拼接到一起

    js重新组合数组中的元素 过程可能复杂了 尽力了 谁有简单的留言一下 互相交流学习一下 感谢 var arr 1 20 103 1 28 66 1 20 456 1 21 22 1 21 13 1 20 23 1 21 55 var cou
  • 从零搭建antv数据可视化大屏(轻量级vite-react-ts)

    摘 要 之前Ofter详细介绍过用Vue从零开始编写可视化大屏 今天我们来介绍下如何用React编写可视化图表 为什么我们还要学习React 因为轻量化 像antv可视化图表就全部用的React语言 虽然ant也出了个viser 支持Rea
  • Chrome 网页翻译扩展推荐

    1 沉浸式翻译 网页双语翻译扩展 免费使用 支持 Deepl Google 腾讯 火山翻译等多个翻译服务 支持 Firefox Chrome 油猴脚本 亦可在 iOS Safari 上使用 官网地址 Chrome 网页翻译扩展推荐 2 划词
  • 查找窗口句柄

    HWND SearchWindow CString strWinName 获得桌面窗口 CWnd pDesktopWnd CWnd GetDesktopWindow 获得第一个子窗口 CWnd pWnd pDesktopWnd gt Get
  • strong man

    1 执行力强 注意力放在面对问题 解决问题而不是抱怨上 2 有利他性 看白身的格局 有大局观 会从更高的维度去思考 有更大的责任感3 从容淡定 有足够的自信 对自己的信任和信念 不需要用力过猛 疲于奔命 4 内在自治 跟自己相处和谐 不自我
  • I like play indoor bicycle trainer

    Kurt kinetic road bicycle training machine is a bicycle trainer I bought for me This is a superb quality very silent and
  • 二进制的神奇应用

    谜题 这是一个在坐标轴上玩的 关于 坐标集合 a1 a2 am b1 b2 bl 的游戏 首先 Bob分别在坐标a1 a2 am放上一个球 接下来Bob分别在坐标b1 0 5 b2 0 5 bl 0 5挖了一个洞 最后Bib会将所有球往前推