RPD and Rap Sheet (Hard Version)(交互题,不进位加法、不退位减法)
传送门
题目:
定义 a⊕kba \oplus_k ba⊕kb表示整数 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⊕kz=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)(交互题,不进位加法、不退位减法)相关推荐
- D1. RPD and Rap Sheet (Easy Version) (交互题+构造)
题意: 交互题,有一个初始密码xxx,只有nnn次猜测机会,假如猜了yyy,x!=yx!=yx!=y,那么密码就会变成x⨁yx\bigoplus yx⨁y. 题解: 设第iii次猜测的数为pip_ip ...
- CodeForces - 1543D2 RPD and Rap Sheet (Hard Version)(交互+模拟)
题目链接:点击查看 题目大意:交互题猜密码,设原密码为 xxx,猜的密码为 yyy,如果没猜到,密码会自适应变成 zzz,满足 x⊕z=yx \oplus z=yx⊕z=y ,最多猜 nnn 次,对于 ...
- Codeforces Round #730 (Div. 2) D2. RPD and Rap Sheet (Hard Version) 交互 + k进制的转换
传送门 文章目录 题意: 思路: 题意: 定义a⊕kba\oplus_k ba⊕kb为a,ba,ba,b在kkk进制下的不进位加法.系统会随机生成一个数xxx,你猜这个数,假设当前猜的数为yyy,如 ...
- CodeForces - 1543D1 RPD and Rap Sheet (Easy Version)(异或+交互)
题目链接:点击查看 题目大意:交互题猜密码,设原密码为 xxx,猜的密码为 yyy,如果没猜到,密码会自适应变成 zzz,满足 x⊕z=yx \oplus z=yx⊕z=y ,最多猜 nnn 次 题目 ...
- 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] ...
- 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,那么第一次 ...
- 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 如果 ...
- CodeForces - 1370F2 The Hidden Pair (Hard Version)(交互题+二分)
题目链接:点击查看 题目大意:给出一棵无向无根树,事先确定好了两个点 s 和 t ,现在需要通过询问找到这两个点 每次询问可以给出一个点集,系统会返回点集中距离点 s 和点 t 距离之和最小的那个点以 ...
- Codeforces1486 C1.Guessing the Greatest (easy version)(交互题+二分)
原题链接 题意: 交互题,首先电脑给出序列的长度n.你可以询问区间[l,r]的次大值位置,求序列最大值的位置. 思路: 首先考虑最简单的情况,当区间长度为2时,那么假设区间为[l,r].当询问的次大值 ...
最新文章
- ASP.NET状态管理之三(隐藏域HiddenField)
- mysql查询每小时数据和上小时数据的差值
- 手机端设置https访问代理(windows)
- qt之键盘的设计及QlineEdit内容读取
- 服务核心 - 工具类
- 大数据学习(06)-- 云数据库
- 更新10_linux,时隔十年,QQ更新了Linux版本
- LeetCode--55.跳跃游戏(贪心,零点跳跃)
- about Microsoft Office SharePoint Portal Server 2003
- android4以上版本读写外置sd卡报错的解决办法
- 关于在Winphone中使用Google Map的问题(徐林峰)
- Android进阶:框架打造之IOC框架
- 淘宝/天猫/京东/拼多多/苏宁易购/小米商城/华为商城/抖音快手直播/茅台抢购助手,宝惠抢购助手/OK助手源码
- SparkSQL和HiveSql的对比
- 【Linux云计算架构:第三阶段-Linux高级运维架构】第26章——tcp三次握手四次挥手及在局域网中使用 awl伪装MAC地址进行多线程SYN攻击
- 微服务电商实战(十一)搭建vue项目对接注册登陆接口,解决跨域问题,使用七牛云实现头像上传
- Matlab求时变微分方程组解,Matlab求常微分方程组的解析解
- 计算机病毒发展趋势论文,计算机病毒的发展趋势及对策
- C++ 中vector的使用方法
- html前端几种加密方式的整理