题目链接:http://codeforces.com/contest/872/problem/D

题意:给你一个排列p和对应的位置b也就是说p[b[i]]=i,然后给你最多询问2*n次找出所有的p排列,然后任意输出一个。

题解:其实是一道水题要知道一共n个数询问2*n次也就是说能够询问p[0]^b[i](0<=i<n)和p[i]^b[0](0<=i<n)然后只要给p[0]赋一个值所有的值就都出来了然后就简单了。。

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int ans[5432][5432] , p[5432] , b[5432] , p_true[5432] , b_true[5432];
int main() {int n;scanf("%d" , &n);int x;for(int i = 0 ; i < n ; i++) {printf("? %d %d\n" , i , 0);fflush(stdout);scanf("%d" , &x);ans[i][0] = x;}for(int i = 1 ; i < n ; i++) {printf("? %d %d\n" , 0 , i);fflush(stdout);scanf("%d" , &x);;ans[0][i] = x;}int res = 0;for(int i = 0 ; i < n ; i++) {memset(p , -1 , sizeof(p));memset(b , -1 , sizeof(b));p[0] = i;for(int j = 0 ; j < n ; j++) {b[j] = (ans[0][j] ^ p[0]);}for(int j = 1 ; j < n ; j++) {p[j] = (ans[j][0] ^ b[0]);}int flag = 0;for(int j = 0 ; j < n ; j++) {if(p[b[j]] != j || p[j] >= n || b[j] >= n) {flag = 1;break;}}if(!flag) {res++;for(int j = 0 ; j < n ; j++) {p_true[j] = p[j];b_true[j] = b[j];}}}printf("!\n");printf("%d\n" , res);for(int i = 0 ; i < n ; i++){printf("%d " , p_true[i]);}printf("\n");fflush(stdout);return 0;
}

转载于:https://www.cnblogs.com/TnT2333333/p/7677569.html

codeforces 872 D. Something with XOR Queries(思维)相关推荐

  1. Codeforces Round #620 (Div. 2) E. 1-Trees and Queries 思维 + LCA

    传送门 文章目录 题意 思路: 题意 思路: 照例,先考虑不加边怎么做.由于可以经过重复的边或点,设aaa与bbb之间长度为lenlenlen,那么需要len<=klen<=klen< ...

  2. CodeForces - 1066C Books Queries(思维)

    题目链接:点击查看 题目大意:给出n次操作,每次操作分为以下三种:(假设现在有一个空的队列) L x,在最左端插入x R x,在最右端插入x ? x,查询若想要让x到达最右端或最左端,最少需要移除掉几 ...

  3. CFCC百套计划2 CodeChef December Challenge 2017 Chef And Easy Xor Queries

    https://www.codechef.com/DEC17/problems/CHEFEXQ 题意: 位置i的数改为k 询问区间[1,i]内有多少个前缀的异或和为k 分块 sum[i][j] 表示第 ...

  4. codeforces 808 E. Selling Souvenirs (dp+二分+思维)

    题目链接:http://codeforces.com/contest/808/problem/E 题意:最多有100000个物品最大能放下300000的背包,每个物品都有权值和重量,为能够带的最大权值 ...

  5. Codeforces 1264C/1265E Beautiful Mirrors with queries (概率期望、DP)

    题目链接 http://codeforces.com/contest/1264/problem/C 题解 吐槽:为什么我赛后看cf的题就经常1h内做出Div.1 C, 一打cf就动不动AB题不会啊-- ...

  6. Codeforces Round #587 C. White Sheet(思维+计算几何)

    传送门 •题意 先给一个白矩阵,再两个黑矩阵 如果两个黑矩阵能把白矩阵包含,则输出NO 否则输出YES •思路 计算几何题还是思维题呢? 想起了上初中高中做几何求面积的题 这个就类似于那样 包含的话分 ...

  7. Codeforces 766E Mahmoud and a xor trip(树形DP)

    题目链接 Mahmoud and a xor trip 树形DP.先考虑每个点到他本身的距离和,再算所有点两两距离和. 做的时候考虑二进制拆位即可. #include <bits/stdc++. ...

  8. CodeForces - 1559D2 Mocha and Diana (Hard Version)(思维)

    题目链接:点击查看 题目大意:给出两棵森林,每次可以同时在两个森林中增加同一条边,问最多可以增加多少条边,使得两个森林仍然还是森林 题目分析:结论参考至:https://blog.csdn.net/R ...

  9. CodeForces - 468B Two Sets(并查集+思维)

    题目链接:点击查看 题目大意:现在给出两个集合A和B,再给出两个数a和b,现在规定在集合A中的数x必须满足x和a-x同时在集合a中,而在集合B中的数x也同样需要满足x和b-x同时在集合B中,现在给出一 ...

最新文章

  1. 线性代数学习笔记(几何版)
  2. Linux tar vi gcc 指令
  3. python单元测试框架unittest介绍和使用_Python+Selenium框架设计篇之-简单介绍unittest单元测试框架...
  4. 基于弹性计算的AI推理
  5. 信息学奥赛一本通 1028:字符菱形 | OpenJudge NOI 1.1 09
  6. Wannafly2016-12-27 SPOJ-INTSUB 数学
  7. C++---内存泄漏与防范
  8. 三万字带你了解那些年面过的Java八股文
  9. HFSS - 半波偶极子天线的设计与仿真
  10. Infor SyteLine ERP 安装后中文语言设置
  11. 【获奖案例巡展】信创先锋之星——云上贵州信创工程中心大数据中台
  12. 飞书开放平台-全新消息卡片搭建工具
  13. 东北大学秦皇岛分校通信工程中外合作2020级C语言实验3
  14. MVC 3.0 学习笔记(Razor CSHTML))
  15. Java自然周的获取
  16. 如何购买一只基金?【赢利模型】
  17. opencv心得体会_OpenCV心得
  18. python画图实践(超级简单)
  19. 实验一:行为型设计模式之Strategy模式
  20. STM32驱动74HC165原理图加程序

热门文章

  1. leetcode C++ 28. 实现 strStr() 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 need
  2. 第八周项目实践2 建立连串算法库
  3. [YTU]_2384( 矩形类中运算符重载【C++】)
  4. 1.9 matlab字符与字符串
  5. RANSC算法(随机样本一致性)
  6. pointPolygonTest函数
  7. PNN神经网络预测类别的例子
  8. Mardown(或Latex)换行
  9. 多协程实例分析(一)
  10. operator.itermgetter() (Python)