Codeforces Round #440 Div. 2 D. Something with XOR Queries

MobaXterm终端工具个人学习版安装包及常用配置备份 资源包含 MobaXterm 个人版的安装包以及日常运维常用的基础配置备份文件。适用于网络工程师及运维人员用于日常的服务器管理、SSH 连接及串口调试。 压缩包内附带了个人整理的软件使用技巧与配置说明(仅供个人学习参考)。请各位同行下载后注意,技术工具请尽量支持官方正版,本资源仅供个人测试与交流使用,切勿用于商业环境。 立即下载

题意:交互题。给一个排列p和每个数对应的位置b,你可以询问2n次,每次两个数i,j,返回p[i]^b[j],求序列p有多少种排列情况,并输出任意一种。

分析:询问所有0,i和i,0,之后就能得知所有数的两两异或,然后就枚举第一个数是什么,暴力计算即可。

c[i][j]=c[i][0] ^ c[0][j] ^c[0][0],因为:c[i][j]=a[i]^b[j]=a[i]^b[0]^a[0]^b[j]^a[0]^b[0]=c[i][0]^c[0][j]^c[0][0]

其中c[i][j]=a[i]^b[j]。

#include<iostream>
#include<iomanip>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<sstream>
#include<cstdlib>
#include<time.h>
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define repp(i,n,a) for(int i=n;i>=a;i--)
#define ll long long
#define ull unsigned long long
#define mem(a,x) memset((a),(x),sizeof ((a)))//x只能是0或-1或false或true
#define debug(x) cout<<"X: "<<(x)<<endl
#define de cout<<"************"<<endl
#define lowbit(x) ((x)&(-x))
#define lson rt<<1
#define rson rt<<1|1
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) a*b/(__gcd(a,b))
#define inf 0x3f3f3f3f//1e9+6e7
#define Eps 1e-8
#define Mod 1e9+7
#define maxn 100010
const double pi = acos(-1.0);
using namespace std;
int a[5010],b[5010];
int c[5010][5010];
int aa[5010],bb[5010];
int main()
{
    int n;
    cin>>n;
    rep(i,0,n-1)
    {
        cout<<"? 0 "<<i<<endl;
        fflush(stdout);
        scanf("%d",&c[0][i]);
    }
    rep(i,0,n-1)
    {
        cout<<"? "<<i<<" 0"<<endl;
        fflush(stdout);
        scanf("%d",&c[i][0]);
    }
    rep(i,0,n-1)
        rep(j,0,n-1)
            c[i][j]=c[i][0]^c[0][j]^c[0][0];
    ll ans=0;
    rep(i,0,n-1)
    {
        a[0]=i;
        rep(j,0,n-1)
            b[j]=c[0][j]^a[0];
        rep(j,1,n-1)
            a[j]=b[0]^c[j][0];
        int f=0;
        rep(i,0,n-1)
        {
            if(a[b[i]]==i)
                continue;
            else
                {f++;break;}
        }
        if(f==0)
        {
            ans++;
            if(ans==1)
            {
                rep(i,0,n-1)
                    {aa[i]=a[i];bb[i]=b[i];}
            }
        }

    }
    cout<<"!"<<endl<<ans<<endl;
    rep(i,0,n-1)
        cout<<aa[i]<<" ";
    return 0;
}

 

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取 立即下载

相关推荐

双有源桥(DAB)进阶:EPS调制策略与Matlab/Simulink仿真实践

本文深入探讨了双有源桥(DAB)的扩展移相(EPS)调制策略及其在Matlab/Simulink中的仿真实践。通过分析EPS的两种黄金调制策略——回流功率消除和电流应力优化,结合实际工程案例,展示了如何提升DAB系统的效率和性能。文章还详细介绍了Simulink模型搭建要点和关键仿真结果,为工程师提供了实用的技术参考。

weixin_33734785的博客 484

Codeforces Round #440(Div.2)

