随笔分类 -  数学

摘要:题意:有n堆石子,两个人轮流取,每次只能取一堆的至少一个至多一半石子,直到不能取为止。判断先手是否必胜。分析:本题的关键就是求SG函数,可是直接分析又不太好分析,于是乎找规律。经过一番“巧妙”的分析,有这样一个规律:如果n是偶数,SG(n) = n / 2;如果n是奇数,SG(n) = SG(n /... 阅读全文
posted @ 2015-03-09 18:05 AOQNRMGYXLMV 阅读(217) 评论(0) 推荐(0)
摘要:把每一行m个数所有的素因子看做一堆,就把问题转化为n堆的Nim游戏。然后预处理一下10000以内每个数素因数的个数,再根据书上的Bouton定理,计算一下n行素因数个数的异或和。为0是先手必败局面,输出NO,否则输出YES 1 #include 2 #include 3 4 const int... 阅读全文
posted @ 2015-03-09 13:13 AOQNRMGYXLMV 阅读(171) 评论(0) 推荐(0)
摘要:因为题目要求同列相邻两格不同色,所以列与列之间不影响,可以逐列染色。如果一个格子的上面相邻的格子,已经被染色则染这个格子的时候,共有k-1中选择。反过来,如果一个格子位于第一列,或者上面相邻的格子是不能被染色的格子,则共有k中选择。虽然,矩阵的行数不定,但至少为所有不能被染色格子行标的最大值m。分别... 阅读全文
posted @ 2015-03-09 06:46 AOQNRMGYXLMV 阅读(249) 评论(0) 推荐(0)
摘要:如果直接枚举的话,枚举量为k1 * k2 *...* kc根据枚举量的不同,有两种解法。枚举量不是太大的话,比如不超过1e4,可以枚举每个集合中的余数Yi,然后用中国剩余定理求解。解的个数不够S个的时候,要把这些解分别加上M、2M...(M = X1 * X2 *...* Xc)如果上述枚举量太大的... 阅读全文
posted @ 2015-03-08 20:09 AOQNRMGYXLMV 阅读(419) 评论(0) 推荐(0)
摘要:题意:求sum{gcd(i, j) | 1 ≤ i 2 typedef long long LL; 3 4 const int maxn = 4000000; 5 6 int phi[maxn + 10]; 7 LL f[maxn + 10]; 8 9 void phi_table()10 ... 阅读全文
posted @ 2015-03-07 20:25 AOQNRMGYXLMV 阅读(443) 评论(0) 推荐(0)
摘要:题意:给出一个形如(P)/D的多项式,其中P是n的整系数多项式,D为整数。问是否对于所有的正整数n,该多项式的值都是整数。分析:可以用数学归纳法证明,若P(n)是k次多项式,则P(n+1) - P(n)为k-1次多项式。P是n的一次多项式时,P是一个等差数列,只要验证P(1)和P(2)是D的倍数即可... 阅读全文
posted @ 2015-03-07 17:21 AOQNRMGYXLMV 阅读(311) 评论(0) 推荐(0)
摘要:《训练之南》上的例题难度真心不小,勉强能看懂解析,其思路实在是意想不到。题目虽然说得千奇百怪,但最终还是要转化成我们熟悉的东西。经过书上的神分析,最终将所求变为:共n个叶子,每个非叶节点至少有两个子节点的 树的个数f(n)。最终输出2 × f(n)首先可以枚举一下根节点的子树的叶子个数,对于有i个叶... 阅读全文
posted @ 2015-03-07 10:44 AOQNRMGYXLMV 阅读(293) 评论(0) 推荐(0)
摘要:题意:这种所有边都是垂直或水平的多边形,可以用一个字符串来表示,一个270°的内角记作O,一个90°的内角记作R。如果多边形内存在一个点,能看到该多边形所有的点,则这个多边形对应的序列是合法的。这里长度不作限制,只要长度适当能满足要求即可。现给出序列长度,问有多少种序列符合要求。分析:书上分析地很清... 阅读全文
posted @ 2015-03-06 22:14 AOQNRMGYXLMV 阅读(224) 评论(0) 推荐(0)
摘要:题意:统计[a, b]或[b, a]中0~9这些数字各出现多少次。分析:这道题可以和UVa 11361比较来看。同样是利用这样一个“模板”,进行区间的分块,加速运算。因为这里没有前导0,所以分块的时候要多分几种情况。以2345为例,这是一个四位数,首先要计算一下所有的一位数、两位数以及三位数各个数字... 阅读全文
posted @ 2015-03-06 18:00 AOQNRMGYXLMV 阅读(422) 评论(0) 推荐(0)
摘要:题意:统计[a, b]中有多少个数字满足:自身是k的倍数,而且各个数字之和也是k的倍数。分析:详细分析见《训练之南》吧,=_=||书上提出了一个模板的概念,有了模板我们就可以分块计算。虽然书上定义f(x)表示不超过x的非负整数且满足条件的个数,但为了编码方便,代码中f(x)的含义为0~x-1中满足条... 阅读全文
posted @ 2015-03-04 16:49 AOQNRMGYXLMV 阅读(801) 评论(0) 推荐(0)
摘要:设d(i, j)为连续子序列[i, j]构成数的个数,因为遍历从根节点出发最终要回溯到根节点,所以边界情况是:d(i, i) = 1; 如果s[i] != s[j], d(i, j) = 0假设第一个分支在Sk回到根节点,方案数为d(i+1, k-1)其他分支访问从Sk到Sj,方案数为d(k, j)... 阅读全文
posted @ 2015-03-04 10:28 AOQNRMGYXLMV 阅读(166) 评论(0) 推荐(0)
摘要:A. Pangram题意:判断字符串中26种字母是否全都出现过,不区分大小写。题本身不难,可是忘了用getchar()吞掉输入第一行最末的换行符,导致被某些别有用心的人在比赛快结束的时候Hack了。 1 #include 2 using namespace std; 3 4 const int ... 阅读全文
posted @ 2015-03-03 23:43 AOQNRMGYXLMV 阅读(263) 评论(0) 推荐(0)
摘要:题意:有n个人排队,要求每个人不能排在自己父亲的前面(如果有的话),求所有的排队方案数模1e9+7的值。分析:《训练指南》上分析得挺清楚的,把公式贴一下吧:设f(i)为以i为根节点的子树的排列方法,s(i)表示以i为根的子树的节点总数。f(i) = f(c1)f(c2)...f(ck)×(s(i)-... 阅读全文
posted @ 2015-03-02 22:13 AOQNRMGYXLMV 阅读(370) 评论(0) 推荐(0)
摘要:A. Vitaly and Strings题意:给出两个长度相同的字符串,问是否存在一个字符串,该串的字典序大于输入的第一个串 且 小于第二个串。分析:找出比第一个串大一的串,看看它是否小于第二个串,是的话就满足,否则不存在这样的串。 1 #include 2 using namespace st... 阅读全文
posted @ 2015-03-01 09:19 AOQNRMGYXLMV 阅读(198) 评论(0) 推荐(0)
摘要:题意:有一种奇怪的电梯,每次只能向上走u个楼层或者向下走d个楼层现在有m个这种电梯,求恰好n次能够到达的最小楼层数(必须是正数),最开始默认位于第0层。分析:假设电梯向上走x次,则向下走n-x次,则所到达的楼层为xu - (n-x)d ≥ 0(u+d)x ≥ nd,x的最小值为换句话说,如果nd %... 阅读全文
posted @ 2015-02-25 04:49 AOQNRMGYXLMV 阅读(349) 评论(0) 推荐(0)
摘要:题意:有个人在蹦极,给出悬崖的高度,绳子的长度,弹簧绳的胡克系数 以及 人的质量。判断人是否能够着地,能的话是否能安全着地。所谓安全着地就是到达地面的速度不超过10m/s.分析:学过一点高中物理的就应该能解出来吧,既然是题解还是本着详细具体的原则来写。首先要求人能下落的最大高度,也就是重力做的功全部... 阅读全文
posted @ 2015-02-24 19:34 AOQNRMGYXLMV 阅读(388) 评论(0) 推荐(0)
摘要:发现自己搜索真的很弱,也许做题太少了吧。代码大部分是参考别人的,=_=||题意:给出一个phi(n),求最小的n分析:回顾一下欧拉函数的公式:,注意这里的Pi是互不相同的素数,所以后面搜索的时候要进行标记。先找出所有的素数p,满足(p - 1)整除题目中所给的phi(n)然后暴搜。。素数打表打到1e... 阅读全文
posted @ 2015-02-24 14:56 AOQNRMGYXLMV 阅读(235) 评论(0) 推荐(0)
摘要:题意:你现在来到了一个所有的数都模4余1的世界,也就是除了这种数没有其他的数了。然而素数的定义依然没变,如果一个数不能写成两个非1数字的乘积,则它是素数。比如,在这里5就变成了最小的素数。两个素数相乘得到一个半素数,比如5×5 = 25就是最小的半素数。求1~h之间有多少个半素数。分析:虽然是要求[... 阅读全文
posted @ 2015-02-23 22:10 AOQNRMGYXLMV 阅读(345) 评论(0) 推荐(0)
摘要:题意:有一个01串,每一步都会将所有的0变为10,将所有的1变为01,串最开始为1.求第n步之后,00的个数分析:刚开始想的时候还是比较乱的,我还纠结了一下000中算是有1个00还是2个00最终想明白后,并不会出现这样的子串。总结了几个要点:第n步之后,串的长度为2n,且0和1的个数相等,分别为2n... 阅读全文
posted @ 2015-02-23 21:02 AOQNRMGYXLMV 阅读(346) 评论(0) 推荐(0)
摘要:题意:找出长度为n、0和1个数相等、没有前导0且为k的倍数的二进制数的个数。分析:这道题要用动态规划来做。设dp(zeros, ones, mod)为有zeros个0,ones个1,除以k的余数为mod的二进制数的个数,则状态转移方程为:dp(zeros + 1, ones, (mod>>1) % ... 阅读全文
posted @ 2015-02-23 08:28 AOQNRMGYXLMV 阅读(288) 评论(0) 推荐(1)