传送门
学过 FWTFWTFWT 看到操作 222 不难可以联想到 FWTFWTFWT
考虑一遍 ⊕\oplus⊕ FWTFWTFWT 会把 ata_tat​ 变成什么
at′=((−1)bitcount(x&t)+(−1)bitcount(y&t))axa_t'=((-1)^{bitcount(x\&t)}+(-1)^{bitcount(y\&t)})a_xat′​=((−1)bitcount(x&t)+(−1)bitcount(y&t))ax​
考虑这个东西 (−1)bitcount(x&t)+(−1)bitcount(y&t)(-1)^{bitcount(x\&t)}+(-1)^{bitcount(y\&t)}(−1)bitcount(x&t)+(−1)bitcount(y&t)
当 bitcount(x&t)bitcount(x\&t)bitcount(x&t) 和 bitcount(y&t)bitcount(y\&t)bitcount(y&t) 同奇偶时才有值
实际上就是 bitcount((x⊕y)&t)bitcount((x\oplus y)\&t)bitcount((x⊕y)&t) 为偶数
而只需要知道互不相关的 nnn 个 ttt 就可以解出 x⊕yx\oplus yx⊕y
并且题目又是随机的,那么期望做 O(n)O(n)O(n) 遍,询问次数期望 O(n2)O(n^2)O(n2)
一个小细节,FWTFWTFWT 矩阵为 A=(111−1)A=\begin{pmatrix}1 & 1 \\ 1 & -1\end{pmatrix}A=(11​1−1​),这玩意儿并不满足 AAT=IAA^T=IAAT=I
但是它满足 AAT(120012)=IAA^T\begin{pmatrix}\frac{1}{2} & 0 \\ 0 & \frac{1}{2}\end{pmatrix}=IAAT(21​0​021​​)=I
所以只要令 A=(121212−12)A=\begin{pmatrix}\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}}\end{pmatrix}A=(2​1​2​1​​2​1​−2​1​​) 就好了

# include "quantumbreak.h"
# include <bits/stdc++.h>
using namespace std;
typedef long long ll;const double sq(1.0 / sqrt(2));static vector <int> zero;
static double A[2][2];
static int cnt[1 << 20];inline int Check(int v, int n) {int i;for (i = 0; i < zero.size(); ++i) if (cnt[v & zero[i]] & 1) return 0;return 1;
}int query_xor(int n, int t) {int i, j, s = 1 << n, flg = 0;memset(cnt, 0, sizeof(cnt)), zero.clear();A[1][1] = -sq, A[0][0] = A[0][1] = A[1][0] = sq;for (i = 0; i < s; ++i) cnt[i] = cnt[i >> 1] + (i & 1);for (i = 1; i <= 23; ++i) {for (j = 0; j < n; ++j) manipulate(A, j);zero.push_back(query());}for (i = 1; i < s; ++i) if (Check(i, n)) return i;return 233;
}

