- 博客(8)
- 收藏
- 关注
原创 优先队列(目前遇到的各种写法)
最近遇到了,就总结一下。优先队列是按照其中的某一个参数,先输出最大(或者最小)的那一个。优先队列的写法:priority_queue<int>q;//括号里可以填各种数据类型priority_queue<node>q;priority_queue<int,vector<int>,greater<int&
2018-03-28 16:01:37 1284
原创 卢卡斯定理的详解和线性求解逆元(含题目)
【卢卡斯定理】卢卡斯定理是用来求解:Cmn+mCn+mmC_{n+m}^m%mod的值,而mod是一个质数。我也是看了很长时间的讲解才看懂的(感觉好弱啊~~~)这张图是我认为讲解最全的,(可能一时看不懂,我再补充一下)。 首先,你要看懂(1+x)p≡1+xp%p(1+x)p≡1+xp%p(1+x)^p≡1+x^p\%p 并推出(1+x)a≡(1+x)a0∗(1+xp)a1∗∙∙...
2018-03-23 10:25:03 517
原创 幸运数字Ⅱ(打表+思路)
题目链接:幸运数字Ⅱ思路: 打表你会发现1e9以内的数,有1022个幸运数,将他们存入数组即可。 然后查找每一个数的next(l)的值(我们这里是按幸运数来计算的,不需要遍历所有的数)。打印幸运数的思路:因为只有4和7,所以先记录4,和7,并放入队列中,从队列中取一个数,将它分别乘以4和7,小于1e9的记录并放入队列中,直到队列为空为止,最后要加入4444444444,因为例如1e9的...
2018-03-19 20:39:00 939
原创 m皇后(思路题目)
这道题当初有两点没有想到,一点是不知道该如何处理斜着的方向,另一点是没想到只用求该直线上的两端点。这题要开四个数组,分别记录该方向上的点的最左端和最右端。 然后遍历所有的点,遍历该点的四个方向(上下是一个方向,左右是一个方向,斜向上一个,斜向下一个),如果该方向上只有一个点,就不存在威胁,如果该点在最右端或者最左端,在该方向上就有一个威胁,否则该点在中间,就有两个威胁。然后记录该点有几个威胁...
2018-03-17 14:42:59 260 1
原创 送分啦-QAQ(斐波那契博弈)
这一题就是一个斐波那契博弈问题。斐波那契博弈: 有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下:1)先手不能在第一次把所有的石子取完,至少取1颗;2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍。约定取走最后一个石子的人为赢家,求必败态。结论:当n为Fibonacci数的时候,必败。f[i]:1,2,3,5,8,13,21,34,55...
2018-03-16 09:57:22 287
原创 迷宫2(牛客网,最短路)
这一题主要就是思路加最短路。首先你要知道这是一道求最短路的题目。 因为起点或者终点是没有办法被围起来的,所以只能从下边或者左边的一个点出发,到达上边或者右边的一个点(这个过程只能走上下左右四个方向,因为蜥蜴可以走八个方向),过程的和最小即可,所以是多起点到多终点的最短路问题。下面就是求最短路了,能找到就输出,找不到就输出-1。 当初求最短路一直超时,而且最短路的思路也还有点问题。 用...
2018-03-15 14:14:34 779
原创 白兔的式子(卢卡斯定理+费马小定理求逆元)
首先你要知道这是一个二项式的展开式的结果。 我就不推了,很简单的!!!分两种情况 1.m>n一定是0。 2.m < n,是二项式(a+b)^(n-1)的第m-1项的结果,即:(下面公式里的m和n我已经减一了,别弄混)Cmnan−mbmCnman−mbmC_n^ma^{n - m}b^m 这就是f[n][m]的结果。下面就是如何求的问题了,an−mbman−mbma^{n...
2018-03-14 12:43:16 201
原创 牛客网 D-图图(广搜)
题目链接:图图思路: 有两种情况: 1.直接跳过门,从起点走到终点。 2.从起点–钥匙–门–终点。比较这两种方法的路径即可(要注意一些细节)。代码:#include<stdio.h>#include<string.h>#include<queue>#include<algorithm>using namespace ...
2018-03-07 19:59:33 147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人