P7893 『JROI-3』Reversi
题目背景
**赛时提醒:如果您始终是 30pts,且使用了题目给的快速读入,请重新拷贝修改后的快速读入。**
**赛时提醒:本题如果解法正确,快读可能无法起到优化作用。**
这个恐怕是将存在乃至于记忆切割成三十二颗的争夺黑白棋。
双方剩下的棋子数字都很小——也就是重要性很高吧。
......
——哥哥为什么会让自己落单呢?她原本对此感到疑惑。
不过,在得知答案之后,那可以说是理所当然的做法。
首先,第一个理由极为单纯。
故意将记忆托付给对方,暂时屈居败势的目的是——
「……那种事……白……做不到啊……」
想像了一下,白露出悲伤的笑容,做出这个结论。
哥哥做的这些事,如果由白执行……白不觉得自己的精神能够保持正常。
自己仅仅因为哥哥从身旁消失,就甚至一度怀疑哥哥的存在。
——被忘掉的话还好。
——忘掉哥哥的话——白确信自己的精神会无法保持正常。
......
(……这里……哥哥在……这里……)
即使是空无一物的空间,但是白确信,她感觉得到哥哥的位置。
白顿时眼眶一热,不过她强行忍住,继续思考。
(……然后这就是……第二个……同时也是……最大的……理由。)
白将写着【参】的棋子白色面朝上,用手指夹住。
哥哥是『白色还是黑色』,这个问题也不需要犹豫。
因为既然他将最后的棋局托付给『白』——那他当然是持白棋。
这个现在看不见,甚至无法认知的棋局。
既没有开始的记忆,也不知道盘面的经过如何。
不过哥哥故意下输,并且为了让白能获胜所可能下的棋步……
而对方看到之后,完全中了哥哥的计谋,被诱导而下的棋步……
然后,为了逆转,哥哥可能选择的所有位置分布。
将这些全部推测分析——仅用三步棋反败为胜。
......
然后——原先失去一天半的记忆——逆流了回来——
题目描述
**白**在和森精种玩黑白棋,但黑白棋的规则有所改变。
有 $n$ 个黑白棋子,第 $i$ 个棋子编号为 $i$。棋子初始全为黑,游戏中,仅由**白**一人操作,**白**希望尽可能多的把棋子变成白色。
**白**要求第 $k$ 个棋子和第 $k \times p$ 个不能同时变成白色。
**白**共玩了 $T$ 次,每次**白**想知道最多能把多少棋子变成白色。**每次游戏独立。**
为避免混淆,加粗的**白**是人名。
输入格式
第一行一个正整数 $T$,表示数据组数。
下面 $T$ 行每行两个整数 $n,p$,同题意。
输出格式
共 $T$ 行,每行一个正整数,表示**白**最多能把多少枚棋子变为白色。
说明/提示
#### 样例 1 解释
可以选择第 $2,3$ 个棋子变色。
#### 数据规模与约定
**本题采用捆绑测试。**
- Subtask 1(5 pts):$T \le 5$,$n \le 2$;
- Subtask 2(5 pts):$T \le 5$,$n \le 10$;
- Subtask 3(20 pts):$T \le 5$,$n \le 10^6$;
- Subtask 4(70 pts):无特殊限制。
对于 $100\%$ 的数据满足,$1 \le T \le 10^6$,$0 \le n \le 10^{18}$,$1 \le p \le 10^{9}$。
```
//快读模板
//赛时提醒:快读没有太大必要使用
inline long long read(){
long long s=0,w=1;
char ch=getchar();
while(ch'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch