题目描述

小$K$和小$X$都是小次货。
身为小次货,最重要的事情就是次啦!所以他们正在纠结如何分芝麻次。
一开始,小$K$有$n$个芝麻,小$X$有$m$个芝麻。
因为他们都想次更多芝麻,所以每次手中芝麻较少的人就会拿走另一个人的芝麻,使得自己的芝麻变成原来的$2$倍那么多。如果两个人芝麻一样多,那么小$K$会拿走小$X$的芝麻是的他的芝麻变成原来的$2$倍。
经过$k$次这样的行动之后,小$K$和小$X$都累了,所以他们准备开始次芝麻了。
身在一旁的小$Z$想知道,小$K$和小$X$中次的较少的那个人次了多少芝麻呢?


输入格式

一行三个整数$n,m,k$。


输出格式

一行一个整数,表示答案。


样例

样例输入:

5 5 3

样例输出:

0


数据范围与提示

样例解释:

第一次行动时,小$K$拿走小$X$的芝麻$5$个,行动后小$K$有$10$个芝麻,小$X$有$0$个芝麻。
第二次和第三次行都是小$X$拿走小$K$的芝麻,但是因为他一开始没有芝麻,所以不能拿走小$K$的芝麻。
最终小$K$有$10$个芝麻,小$X$有$0$个芝麻,次的较少的人是小$X$,次了$0$个芝麻。

数据范围:

对于$30\%$的数据,$0\leqslant n\leqslant {10}^5,0\leqslant m\leqslant {10}^5,0\leqslant k\leqslant {10}^5$。
对于$60\%$的数据,$0\leqslant n\leqslant {10}^5,0\leqslant m\leqslant {10}^5,0\leqslant k\leqslant {10}^9$。
对于$100\%$的数据,$0\leqslant n\leqslant {10}^9,0\leqslant m\leqslant {10}^9,0\leqslant k\leqslant {10}^9$。


题解

$30\%$算法:

暴力就好了。

时间复杂度:$\Theta(k)$。

期望得分:$30$分。

实际得分:$30$分。

$60\%$算法:

找寻环节,发现最多只有$\min(n,m)$次就能发现循环节。

时间复杂度:$\Theta(\min(n,m))$。

期望得分:$60$分。

实际得分:$60$分。

找规律即可发现,无论是小$X$还是小$K$,在进行一次操作之后芝麻数量都会变为$2\times $当前芝麻数$\mod (n+m)$。

那么我们就可以用快速幂轻松求解了。

时间复杂度:$\Theta(\log k)$。

期望得分:$100$分。

实际得分:$100$分。


代码时刻

#include<bits/stdc++.h>
using namespace std;
long long n,m,k,pos;
long long qpow(long long x,long long y)
{
long long res=1;
while(y)
{
if(y&1)res=res*x%(n+m);
x=x*x%(n+m);
y>>=1;
}
return res;
}
int main()
{
scanf("%lld%lld%lld",&n,&m,&k);
pos=qpow(2,k);
printf("%lld",min(n*pos%(n+m),m*pos%(n+m)));
return 0;
}

rp++

