传送门
题目:



定义 a⊕kba \oplus_k ba⊕k​b表示整数 aaa 与 bbb的在 kkk进制下的不进位加法。特别的,当 k=2k = 2k=2 时,这一操作可以称为位运算的异或。
给定整数n(1≤n≤2⋅105)n(1 \leq n \leq 2 \cdot 10^5)n(1≤n≤2⋅105) 和 k(2≤k≤100)k(2 \leq k \leq 100)k(2≤k≤100),现在有一个隐藏的整数 x(0≤x≤n−1)x(0 \leq x \leq n-1)x(0≤x≤n−1),你需要在最多 nnn次交互内,猜出这个整数。
猜测时,输出猜测的整数 y(0≤y≤2⋅107)y(0 \leq y \leq 2 \cdot 10^7)y(0≤y≤2⋅107) ,系统会视情况返回不同的整数 rrr:
若 x=yx = yx=y,则 r=1r = 1r=1;
若 x≠yx \neq yx​=y ,则 r=0r = 0r=0 ,且 xxx 会变成 zzz,满足 x⊕kz=yx \oplus _k z=yx⊕k​z=y
​且2≤k≤1002≤k≤1002≤k≤100

第一次遇到交互题……很懵
大致思路:

整理柿子:

代码:(用cin 、cout可以不加fflush(stdout);)

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=3e6+10;int k;
int add(int a,int b){int res=0;for(int base=1;base<=max(a,b);base*=k){int aa=a/base%k;int bb=b/base%k;res+=(aa+bb)%k*base;}return res;
}
int sub(int a,int b){int ret=0;for(int base=1;base<=max(a,b);base*=k){int aa=a/base%k;int bb=b/base%k;ret+=(aa-bb+k)%k*base;}return ret;
}int main(){int t,n,r,y;cin>>t;while(t--){cin>>n>>k;for(int i=0;i<n;i++){if(i==0)y=0;else if(i&1)y=sub(i-1,i);else y=sub(i,i-1);cout<<y<<endl;cin>>r;if(r==1)break;}}return 0;
}

RPD and Rap Sheet (Hard Version)(交互题,不进位加法、不退位减法)相关推荐

  1. D1. RPD and Rap Sheet (Easy Version) (交互题+构造)

    题意: 交互题,有一个初始密码xxx,只有nnn次猜测机会,假如猜了yyy,x!=yx!=yx!=y,那么密码就会变成x⨁yx\bigoplus yx⨁y. 题解: 设第iii次猜测的数为pip_ip ...

  2. CodeForces - 1543D2 RPD and Rap Sheet (Hard Version)(交互+模拟)

    题目链接:点击查看 题目大意:交互题猜密码,设原密码为 xxx,猜的密码为 yyy,如果没猜到,密码会自适应变成 zzz,满足 x⊕z=yx \oplus z=yx⊕z=y ,最多猜 nnn 次,对于 ...

  3. Codeforces Round #730 (Div. 2) D2. RPD and Rap Sheet (Hard Version) 交互 + k进制的转换

    传送门 文章目录 题意: 思路: 题意: 定义a⊕kba\oplus_k ba⊕k​b为a,ba,ba,b在kkk进制下的不进位加法.系统会随机生成一个数xxx,你猜这个数,假设当前猜的数为yyy,如 ...

  4. CodeForces - 1543D1 RPD and Rap Sheet (Easy Version)(异或+交互)

    题目链接:点击查看 题目大意:交互题猜密码,设原密码为 xxx,猜的密码为 yyy,如果没猜到,密码会自适应变成 zzz,满足 x⊕z=yx \oplus z=yx⊕z=y ,最多猜 nnn 次 题目 ...

  5. CodeForces Round #730 D1. RPD and Rap Sheet (Easy Version)题解

    Codeforces Round #730 (Div. 2) 题意: t组数据,每组给一个n和k,(easy version里面k=2) 每一次系统会输入一个初始的密码(初始密码是一个在[0,n−1] ...

  6. Codeforces Round #730 (Div. 2) D1. RPD and Rap Sheet (Easy Version)

    传送门 思路: 假设0到n-1之间的数为密码,则可以想到一个可行的解法: 第一次输出0,之后的每一次都输出(i−1)⊕(i−2)(i-1)⊕(i-2)(i−1)⊕(i−2). 假设答案为x,那么第一次 ...

  7. Codeforces Round #730 (Div. 2) D. RPD and Rap Sheet (交互,从easy到hard)

    easy hard 题意 已知密码是kkk进制数,在十进制下是[0,n−1][0,n-1][0,n−1]之间,你有至多nnn次机会猜测这个数 设你猜的数字是yyy,如果答案正确,系统会返回111 如果 ...

  8. CodeForces - 1370F2 The Hidden Pair (Hard Version)(交互题+二分)

    题目链接:点击查看 题目大意:给出一棵无向无根树,事先确定好了两个点 s 和 t ,现在需要通过询问找到这两个点 每次询问可以给出一个点集,系统会返回点集中距离点 s 和点 t 距离之和最小的那个点以 ...

  9. Codeforces1486 C1.Guessing the Greatest (easy version)(交互题+二分)

    原题链接 题意: 交互题,首先电脑给出序列的长度n.你可以询问区间[l,r]的次大值位置,求序列最大值的位置. 思路: 首先考虑最简单的情况,当区间长度为2时,那么假设区间为[l,r].当询问的次大值 ...

最新文章

  1. ASP.NET状态管理之三(隐藏域HiddenField)
  2. mysql查询每小时数据和上小时数据的差值
  3. 手机端设置https访问代理(windows)
  4. qt之键盘的设计及QlineEdit内容读取
  5. 服务核心 - 工具类
  6. 大数据学习(06)-- 云数据库
  7. 更新10_linux,时隔十年,QQ更新了Linux版本
  8. LeetCode--55.跳跃游戏(贪心,零点跳跃)
  9. about Microsoft Office SharePoint Portal Server 2003
  10. android4以上版本读写外置sd卡报错的解决办法
  11. 关于在Winphone中使用Google Map的问题(徐林峰)
  12. Android进阶:框架打造之IOC框架
  13. 淘宝/天猫/京东/拼多多/苏宁易购/小米商城/华为商城/抖音快手直播/茅台抢购助手,宝惠抢购助手/OK助手源码
  14. SparkSQL和HiveSql的对比
  15. 【Linux云计算架构:第三阶段-Linux高级运维架构】第26章——tcp三次握手四次挥手及在局域网中使用 awl伪装MAC地址进行多线程SYN攻击
  16. 微服务电商实战(十一)搭建vue项目对接注册登陆接口,解决跨域问题,使用七牛云实现头像上传
  17. Matlab求时变微分方程组解,Matlab求常微分方程组的解析解
  18. 计算机病毒发展趋势论文,计算机病毒的发展趋势及对策
  19. C++ 中vector的使用方法
  20. html前端几种加密方式的整理

热门文章

  1. 软件体系结构之14面试题
  2. CENTOS 6.2 全新安装无线网卡驱动
  3. python程序运行时间方法的更替
  4. 在微信小程序中提交form表单
  5. 基于vue在线考试系统
  6. pyqt5实现桌面便签及提醒——逐步更新
  7. PHP1106电脑认不到打印机,win10找不到打印机设备怎么解决
  8. 基于Python+MySQL的员工档案管理系统
  9. 江苏大学计算机学院在校生,江苏大学计算机科学与通信工程学院
  10. 怎样认清自己,了解自我 [转]