[题解]RQNOJ PID85 三个袋子
链接:http://www.rqnoj.cn/problem/85
思路:一个排列问题,递推式很简单,f(n+1)=3*f(n)-1 ,由此可以推出通项公式,f(n)=0.5*3^(n-1)+0.5 。
但是这个数太大了,我们需要求的是f(n) mod K 。那么就必须考虑同余的性质。
我们知道2m≡a mod k 并不能推出m≡a/2 mod k ,但是2m≡a mod 2*k 却可以推出m≡a/2 mod k 。借助此性质再加上一个快速幂即可得出答案。
我的实现:
1 #include <iostream>
2 #include <cstdio>
3 using namespace std;
4 int N,K;
5 int ans;
6 int Pow(int Num,int P,int MOD)//(Num^P)%MOD
7 {
8 if(Num<=1||P==1)
9 return Num%MOD;
10 if(P==0)
11 return 1;
12 int Ret=Pow(Num,P/2,MOD);
13 Ret=(1LL*Ret*Ret)%MOD;
14 if(P&1)
15 Ret=(1LL*Ret*Num)%MOD;
16 return Ret;
17 }
18 int main()
19 {
20 scanf("%d%d",&N,&K);
21 ans=(Pow(3%(K*2),N-1,K*2)+1)%(K*2);
22 ans/=2;
23 printf("%d\n",ans);
24 return 0;
25 }
PS.zyy数学太渣了,大脑没有储存关于同余的东东,于是被这道题卡了好久好久…… 话说网上还有一种利用循环节快速找到答案的方法,zyy智商不够没看懂,求各位大神指点指点~~~
[题解]RQNOJ PID85 三个袋子的更多相关文章
- [题解]RQNOJ PID87 过河
链接:http://www.rqnoj.cn/problem/87 思路:动态规划 定义f[i][j]表示到达第 i 块给定石头用了 j 块添加石头的最少步数. 转移方程:f[i][j]=min{f[ ...
- [题解]RQNOJ PID86 智捅马蜂窝
链接:http://www.rqnoj.cn/problem/86 思路:单源点最短路 建图:首先根据父子关系连双向边,边权是距离/速度:再根据跳跃关系连单向边,边权是自由落体的时间(注意自由下落是一 ...
- Agent J(求三个圆围成的区域面积)
A - A Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Submit Status P ...
- 【codeforces】【比赛题解】#868 CF Round #438 (Div.1+Div.2)
这次是Div.1+Div.2,所以有7题. 因为时间较早,而且正好赶上训练,所以机房开黑做. 然而我们都只做了3题.:(. 链接. [A]声控解锁 题意: Arkady的宠物狗Mu-mu有一只手机.它 ...
- 【题解】BZOJ 3065: 带插入区间K小值——替罪羊树套线段树
题目传送门 题解 orz vfk的题解 3065: 带插入区间K小值 系列题解 一 二 三 四 惨 一开始用了一种空间常数很大的方法,每次重构的时候merge两颗线段树,然后无限RE(其实是MLE). ...
- 10.9 guz模拟题题解
感谢@guz 顾z的题题解 考试共三道题,其中 第一题help共10个测试点,时间限制为 1000ms,空间限制为 256MB. 第二题escape共20个测试点,时间限制为1000ms2000ms, ...
- 【牛客网】数据库SQL实战(题解)
1.查找最晚入职员工的所有信息 [题解] hire_date可能存在重复值,所以需要找到hire_date的最大值,然后再筛选,才能hire_date最晚的记录都筛选出来. [代码] 1 SELECT ...
- 2020级cpp机考模拟题A卷-#题解1
为了各位朋友的身心健康(不是),我们按照题目难度顺序来写题解. 第一次写题解,希望多点包容和鼓励(恬不知耻 1:谁先输出-4 题意: 输入3个整数,按从大到小的顺序输出,每两个数字间加一个空格. 题解 ...
- [Noip2016]蚯蚓 D2 T2 队列
[Noip2016]蚯蚓 D2 T2 Description 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳 蚤国的跳蚤也拿蚯 ...
随机推荐
- RBAC: K8s基于角色的权限控制
文章目录 RBAC: K8s基于角色的权限控制 ServiceAccount.Role.RoleBinding Step 1:创建一个ServiceAccount,指定namespace Step 2 ...
- golang gin框架中实现大文件的流式上传
一般来说,通过c.Request.FormFile()获取文件的时候,所有内容都全部读到了内存.如果是个巨大的文件,则可能内存会爆掉:且,有的时候我们需要一边上传一边处理. 以下的代码实现了大文件流式 ...
- linux新分区无法新建文件夹
问题 因为最初分区480g随便都给了home,后来发现备份以及导出系统至IOS都要另外插硬盘很麻烦.所以需要重新分区.使用装机U盘的live ubuntu20系统使用Gparted分区后,发现回到Ub ...
- JDK并发工具类
在JDK的并发包里提供了几个非常有用的并发工具类.CountDownLatch.CyclicBarrier和Semaphore工具类提供了一种并发流程控制的手段,Exchanger工具类则提供了在线程 ...
- golang中GPM模型原理与调度器设计策略
一.GMP模型原理first: 1. 全局队列:存放待运行的G2. P的本地队列:同全局队列类似,存放待运行的G,存储的数量有限:256个,当创建新的G'时,G'优先加入到P的本地队列,如果队列已满, ...
- Python实现查询12306火车票信息
例子来源于马哥的公众号,看了几遍,有些地方存在些疑问,然后就自己查找些资料,重写的一下,但是对于获取到的信息,并不能有效的解析出来,而且对于中文字符处理,并不是很好,请大神指教下!谢过! 1.接口设置 ...
- java抽象类案例
1 package face_09; 2 /* 3 * 雇员示例: 4 * 需求:公司中程序员有姓名,工号,薪水,工作内容. 5 * 项目经理除了有姓名,工号,薪水,还有奖金,工作内容. 6 * 对给 ...
- 论文解读(DFCN)《Deep Fusion Clustering Network》
Paper information Titile:Deep Fusion Clustering Network Authors:Wenxuan Tu, Sihang Zhou, Xinwang Liu ...
- Java 基础02
参照:https://www.cnblogs.com/ZXF6/p/11530009.html 类和对象 /** * java 中的类和对象 * * 一.局部变量的作用域. * * 二.面向对象的概述 ...
- Vue3源码分析之微任务队列
参考资料:https://zh.javascript.info/microtask-queue#wei-ren-wu-dui-lie-microtaskqueue 简化版 Vue3 中的 微任务队列实 ...