[CSP-S模拟测试]:次芝麻(数学)的更多相关文章

  1. [CSP-S模拟测试]:不等式(数学)

    题目描述 小$z$热衷于数学.今天数学课的内容是解不等式:$L\leqslant S\times x\leqslant R$.小$z$心想这也太简单了,不禁陷入了深深的思考:假如已知$L,R,S,M$ ...

  2. [CSP-S模拟测试]:A(数学)

    题目传送门(内部题44) 输入格式 一行四个整数,分别表示$S,T,a,b$. 输出格式 输出最小步数,数据保证有解. 样例 样例输入: 10 28 4 2 样例输出: 数据范围与提示 样例解释: 先 ...

  3. [CSP-S模拟测试]:装饰(数学)

    题目传送门(内部题147) 输入格式 每个测试点第一行一个正整数$T$,表示该测试点内的数据组数. 接下来$T$行,每行三个非负整数$a,b,c$,含义如题目中所示. 输出格式 对每组数据输出一行一个 ...

  4. [CSP-S模拟测试]:最大值(数学+线段树)

    题目背景 $Maxtir$最喜欢最大值. 题目传送门(内部题128) 输入格式 第$1$行输入四个正整数$n,m,q$. 第$2$至$n+1$行中,第$i+1$行输入魔法晶石$i$的三种属性$(x_i ...

  5. [CSP-S模拟测试]:求和(数学)

    题目传送门(内部题107) 输入格式 一行五个正整数$x_1,y_1,x_2,y_2,m$ 输出格式 输出一个整数,为所求的答案对$m$取模后的结果. 样例 样例输入: 2 1 5 3 10007 样 ...

  6. [CSP-S模拟测试]:数列(数学)

    题目传送门(内部题95) 输入格式 第一行三个整数$n,a,b$,第二行$n$个整数$x_1\sim x_n$表示数列. 输出格式 一行一个整数表示答案.无解输出$-1$. 样例 样例输入:2 2 3 ...

  7. [CSP-S模拟测试]:Walker(数学)

    题目传送门(内部题86) 输入格式 第一行$n$接下来$n$行,每行四个浮点数,分别表示变换前的坐标和变换后的坐标 输出格式 第一行浮点数$\theta$以弧度制表示第二行浮点数$scale$第三行两 ...

  8. [CSP-S模拟测试]:Six(数学)

    题目传送门(内部题85) 输入格式 一个正整数$N$. 输出格式 一个数表示答案对$1000000007$取模后的结果 样例 样例输入1: 样例输出1: 样例输入2: 样例输出2: 样例输入3: 样例 ...

  9. [CSP-S模拟测试]:Smooth(数学)

    题目传送门(内部题84) 输入格式 两个整数$B,K$ 输出格式 一个整数表示答案 样例 样例输入: 5 100 样例输出: 数据范围与提示 对于$40\%$的数据,保证答案小于$10^7$对于另$2 ...

随机推荐

  1. win10 文件管理器频繁卡死

    参考: https://www.xitmi.com/1589.html

  2. 让Debian以root登录

    Debian默认不允许root登录,所以修改之. (1)让Debian以root登录 修改gdm3的登录pam文件 #vi /etc/pam.d/gdm3 将auth required pam_suc ...

  3. Yaconf – 一个高性能的配置管理扩展

    鸟哥出品:http://www.laruence.com/2015/06/12/3051.html 首先说说, 这个是干啥的. 我见过很多的项目中, 用PHP文件做配置的, 一个config目录下可能 ...

  4. OSPF协议——原理及实验

    首先命令部分: ospf 1 进入ospf协议 area 0 划定自治区域 因为实验只用了1个区域所以参数就为0 也就是骨干区域 network +网段+反写掩码(0.0.0.255)指定运行OSPF ...

  5. Learning OSG programing---osgAnimation(2)

    osg::Node* createBase(const osg::Vec3& center,float radius) { ; ; *radius; *radius; osg::Vec3 v0 ...

  6. Java数组相关算法一

    一.数组反转 1.方法一:创建新数组 int[] arr = {6,29,0,4,3}; int[] arr2 = new int[arr.length]; for (int i = 0; i < ...

  7. Robot Framework 常见问题处理方式

    1.运行testcase报错error 2解决办法 打开python的scripts目录,看看是否有pybot.bat文件,没有则创建一个 pybot.bat内容: @Echo off python ...

  8. python 谈赋值和copy区别

    1变量赋值 a=1 b=a b=1 a=3 b还是等于1 2,列表赋值 嵌套列表情况 如果想让列表单独出来怎么办呢 ,这时候用到copy 如果列表嵌套列表情况 还是一样的, 如果想深度copy imp ...

  9. idea 配置maven web项目

    文章转自:https://www.cnblogs.com/weiqingfeng/p/9494914.html 步骤一:首先先创建一个project,上次我说过了创建一个project就是一个工作空间 ...

  10. HR面试总结

    求职面试HR最欣赏的自我介绍 2015-02-25 来源:www.cnrencai.com 浏览:391   明明很有能力的你,在面试中却不能发挥出色?来看看是不是自我介绍环节出了问题. 回答面试题目 ...