- 博客(62)
- 收藏
- 关注
原创 cf841A Godsend
开门,上帝送温暖……才怪啊两个人在玩一个无聊的游戏。有一串数,第一个人能拿走和为奇数的一部分,第二个人能拿走和为偶数的一部分,没办法拿的人输,问谁赢。我一开始还以为是必胜策略什么的……后来发现…… 首先,关注奇偶性时无需在意数字本身,我们不妨把奇数当成1,偶数当成0。 显然如果有奇数个奇数,就可以一次拿走,第一个人赢。 如果有偶数个奇数,第一个人可以拿到只剩下一个奇数为止,这样还是第一个人赢。
2017-08-19 14:19:57 471
原创 cf840A Leha and function
哇这个意义不明的公告……欺负英语水平差的人不会any是吧……题意: 有一个函数F(a,b),其定义如下: 集合A为{1,2,3,…,n},集合B为A中所有元素个数为b的子集。F(a,b)表示的是B中所有集合的最小值的期望。 例如,F(4,2)表示,A={1,2,3,4},B={{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}},因此,B中的最小值的期望就是1*12\dfr
2017-08-19 13:48:42 402
原创 基础数论算法(⑩) Catalan数与Stirling数
严格的说,这一节已经脱离了数论的范畴……Catalan数的公式Catalan数的递推公式: f(n)=∑n−1i=0f(i)∗f(n−i−1)f(n)=\sum^{n-1}_{i=0}f(i)*f(n-i-1) f(n)=f(n−1)×(4n−2)n+1f(n)=\dfrac{f(n-1) \times (4n-2)}{n+1} Catalan数的通项公式: f(n)=Cn2n−Cn−12n
2017-08-17 10:34:50 765
原创 基础数论算法(⑨) 高斯消元与LU分解
高斯消元高斯消元是什么?其实虽然名字高大上,换个名字就是加减消元法。 首先,我们有一个线性方程组 a11x1+a12x2+..+a1nxn=b1a_{11}x_1+a_{12}x_2+..+a_{1n}x_n=b_1 a21x1+a22x2+..+a2nxn=b2a_{21}x_1+a_{22}x_2+..+a_{2n}x_n=b_2 …….. an1x1+an2x2+..+annxn=b
2017-08-16 11:10:41 3577 1
原创 基础数论算法(八) 矩阵乘法与线性齐次递推公式的快速求值
矩阵乘法可是zhx钦定说考的可能性挺大的东西!矩阵乘法一个n*m的矩阵乘一个m*p的矩阵会得到一个n*p的矩阵。 因此有一道区间dp模板叫矩阵链乘法,不过这个不是重点。 矩阵乘法如果要简单的说,就是行乘每一列放在对应的行上。这么说可能不太清楚,不过我觉得代码比一堆∑\sum清晰的多。void multi(int m,int n,int p){ for(int i=0;i<m;++i)
2017-08-15 12:34:18 923
原创 基础数论算法(7) 欧拉函数与BSGS算法
欧拉函数我真的觉得欧拉无所不能…在提到欧拉函数之前,我们先要说一个定义:积性函数。什么是积性函数?对于互质的数a,b,有f(ab)=f(a)*f(b)。 这个玩意真的特别神奇。最简单的积性函数是τ(n)\tau (n),这个函数表示所有因子数量。例如,τ(6)=4\tau(6)=4,τ(2)=2\tau(2)=2,τ(3)=2\tau(3)=2,τ(6)=τ(2)∗τ(2)\tau(6)=\tau
2017-08-14 12:32:26 717
原创 cf839B Game of the rows
非常有趣的一道贪心题。考试期间我是毫无思路,然后今天看作者的题解,哇,真玄学。下面我大概就把作者的题解思路说一下,然后誊写一遍作者的代码题意大概是这样的,一帮人选座位,要求不同组的不能坐在一起。每一行的座位构成都是这样的: 那么显然12 34 45 56 78是邻位。现在给你各组的人数,问能不能满足条件。 好,首先为了粉碎一些天真的想法,我们先举几个蛇皮走位: 1行,2个组,每组4个,方法
2017-08-13 15:35:11 504
原创 cf839C Journey题解
又一次愉快的题意杀…… 参考:http://margatroid.xyz/2017-08-12-Codeforces-Round-428-Div-2-C/题意如果用一句话说就是:求一颗树深度的期望。 数据的输入表示两个节点的连通……我一直以为是有向线段orz 先来思考期望怎么求,期望=概率*权重,这里的权重就是叶节点的深度。而概率P[a]=P[father[a]]*(son of father
2017-08-13 14:11:15 1249 1
原创 基础数论算法(六) 素数的筛法与质因数分解
素数筛法如果我们需要多次判断是不是素数时,比起无数次的枚举、测试,还是提前筛出一张素数表比较好Eratosthenes筛法一般情况下够用的筛法。复杂度nlnlnn,关键是不容易写错。还有别问我这个复杂度怎么算出来的。实现非常简单。#include <iostream>#include <cstring>using namespace std;#define MAXN 1000001int m
2017-08-12 14:50:10 1086
原创 基础数论算法(5) 素数的判定
有关素数的研究很久之前就已经开始,根据科(xuan)学研究,数质数有助于睡眠。那么如何高效的让计算机数质数,跑得更快?这就是我们要探讨的主要内容。O(n√\sqrt{n})判定法数据比较小的时候,O(n√\sqrt{n})判断法就够了。方法就是从2枚举到n√\sqrt{n}。(顺便吐槽一句数学必修三居然枚举到n-1,差评) 实现:bool isPrime(int x){ if(x<2)
2017-08-10 15:42:10 515
原创 基础数论算法(4) 中国剩余定理
最后的gcd相关!中国剩余定理是这么一个问题。 “今有物不知其数,三三数之余二,五五数之余三,七七数之余二。问物几何?” 答曰:二十三。口诀:三人同行七十稀,五树梅花廿一枝,七子团圆月正半,除百零五便得知。 嗯,我知道没有看懂。 首先来说一下这题是干啥的。实际上,题目想让解一个线性同余方程组: ⎧⎩⎨x≡2(mod 3)x≡3(mod 5)x≡2(mod 7)\begin{cases
2017-08-09 15:34:04 898
原创 基础数论算法(三) 逆元和gcd的几道题
参考:http://blog.csdn.net/acdreamers/article/details/8220787逆元先来说说逆元是什么。我们知道,(a*b)%c=((a%c)(b%c))%c,这为我们快速幂什么的带来了非常大的方便。那么a/b呢?显然(a/b)%c不满足乘法一样的性质,那么我们有一个便利的工具:(a/b)%c=(a*b−1b^{-1})%c。这里的b−1b^{-1}不是指代1b\
2017-08-07 12:29:34 498
原创 基础数论算法(2) GCD LCM EXGCD 学习笔记
继续学习数论…… 本文除非特殊说明,所有的数都是整数 本文参考:欧几里德与扩展欧几里德算法一、gcdlong long gcd(long long x,long long y){ return y==0?x:gcd(y,x%y);}应该没什么好说的吧……非常朴素的算法 还有一种位运算优化,感觉实现起来非常复杂,NOIP也不大可能卡这个所以就不谈了……二、lcd 只需要记住一个公式:
2017-08-06 11:37:09 840
原创 codeforces837E Vasya's Function
首先在下参考了http://blog.csdn.net/calabash_boy/article/details/76652792 以及submit#29208538 数论什么的最讨厌了……设f(x,y),若y=0,则f(x,0)=0,否则f(x,y)=f(x,y-gcd(x,y))。 数据范围是1<=x,y<=101210^{12}所以不能指望暴力(没错,3点就会T) 那么来分析一下。
2017-08-05 17:04:24 1249
原创 Codeforces837D RoundSubset
首先在下参考了评测#29184017 以及http://blog.csdn.net/my_sunshine26/article/details/76652764 我天真的以为这是一个区间dp……没想到竟然是埋藏这么深的一道背包。是在下输了。来说说题意。有n个数,其中选k个,要让我们输出这k个数之积的最多的0的个数。比如50 4 20里选俩,50*4=200有两个0,4*20=80有1个0,50*
2017-08-04 15:46:40 421
原创 codeforces 835D
首先在下参考了 http://blog.csdn.net/xjh_shin/article/details/76550463 以及原作者的代码 http://codeforces.com/contest/835/submission/29077222 嗯……dp什么的最讨厌了先说说题意。 一个字符串是1-回文串当且仅当其左半部分与右半部分相等 一个字符串是k-回文串当且仅当它是1-回文串
2017-08-02 20:23:21 665
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人