题目链接 \(Description\) 有一个长为\(n\)的序列,其中有两个元素为\(y\),其余全为\(x\).你可以进行\(19\)次询问,每次询问你给出一个下标集合,交互库会返回这些元素的异或和.给定\(n,x,y\),你需要求出两个\(y\)的下标. \(n\leq 1000,1\leq x,y\leq 10^9\). \(Solution\) 对连续区间询问得到的结果只有那么几种,可以直接判断\(y\)的个数的奇偶性.但是区分不出来该区间有0个还是2个\(y\). 两个\(y\)的…
http://codeforces.com/problemset/problem/835/E 题意: 这是一道交互题 有n个数,其中有2个y,n-2个x 每次你可以询问若干个数的异或和,从而得出y的位置 最开始给出n,x,y 最多询问19次 多猪试毒问题: 有1000瓶药,其中只有1瓶是解药,其他的都是毒药 你有一些猪,今天让他们会喝下若干瓶药,所有没有喝到解药的猪会在明天的同一时刻死去 问最少需要多少头猪一定会试出哪瓶是解药 答案是10头 因为不同的数的二进制位至少有一位不相同 10位二进制可…
题目链接 \(Description\) 一个\(n\times n\)的非负整数矩阵\(A\),保证\(A_{i,i}=0\).现在你要对每个\(i\)求\(\min_{j\neq i}A_{i,j}\)(每一行除\(A_{i,i}\)的最小值).你可以进行不超过\(20\)次询问,每次询问你给出下标集合\(\{w_1,w_2,\ldots,w_k\}\),交互库会对每个\(i\)返回\(\min_{j=1}^kA_{i,w_j}\)(每一行给出列的最小值). \(n\leq 1000,A_i…
第一次交互题,记录一下吧 #include <cstdio> #include <iostream> #include <ctime> #include <vector> #include <cmath> #include <map> #include <queue> #include <algorithm> #include <cstring> using namespace std; typed…
题目链接:D. Ithea Plays With Chtholly 题意: 给你n张纸,在纸上写字(在 1 - c之间)可以写m次数 (,).(主要是交互,让你判断) 题解: 首先,看到m>=n*c/2,我们假设从1位置放入数据,如果放入的数据大于前面已经放入的数据那就往后排小于就替换.这样放的话,每个位置替换最大的次数是C,所以最大的次数总数是n*c.发现正好差了一倍.所以我们可以从两边放入,(小于c/2从1放入,大于c/2从N位置放入)这样每个位置替换的最大次数就是c/2,就正好可以过了.(…
D. Vladik and Favorite Game time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output This is an interactive problem. Vladik has favorite game, in which he plays all his free time. Game field could…
<题目链接> 题目大意: 有一个长度为n(n<1000)的01串,该串中至少有一个0和一个1,现在由你构造出一些01串,进行询问,然后系统会给出你构造的串与原串的   Hamming distance ,现在要求你按照步骤进行交互式操作,最终得到任意一个0.1的下标. 解题分析:因为原串中至少存在一个0和一个1,所以一定存在一个01或者10序列,因此我们可以用二分来寻找这个序列(注意二分过程中选择区间的操作).二分之后,一定能够得到01或10序列,然后将其按先0后1的顺序输出即可. #i…
题目链接 \(Description\) 有一个大小为\(k\)的集合\(S\),元素两两不同且在\([1,n]\)内.你可以询问不超过\(60\)次,每次询问你给出\(x,y\),交互库会返回\(\left[\ \min(|x-a|,a\in S)\leq \min(|y-a|,a\in S)\ \right]\)是(TAK)否(NIE)为真.求任意两个一定在集合\(S\)中出现过的数. \(Solution\) 考虑对区间\([l,r]\)二分,若Check(mid,mid+1)==1,则区…
https://codeforces.com/problemset/problem/1117/E 就用abc表示数字来给每个数编码,编完直接问出移动的结果,反构造就行了,比C和D还简单. #include<bits/stdc++.h> using namespace std; #define ll long long int n; string s1,s2,s3; string t; string q1,q2,q3; ]; ]; void construct(){ ;i<n;i++){…
这题也太新颖了吧.. 交互博弈 以前一直以为交互只能出二分 题意:长度为n的环形灯 玩家有两种操作 结束游戏 或者选择k个灯点亮 每次这个k是玩家自己选的 玩家操作后让电脑操作 电脑选择一个最优的点x 然后关掉从x开始的连续k个灯 玩家想要点亮更多的灯 电脑则相反 让你来操作 如果达到了理论上最多灯的状态就算ac了 题解:模拟一下操作就找到规律了.. 如果玩家上一次操作点亮了k个灯 如果当前连续亮灯的最长序列为x <= k 那么电脑操作了之后 至少会多点亮一个灯 就这样一直贪心下去.. 所以我们…