一句话题意: A:给出两个长为\(n\),\(m\)的的数组,每个数在\(1\)到\(9\)之间,求出一个最小的数使得至少有一位出现在一个数组中,且至少有一位出现在另一个数组中。\(n,m\leq9\) B:给出一个长度为\(n\)的数组\(a\),将它分成\(k\)段,最大化每一段最小值的最大值。\(1\leq{k}\leq{n}\leq10^5,-10^9\leq{a_i}\leq1...

V469584691的博客 203

WSL2 Ubuntu复现FoundationPose项目(docker)

复现一个基于深度学习的物体姿态估计框架FoundationPose项目,使用docker,WSL2

woaidawangwang的博客 2000

Codeforces Round #440 D. Something with XOR Queries(交互|异或)

原题连接:http://codeforces.com/contest/872/problem/D 题目大意:交互题,要求在2n次询问后,得出隐藏的数列 思路:2n次询问是关键点,因为我们只能获取异或相关的信息,所以就要枚举首位取值p0,然后如果根据首位推出其他pi呢,由于我们只能获取异或相关的信息,所以我们可以考虑pi = pi^p0 ^p0 ,那pi^p0怎么获得呢?这就是我们2n次

可我只是梦呓,半生半生的无力 251

基于STM32避障/循迹/蓝牙遥控小车的硬件与软件底层设计

1、实现2m的自动直线行驶,要求左右偏移不大于10cm。2、车载显示屏显示车辆当前行驶速度或车辆运行时间,当前方20cm内出现障碍物时显示与前方障碍物的距离,车每次转弯蜂鸣器报警,同时通过左右指示灯指示转弯方向。3、依次驶过障碍物①②③④,且不触碰障碍物。4、成功进行调头转弯,行驶过程中车轮不碾压黑实线。5、在车道指定位置停车且不越界。6、通过红外、蓝牙、WiFi等任意一种方式实现对小车的控制,使其前进、后退、左转、右转。

2301_78758161的博客 1万+

AUTOSAR&UDS 理论要点及isolar实战-DEM模块

从这节开始,将讲解UDS诊断中非常重要的知识点:故障事件触发、故障信息上报、故障信息处理、故障信息存储和故障系统降级,后续会陆续更新。

cqaa11的博客 552

Codeforces Round #440 (Div. 1) B. Something with XOR Query

题目大意给一个排列p和每个数对应的位置b,你可以询问2n次,每次两个数i,j,返回p[i]^b[j],求最后如果询问n^2次都不能确定的排列个数。题解询问所有0,i和i,0,之后就能得知所有数的两两异或(a[i][j]=a[i][0] ^ a[0][j] ^a[0][0]),然后就枚举第一个数是什么,暴力计算即可。#include<iostream> #include<cstdio> #includ

mengbi_er的博客 575

2024全国村级行政边界数据

五级行政区划:村边界数据产品涵盖五级行政区划:(一级行政区)省级行政区共31个其中:(台湾、香港、澳门除外);(二级行政区)地级行政区共334个其中:7个地区、3个盟、30个自治州、294个地级市;(三级行政区)县级行政区共2851个其中:1355个县、117个自治县、49个旗、3个自治旗、363个县级市、962个市辖区、1个林区、1个特区;(四级行政区)乡级行政区共40497个其中:11626个乡、1034个民族乡、20117个镇、7566个街道、151个苏木、1个民族苏木、2个县辖区公所;

J_Giser的博客 3232

codeforces 915 E 896 C 珂朵莉树

珂朵莉树(Chtholly Tree),一种基于std::set的暴力数据结构,是由某毒瘤在2017年的一场CF比赛中提出的数据结构,原名老司机树(Old Driver Tree,ODT)。由于第一个以珂朵莉树为正解的题目的背景以《末日时在做什么?有没有空?可以来拯救吗?》中的角色——珂朵莉为主角,所以这个数据结构又被称为珂朵莉树(Chtholly Tree)她主要处理区间修改、查询问题,在数据随...

flyzer的博客 668

tsmc12: m0po max length问题(H384.M0_PO.L.1)

手动调整可以挪cell,制造上下两个row相对的至少一个site的空间,通过插普通filler来解决,这里需要注意的是,tsmc12有via0的规则,需要让via0落在via0 grid上。在pt eco之后会有一些m0po max length问题出现,大部分问题都可以通过替换decap来解决,少部分由于局部density过高,需要手动调整。更多学习内容请关注「拾陆楼」知识星球。#ICC2中替换decap的参考脚本。

m0_61544122的博客 791

(持续更新中!)详解【计算机类&面试真题】军队文职考试 ——第二期(真题+解析)| 网络协议的三个核心要素;交互式系统中的非剥夺策略;中断和陷入的区别;可变分区管理中的硬件机制;数据库系统的优点

本篇博客将讨论军队文职面试(计算机类)的几个关键问题。我们将介绍网络协议的核心要素(帮助你理解网络通信的基本原理)、交互式系统中的非剥夺策略(解释为何这是一个优秀的策略以及其对用户体验、系统稳定性和可预测性的影响)、中断和陷入的区别(从引起原因、处理机制、权限级别和应用等方面进行阐述)、可变分区管理的硬件机制以及数据库系统与文件系统的优点比较。通过阅读本文,您将深入了解这些话题,为面试准备和实际应用提供有价值的知识。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 1707

网络流 最小费用最大流

网络流裸题 HDU 3549 Sample  input: 2 3 2 1 2 1 2 3 1 3 3 1 2 1 2 3 1 1 3 1 Sample output: Case 1: 1 Case 2: 2 #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;alg...

flyzer的博客 647

在 SAP SD 模块里,销售订单号既可以由系统“自动”产生,也可以由用户“手工”输入,核心取决于“号码段(Number Range)”与“订单类型(Sales Document Type)”这两处配

SAP销售订单编号配置指南:系统提供内部自动编号和外部手工编号两种方式,通过VN01定义号码段(内部/外部),VOV8分配给订单类型并设置"ExtNo.Rq"选项即可切换。高阶应用支持灵活编号(如加前缀)或通过增强出口完全自定义编号规则。配置时需注意号码段创建、分配及传输问题,常见故障包括号码范围不存在或配置错误。核心是"号码段+订单类型"的组合控制编号生成方式,满足从简单到复杂的业务需求。

金牌架构师 531

Gym - 101652 部分题解

题目链接1题目链接2 又是一场和库里布莱恩特的菜鸡互啄,这次还是三星gym,还是两个人一起做,比上次还惨,才6个题。 这场的题感觉很简单,就是有点坑,第二题是多组输入但题里并没有说,骰子那题也是大水题,就是题意难懂,机器人那题也是题目简单,但题意难懂。分块除法,新知识点。BR那题,转化,然后求最大子段和,没想到。还有就是二分,二分真的太好用了。 Gym - 101652ZForbid...

flyzer的博客 627

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Codeforces Round #598 (Div. 3) codeforces 1256

题目链接 昨天晚上的cf,和程磊开黑打的,听说div3好上分,本来还指望这场上130分直接把颜色改了,没想到翻车了......就过了俩题,A和D过了,B题是个贪心,没写好。 A水题。 B: 题意:给你一个n的全排列,你可以操作n-1次(或者少于n-1次),问操作完后使字典序最小,输出这个字典序最小的排列。对于每种操作,你可以选一个数i(1<i<=n-1),然后交换a[i]和a[...

flyzer的博客 448

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

codeforces 912 D. Fishes

题目链接 题意:有一个n×m的鱼塘,有一张r×r的渔网,现在往池塘里面放k条鱼(每个格子只能放一条鱼), 现在撒网的地方是随机的(必须在池塘内),问能捕的鱼的期望值最大是多少? 思路:BFS+优先队列 感觉很多题都是这么搞得,bfs加优先队列,然后队列里面存的都是结构体,需要重载运算符。 这题也是,只要挑选出前k个贡献最大的点就行了,判断每个点是否计算过,需要用map和pair,不能用vi...

flyzer的博客 404

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Codeforces 877 Round #442 (Div. 2) E. Danil and a Part-time Job

题目链接 拖了这么多天,终于把这个题过了。 题意:一棵有根树, 每个节点可以是1或者0, 两种操作: 1. pow v: 将v节点的子树中所有节点的值反置(1变0, 0变1, 相当于异或1) 2. get v: 输出v节点的字数中1的个数 DFS序+线段树 #include<iostream> #include<iomanip&...

flyzer的博客 398

POJ 2341 优先队列

题意:汽车要行驶L单位的距离。最开始,汽车上有P单位的汽油,汽车走一单位路程要消耗一单位1汽油,如果汽车在形式途中汽油耗尽,那么将无法继续前行。途中有n个加油站,第i个加油站距离起点有a[i]单位的距离,且能加b[i]单位的油。问到达终点所需的最少加油次数。 Solution:这题可以理解为,在到达加油站时,就获得了一次在之后的任何时候都可以加b[i]单位汽油的权利,而在之后需要加油的时候,就认...

flyzer的博客 384

SPFA算法 最短路

spfa求最短路 有一篇讲解spfa的博客,讲的不错:最快最好用的——spfa算法 POJ 2387  Til the Cows Come Home 最短路裸题 input: 5 5 1 2 20 2 3 30 3 4 20 4 5 20 1 5 100 output: 90 直接模拟spfa算法过程: #include &lt;iostream&gt; #include &...

flyzer的博客 379

codeforces 911 F. Tree Destruction

题目链接 题意: 给定一棵树,每次可以选定树上的两个叶子,并删去其中的一个。答案每次加上两个选定的叶子之间的距离。求最后答案的最大值。 思路 首先,距离树上的任意一个节点最远的节点一定是某条直径的某个端点。 首先求出树的某一条直径,令其端点分别为L, R。把L看成树的根,那么R一定是叶子结点。对于那些非直径上的点,离他们最远的点肯定是L或R中的一个(可能也有其他的,但是L或R肯定已经最大...

flyzer的博客 369

CodeForces - 1038C Gambling 模拟 贪心

题意弄懂了就非常简单。 题意:A和B做游戏,开始的时候,每个人都有n个数,A先手,两人轮流执行,轮到某个人的时候,他有两种操作,一种是把对方的数拿走扔掉,另一种是拿走自己的数加到自己的分数上,直到两个人的数全都没有了,游戏结束。假设两个人都足够聪明,问最终A的得分与B的得分的差是多少。 Solution:模拟,贪心。因为两个人的数全部拿走游戏才算结束,并且每个人每次操作都会拿走一个数,所以两个...

flyzer的博客 368

CodeForces - 1038D Slime 思维

推荐一边个人认为比较好的博客:https://blog.csdn.net/qq_37594941/article/details/82589288 题意:给出一个长度为n的数列,每个数都可以和左边的数或者右边的数结合(紧挨着的),结合后的结果为结合的数减去被结合的数得到的值,结合n-1次后,只剩下一个数,问这个数最大是多少。 Solution:只要弄明白了下面这个事实,这个题就好做了:至少有一...

flyzer的博客 349

Gym 101466 部分题解

题目链接 纪念一下和库里布莱恩特的这场菜鸡互啄。 3星Gym,一共做出来7个题。感觉最大的收获就是意识到了二分的重要性,还有就是学习到了一种新的排序方法——计数排序(好像又叫桶排序)。下面根据题的难度从简到难记录一下。 H题: 按照题意打印即可。 #include<iostream> #include<iomanip> #include<cstdio&gt...

flyzer的博客 341

POJ 3468 线段树区间更新

参考:poj3468(线段树区间更新&amp;区间求和模板) 题目链接:http://poj.org/problem?id=3468 题意: 输入 n, m表初始有 n 个数, 接下来 m 行输入, Q x y 表示询问区间 [x, y]的和;          C x y z 表示区间 [x, y] 内所有数加上 z ; AC_code: #include&lt;iostream&g...

flyzer的博客 336

POJ1386Play on Words(欧拉回路)

转自:POJ1386Play on Words(欧拉回路) 【题意】这个就相当于成语接龙,需满足前一个单词的尾字母与后一个的首字母相同。然后就是问是否 存在欧拉通路。 【分析】用两个数组存每个字母的入度与出度,再用vis[]判断字母是否出现,然后并查集判断是否联通。 定理1:无向图G存在欧拉通路的条件是:G为连通图,并且G只有两个奇度节点或者无奇度节点。 推论1:(1)当G是仅有两个奇度...

flyzer的博客 328

2019 Multi-University Training Contest 6

Stay Real 题意:给你一个树,每个点有点权,并且编号为 i 的点的父亲节点是 i/2,1为根节点,根节点没有父亲节点。A和B两个人轮流取点,只能选叶子节点,选完之后这个点从从树上删除,并且这个人叶子节点的点权加到这个人的得分上。并且题目保证,父亲节点的点权一定大于子节点的点权。A和B两个人都想让自己的得分最高,A先手,输出A和B的最终得分。 用优先队列贪心即可,每次贪心选择点权最大的叶...

flyzer的博客 327
上一篇: Codeforces Round #440 Div. 2 C. Maximum splitting
下一篇: Codeforces Round #440 Div. 2 E - Points, Lines and Ready-made Titles
flyzer
博客等级 码龄9年 27粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值