随笔分类 -  数学

摘要:虽然是水题,但是还是很interesting的。(大概就是我最晚出这个题了。。。博弈感觉就是靠yy能力啊。这题是对称性。最后的必败态是白色格子对称的,一旦对称形成,对手怎么选,跟随就好,对手无法摆脱。当n是奇m是奇,取最中间的一个,当一奇一偶,去掉一个奇数列或行。只有一开始就是对称的才会输。#inc... 阅读全文
posted @ 2015-11-29 12:57 瑞宇 阅读(135) 评论(0) 推荐(0)
摘要:很容易得到n× m的方块数是然后就是个求和的问题了,枚举两者中小的那个n ≤ m。然后就是转化成a*m + c = x了。a,m≥0,x≥ c。最坏是n^3 ≤x,至于中间会不会爆,测下1e18就好。#includeusing namespace std;typedef long long ull;... 阅读全文
posted @ 2015-11-21 11:54 瑞宇 阅读(481) 评论(0) 推荐(0)
摘要:类似一个背包问题的计数问题。(虽然我也不记得这叫什么背包了一开始我想的状态定义是:f[n = 和为n][k 个素数]。递推式呼之欲出: f[n][k] = sigma f[n-pi][k-1]。但是题目还有一个要求是不同素数之和,为了保证素数不同,那就先枚举素数吧,f[i][n][k] =sigma... 阅读全文
posted @ 2015-11-14 16:45 瑞宇 阅读(344) 评论(0) 推荐(0)
摘要:砖块上的数字最终都可以看作是最后一行的线性组合,独立变元最多9个。这类题的一般做法,线性组合都可以列出方程然后高斯消元。对于这道题,只要确定最后一行剩下的4个变量就好了,对于最后一行的j位置,它对上面位置某个数字的和贡献次数等于它到那个位置路径的方案数,可以发现就是杨辉三角。倒数第二行的数已经足够确... 阅读全文
posted @ 2015-11-14 16:18 瑞宇 阅读(296) 评论(0) 推荐(0)
摘要:递推,f[i = i个名次][j = 共有j个人] = 方案数。对于新加入的第j个人,如果并列之前的某个名次,那么i不变,有i个可供并列的名次选择,这部分是f[i][j-1]*i,如果增加了一个名次,那么之前有i-1个名次,i-1个名次之间有i个空,这部分是f[i-1][j-1]*i。/******... 阅读全文
posted @ 2015-11-14 16:01 瑞宇 阅读(231) 评论(0) 推荐(0)
摘要:分析:对于区间[i,j],枚举j。固定j以后,剩下的要比较M_gcd(k,j) = gcd(ak,...,aj)*(j-k+1)的大小, i≤k≤j。此时M_gcd(k,j)可以看成一个二元组(g, k)。根据gcd的性质gcd(a1,a2,...,an) = gcd(a1,gcd(a2,..,an... 阅读全文
posted @ 2015-11-14 15:50 瑞宇 阅读(591) 评论(0) 推荐(0)
摘要:X表示剩下的糖数量,如果最后打开的是p对应的盒子。划分:Xi表示剩下i个糖,最后一次选的概率为p,前面的服从二项分布。根据全概率公式和期望的线性性,求和就好了。精度处理要小心,n很大,组合数会很大,p的部分很小,要取对数,而且中间计算精度也要用long double才够。组合数的对数预处理一下或者递... 阅读全文
posted @ 2015-11-13 22:02 瑞宇 阅读(417) 评论(0) 推荐(0)
摘要:题意:给出n和k,1≤n,k≤1e9,计算切入点是k/i 和 k/(i+1)差距不大。令pi = k/i, ri = k%i。如果pi+1 == pi,那么ri+1 == k - pi(i+1) == ri - pi,对于pi+z == pi,ri+z == ri - z*pi,这是等差数列可以O(... 阅读全文
posted @ 2015-11-13 22:02 瑞宇 阅读(330) 评论(0) 推荐(0)
摘要:用扩展欧几里德Extended_Euclid解线性模方程,思路在注释里面了。注意数据范围不要爆int了。/********************************************************** --------------Tyrannosaurus------... 阅读全文
posted @ 2015-11-13 20:53 瑞宇 阅读(255) 评论(0) 推荐(0)
摘要:二项分布,期望,快速幂 阅读全文
posted @ 2015-10-18 19:52 瑞宇 阅读(332) 评论(0) 推荐(0)
摘要:A,水题不多说。#includeusing namespace std;//#define LOCALint main(){#ifdef LOCAL freopen("in.txt","r",stdin);#endif int n,t; scanf("%d%d",&n,&t); i... 阅读全文
posted @ 2015-10-07 21:14 瑞宇 阅读(226) 评论(0) 推荐(0)
摘要:对角线上的元素就是a[i],而且在所在行和列中最大,首先可以确定的是最大的元素一定是a[i]之一,这让人想到到了排序。经过排序后,每次选最大的数字,如果不是之前更大数字的gcd,那么只能是a[i]之一。div2路漫漫。。。#includeusing namespace std;typedef int... 阅读全文
posted @ 2015-10-04 18:15 瑞宇 阅读(234) 评论(0) 推荐(0)
摘要:根据概率公式dfs即可,判断和区间[T-E,T+E]是否有交,控制层数。#includeusing namespace std;int K,R,L;double P,E,T;double Lt,Rt;double dfs(double L,double R,int k = 0){ if(RRt... 阅读全文
posted @ 2015-10-01 17:35 瑞宇 阅读(267) 评论(0) 推荐(0)
摘要:因为第i个人休息j次服从二项分布,算一下组合数。数据范围小。求出第i个人休息j次的概率和对应的时间之后,全概率公式暴力统计。#includeusing namespace std;const int maxn = 101,maxm = 51;int P[maxn],T[maxn],V[maxn];l... 阅读全文
posted @ 2015-10-01 17:30 瑞宇 阅读(256) 评论(0) 推荐(0)
摘要:有点麻烦的递推,递推的原则:向小的问题方向分解,注意边界。字符串的递推式为定义f为Si中的总方案数首先可以得到fi=fi-1+fi-2+组合(si-2,si-1)然后考虑Si-2和Si-1之间的组合为了得到小的问题,进行拆分为了以后表示的方便和逻辑上的清晰,把Si~Si之间的组合总长度定义出来因为这... 阅读全文
posted @ 2015-09-22 22:23 瑞宇 阅读(426) 评论(0) 推荐(0)
摘要:感谢这道题让我复习了一遍线代,还学习了一些奇奇怪怪的数论。令二项展开以后根号部分抵消了显然有所以要求的答案是如果n比较小的话,可以直接对二项式快速幂,但是这题n很大这个问题和矩阵的特征值以及数列递推有奇怪的联系广义的fibonacci数列的形式如下写成矩阵形式就是有一个奇怪的结论:其中lambda1... 阅读全文
posted @ 2015-09-22 20:27 瑞宇 阅读(593) 评论(2) 推荐(0)
摘要:显然f(x)是个凹函数,三分即可,计算方案的时候dp一下。eps取大了会挂精度,指定循环次数才是正解。#includeusing namespace std;const double eps = 1e-11;const int maxn = 2e5+5;double a[maxn];double d... 阅读全文
posted @ 2015-09-17 09:53 瑞宇 阅读(211) 评论(0) 推荐(0)
摘要:首先应该保证二进制最高位尽量高,而位数最高的数乘x以后位数任然是最高的,所以一定一个数是连续k次乘x。当出现多个最高位的相同的数就枚举一下,先预处理一下前缀后缀即可。#includeusing namespace std;const int maxn = 2e5+5;int a[maxn];int ... 阅读全文
posted @ 2015-09-17 09:49 瑞宇 阅读(210) 评论(0) 推荐(0)
摘要:题目中给出的函数具有周期性,总可以移动到第一个周期内,当然,ausing namespace std;int main(){ int a,b; scanf("%d%d",&a,&b); if(a<b) puts("-1"); else { int t1 = a+b, ... 阅读全文
posted @ 2015-09-17 09:44 瑞宇 阅读(174) 评论(0) 推荐(0)
摘要:直接O(n*m)的dp也可以直接跑过。因为上最多跑到m就终止了,因为前缀sum[i]取余数,i = 0,1,2,3...,m,有m+1个余数,m的余数只有m种必然有两个相同。#includeusing namespace std;const int maxn = 1e3+5;int cnt[maxn... 阅读全文
posted @ 2015-09-11 09:35 瑞宇 阅读(181) 评论(0) 推荐(0)