UOJ#328. 【UTR #3】量子破碎相关推荐

  1. [交互][FWT] UOJ #328. 【UTR #3】量子破碎

    SolutionSolutionSolution 矩阵 A=[111−1]A=[111−1] A=\left[ \begin{matrix}1 & 1 \\1 & -1 \\ \end ...

  2. UOJ Test Round 3

    A.几何冲刺 感觉自己的智商爆炸. 显然是按照极角序排列之后依次加点,判断是否有点. 保证一个点在两个角的范围内就OK了啊,想了半天叉积... #include "triangles.h&q ...

  3. 3分钟看完Build2016 Day 1 Keynote

    Build 2016 Day 1 Keynote 直播结束,M姐不得不说,没看直播的真心错过了一大波黑科技和充值我软信仰的大好时机,不过别后悔,M姐精选了干货,一次性让你补充信仰.没看的真心会被甩开八 ...

  4. 一体式计算机内存怎么变大,一体机电脑内存多大合适?

    不少用户对电脑的内存大小比较茫然,比如我们会经常听到,有人问 "你的电脑内存是多少?"不少人会回答:"120G.500G". 实际上提问者就是想知道电脑运行内存 ...

  5. 2kB也能做出好玩的游戏?别惊讶,你一定玩过

    3A游戏大作层出不穷,这些游戏画面精美.特效逼真.打斗精彩,这些优点都建立在庞大的游戏体积和高要求的硬件配置上. 国产3A大作<黑神话悟空> <量子破碎>.<GTA5&g ...

  6. 2016年主机游戏大作全方位预测

    2015已经和我们正式告别,而进入2016年,按照惯例我们当然还是要来提前展望这一年里的游戏阵容,看看这当中会有多少让你感兴趣,是否会到时候忙到玩不过来,痛并快乐着来享受这场盛宴. 和一早被称为游戏大 ...

  7. 计算机保存的游戏,100个G,你的电脑够存吗?盘点世界上最大的几个游戏~

    原标题:100个G,你的电脑够存吗?盘点世界上最大的几个游戏~ 天天讨论关于哪个游戏好玩,哪个游戏画面做的好,今天我们就来讨论一下,世界上最大的几款游戏,全部是超过100G的主哟~~ 我这里就总结了7 ...

  8. 【GDC翻译】在“Control”中学到的程序化破坏系统的经验

    0. 介绍 大家好,欢迎来到<从"Control"中学到的程序化破坏系统的经验>. 我的名字是 Johannes Richter,我是 Remedy 的首席特效师. 我 ...

  9. 《复联4》中这位科学家的理论是时间穿越关键!钢铁侠差点因此拒绝出手 | 剧透预警...

    本文授权转载自DeepTech(ID:deeptechchina) 作者 | 半岛铁雄 2019 年 4 月 24 日,<复仇者联盟 4:终局之战>在大陆上映.电影很精彩,而在这之中,钢铁 ...

最新文章

  1. python注入_python的常见命令注入威胁
  2. 一文搞懂转置卷积(反卷积)
  3. centos6.7 64位环境下部署MySQL-5.7.13
  4. 数据科学| 蛋白向量分析
  5. python使用正则表达式判别字符串是否以一个大写字符起始而跟随了一些小写字符
  6. 华月互网获得2012全国十大IDC服务商
  7. 架构之技术复杂度与业务复杂度
  8. Datatable转实体 实体转换辅助类
  9. python把文件中的邮箱分类 保存到相应的文件里面
  10. ios懒人笔记应用源码
  11. 工程制图与计算机绘图实训任务书及参考资料,水利工程制图与计算机绘图实训探讨...
  12. 学弟啊,你代码能不能不要写得这么烂?
  13. 江南大学物联网工程学院数据库课程实验一作业1实验报告
  14. Tampermonkey中文文档(部分)
  15. CCD相机模数转换芯片时序简介
  16. 单片机c语言 步进电机,步进电机控制(单片机C语言).doc
  17. 嘀嘀和快的部分城市现异常 乘客叫车异常司机接不到单
  18. win7 系统下实现音量控制
  19. Adobe Flash Player 官方离线最新版下载地址
  20. 7月清北学堂培训 Day 1

热门文章

  1. 强化学习教程(四):从PDG到DDPG的原理及tf代码实现详解
  2. NOI / 1.2编程基础之变量定义、赋值及转换
  3. linux游戏龙芯能玩吗,历时三个月,我终于成功搭建了龙芯平台,竟可以玩cf和lol你敢信?...
  4. 腾讯汤道生:2020年加大投入产业互联网生态建设
  5. 新的樱桃键盘 好想要啊
  6. Google 东京奥运会 Doodle
  7. 给GitLab项目添加成员用户
  8. 七星配资沪指低频震荡
  9. 如何把一个网页设置快捷方式放到桌面上去,或者手机桌面当App一样使用
  10. Python之统计作图函数讲解(三)