
数学
xyc1719
努力会说谎,但努力不会是白费
展开
-
[D21] 计算系数 factor NOIP2011
【问题描述】给定一个多项式 k (ax + by) ,请求出多项式展开后 n m x y 项的系数。【输入】输入文件名为 factor.in。 共一行,包含 5 个整数,分别为 a,b,k,n,m,每两个整数之间用一个空格隔开。【输出】输出文件名为 factor.out。 输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对 10007 取模后的结果。...原创 2018-06-18 17:07:06 · 239 阅读 · 0 评论 -
Poj1737 Connected Graph 计数dp、组合数、高精度
又是一道令人胆寒的组合数。。。。【一句话题意】求n个结点的无向图的个数。(每个节点有标号)n<=50【分析】对于dp来说,状态的划分和转移是十分重要的。一个连通图是难以进行状态划分的,但一个不连通的无向图是则很容易划分成结点更少的两个部分。所以我们考虑从所有的无向图中减去所有的不连通图,就是所有连通图的数量。一个无向联通图中至多有n∗(n−1)/2n*(n-1)/2n∗(n−1)/2条...原创 2018-10-27 22:21:27 · 253 阅读 · 0 评论 -
锁 lock.cpp
【一句话题意】现在有n个人,每个人有一个重要值。一扇门有k把锁,每把锁可以有1-n把钥匙,每个人可以有1-k把钥匙。要求:所有重要值之和小于m的人聚在一起不能打开门,所有重要值之和大于等于m的人聚在一起一定能打开门。问最小的k有多大。n<=20,m<=1e9【分析】这个房东的数学一定学的很好这是一道标准的数学证明题,目前来看联赛应该不会出这一类的题。毕竟做得出来和做不出来只有两...原创 2018-11-01 18:04:34 · 243 阅读 · 0 评论 -
正方形 square.cpp
【一句话题意】有t个询问,求Πi=1nΠj=1ni∗jgcd(i,j)2\Pi^n_{i=1}\Pi^n_{j=1}\frac{i*j}{gcd(i,j)^2}Πi=1nΠj=1ngcd(i,j)2i∗jt<=1e6,n<=1e7 时限比1s长一点。【分析】原题不如概括后简洁和清晰,但概括和抽象也是图论和数论所要强调的能力。这次考试犯了数论题的大忌:死盯着题目想结论,而不是...原创 2018-11-01 18:36:32 · 321 阅读 · 0 评论 -
密码 passwd.cpp
【一句话题意】给你一个长度不超过17 的由0…9 组成的无前导0 的字符串S,求S 中的数字排列组成的无前导零的能被17 整除的整数中字典序第K 小的那个数。k<=17!【分析】s有17位显然是数位dp,求排列第k大显然是计数dp。状态定义由于是求排列,所以不能像普通数位dp一样,定义为f[state][k]表示选择数之后状态为state对17取模为k时的方案总数。f[0,0]=1。...原创 2018-11-02 15:42:47 · 260 阅读 · 0 评论 -
集合划分 partition.cpp
【一句话题意】给定一个包含N 个非负整数的集合A,请将A 分成两个子集P、Q,且使得gcd(ΠPiΠQi)==1gcd(\Pi P_i \Pi Q_i)==1gcd(ΠPiΠQi)==1。请计算这样的划分方法总数mod1000000007 后的值。 n<=1e6【分析】一道可做的数论题。按质因数划分,P和Q中不能有相同的质因数,拥有相同质因数的数必须放在同一个集合。将每个数分解质因数后...原创 2018-11-02 15:08:43 · 415 阅读 · 0 评论 -
矩阵学习笔记&讲稿整理
xaero最近创新出了新的学习方式,那就是拿着稿子上台去水一把吧,互相教学的高效方法。然而,我好像趁xaero不在水过了这简短的40分钟。(雾)所以决定再整理一下讲稿,重新登在博客上。第一章 矩阵乘法作为一个学OI的同学,在座的一定都听说过矩阵,也知道矩阵怎么运算(或许还有人不知道?雾)。但我们还是来总结一下。初识矩阵首先矩阵是一个n*m的“矩阵”,n行m列的每一个元素都是数字。大致就...原创 2018-12-23 21:40:17 · 3622 阅读 · 2 评论 -
FFT学习笔记摘要
目的是多项式乘法,用一个n+m-2次多项式表示n-1次多项式乘上一个m-1次多项式。(以下把默认n=m,因为我懒,逃)暴力的暴力朴素的式子是C(x)=A(x)×B(x)=∑k=02n−2(∑k=i+jaibj)xkC(x)=A(x)×B(x)=\sum^{2n-2}_{k=0}(\sum_{k=i+j}a_ib_j)x^kC(x)=A(x)×B(x)=∑k=02n−2(∑k=i...原创 2018-12-26 21:40:25 · 263 阅读 · 0 评论 -
数列
【简要题意】有两个数列{x},{y},满足x0=y0=1x_0=y_0=1x0=y0=1数论递推式:xn=xn−12+xn−1,yn=yn−121+2yn−1,(n≥1)x_n=\frac{x_{n-1}}{2+x_{n-1}},y_n=\frac{y^2_{n-1}}{1+2y_{n-1}},(n≥1)xn=2+xn−1xn−1,yn=1+2yn−1yn−12,(n≥1)...原创 2019-02-16 15:09:37 · 188 阅读 · 0 评论 -
朋友
【简要题意】每个人手上写着4个互不相同的数。如果两个人至少有一个数字相同,则他们是一对朋友。现在这n个人按序号从左到右排成了一排,每个人都想知道在他左边有多少个人是他的朋友。n<=1e5,所有数字均是不大于50的非负整数。【分析】发现数字的范围很小,所以我们可以考虑枚举数字求朋友数,但发现存在重复统计的情况。再次考虑这种算法,相当于求前面的数字关于这四个数的全集。所以用容斥原理加加减...原创 2019-02-16 15:20:57 · 201 阅读 · 1 评论 -
百万小小兵
【简要题意】求1-n中与n不互质的数的个数。 n<=1e8【分析】当然是求φ(n)\varphi(n)φ(n)然后相减啦。。。。利用公式φ(n)=n(1−1p1)(1−1p2)(1−1p3)⋅⋅⋅⋅⋅⋅\varphi(n)=n(1-\frac{1}{p_1})(1-\frac{1}{p_2})(1-\frac{1}{p_3})······φ(n)=n(1−p11)(1−p21)...原创 2019-02-17 13:27:54 · 181 阅读 · 0 评论 -
密码
【简要题意】求Σi=1ni22i\Sigma^n_{i=1}i^22^iΣi=1ni22i mod 1e9+7mod \ 1e9+7mod 1e9+7的值,n&lt;=1e9n&lt;=1e9n<=1e9【分析】线性复杂度的算法显然是好想的。低于线性的算法有两种:1.数论2.推式子这道题是后者,证明过程如下:设Sn=1∗2+4∗22+9∗23...原创 2019-02-24 14:27:04 · 150 阅读 · 0 评论 -
无意义运算符
题目来源:CF1110C【简要题意】给定a,求f(a)的最大值。f(a)=max0&lt;b&lt;a(gcd(a⊕b,a &amp; b))f(a)= \max\limits_{0&lt;b&lt;a}(gcd(a\oplus b,a\ \&amp;\ b))f(a)=0<b<amax(gcd(a⊕b,a&nb...原创 2019-03-10 19:12:22 · 422 阅读 · 0 评论 -
幻象 phantom.cpp
【一句话题意】有n个长度为一的线段,每个点出现的概率为Ai%。一段线段对答案的贡献为它的长度的平方。求答案的期望值。n<=1e6.【分析】由于只要求保留一位小数,所以卡精度可以乱搞搞过。这里有一份乱搞搞过的代码正解是再加一个辅助数组g表示到i的期望长度。然后就会有两组我不会推的方程。L[i] = (L[i-1] + 1)*a[i]%。设f[i]表示前i秒的答案f[i] = f[i-...原创 2018-10-27 16:29:24 · 194 阅读 · 0 评论 -
快速荷叶叶变换 fht.cpp
【一句话题意】求函数fht(n,m)=Σi=1nΣj=1m(n&amp;amp;amp;ThickSpace;mod&amp;amp;amp;ThickSpace;i)∗(m&amp;amp;amp;ThickSpace;mod&amp;amp;amp;ThickSpace;j)fht(n,m)=\Sigma^n_{i=1}\Sigma^m_{j=1}(n\;mod\;i)*(m\;mod\;j)fht(n,m)=Σi=1nΣj=1m(nm原创 2018-10-27 16:17:11 · 341 阅读 · 0 评论 -
置换 perm.cpp
【一句话题意】定义置换a∗b=c为,cbi=ai(1⩽i⩽n)a*b = c为,c_{b_i}=a_i(1 ⩽ i ⩽ n)a∗b=c为,cbi=ai(1⩽i⩽n)现在有一个长度为n的置换p。求大于0的最小的k使得[1…n]pk=[1…n]。k对19184192取模。n<=1e5【分析】刚开始没有看懂题意,在打了一个暴力模拟置换的程序之后才大致明白。无外乎是重复按照p的方式进行置换,...原创 2018-10-29 14:19:20 · 215 阅读 · 0 评论 -
NOIP第二轮模拟 Day2 小明搬家
【问题描述】小明要搬家了,大家都来帮忙。 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼。 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了。最后大家发现这样混乱地搬运过程效率太低了,于是总结出了提高效率的方法。大家的速度都是每分钟上(或下)一层楼。所有向上走的人手中都拿一个箱子,所有向下走的人手中都不拿箱子。到达第N层立刻放下箱子向下走,到达第1层立刻拿起箱子向上走。当...原创 2018-07-08 14:26:15 · 386 阅读 · 0 评论 -
NOIP2012 Day1 国王游戏
【问题描述】n+1个人排成一列,从2到n+1个人所获得的金币为前面所有人左手数字之和除以自己右手的数字。并对这n个人进行排列使得获得金币最多的人获得的金币尽可能的少。【格式】输入: 第一行,输入n 接下来n+1行,每行两个数a,b,表示第i个人左手和右手的数字 输出: 获得的最少金币数【输入样例】3 1 1 2 3 7 4 4 6...原创 2018-07-05 18:33:06 · 202 阅读 · 0 评论 -
NOIP2012 Day2 同余方程
【题目】求关于方程 ax ≡ 1 (mod b) 的最小正整数解。【输入样例】3 10【输出样例】7【说明】2≤a,b≤2,000,000,000【分析】同志们,这是一道扩展欧几里得算法的模板题啊。 方程可以写成ax-by=1,求不定方程解中x的最小正整数。 其特殊性可以证明gcd(a,b)==1,即a和b互质。 扩展欧几里得算法,请百度或翻开紫书P...原创 2018-07-06 18:02:03 · 182 阅读 · 0 评论 -
NOIP第二轮模拟 游戏
【问题描述】 Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/(2^p) 的概率完成并得到1/(2^(p−1))分,如果完成不了,得0分。一开始每人都是0分,从Alice开始轮流做任务,她可以选择任意一个任务来做;而Bob只会做难度为1的任务。只要其中有一个人达到n分,即算作那个人胜利。求Alice采取最优策略的情况下获胜的概率。 【输入】 一个...原创 2018-07-20 15:04:48 · 235 阅读 · 0 评论 -
【NOIP第二轮模拟】 牛的杂技
【问题描述】 Farmer John养了N(1<=N<=50,000)头牛,她们已经按1~N依次编上了号。FJ所不知道的是,他的所有牛都梦想着从农场逃走,去参加马戏团的演出。可奶牛们很快发现她们那笨拙的蹄子根本无法在钢丝或晃动的的秋千上站稳(她们还尝试过把自己装在大炮里发射出去,但可想而知,结果是悲惨的)。最终,她们决定练习一种最简单的杂技:把所有牛都摞在一起,比如说,第一头牛站在第...原创 2018-07-20 15:23:51 · 357 阅读 · 0 评论 -
特教的理性愉悦(ecstasy)
【分析】 来二中的又一道图论题,貌似还是2016noi导刊的一套题。。。从题面开始分析,这明显是一道图论题,而且还是一道LCA的题目,或者是和LCA有关的一道题。但在询问过程中两个点之间未必联通,貌似无法直接用LCA算法求出(u,v)的路径。仔细思考树的一些特性我们会发现,如果在不走回头路的情形下,树中两点之间的路径唯一的。换言之如果(u,v)联通,那么当前两点间的路径和建树完全...原创 2018-08-01 18:20:58 · 812 阅读 · 0 评论 -
省常中NOIP模拟 孤独 loneliness
【分析】我们开始胡思乱想,结果发现这道题一定是用容斥问题解决。 不是很看得懂。。。#include<bits/stdc++.h>using namespace std;const int maxn=1<<20;const int mod=1e9+7;template <typename T> void read(T &x){...原创 2018-08-14 13:01:40 · 353 阅读 · 0 评论 -
省常中NOIP模拟 失意failure
【分析】转化为从n个区间中选m个区间使得区间交集最小。m个区间的交集一定是所有区间中的最大左端点和最大右端点夹出的区间。我们可以先将所有区间以左端点为第一关键字排序,当枚举到第i个区间时,选取1~区间i-1中前m-1大的右端点,并和第i个区间的右端点进行比较,取最小点更新答案。我们可以使用一个小根堆,每次將右端点加入堆再弹出最小值,保证每次堆中只有m个元素。用堆顶元素减去当前的...原创 2018-08-14 13:37:43 · 312 阅读 · 0 评论 -
capacitor
【分析】假设我们已经确定了一个分数为a/b,则我们可以通过串并联获得两个新的分数a+b/b或者b/a+b,这时我们可以逆推,从最终的“结果分数”回溯到1/1(或者直接回溯到0)。我们还可以得到一个方便运算的结论,如果数为倒数,结果不变。 可以直接所有分数改为假分数,再不停的减一,重复上述操作。方便的可以用除法来加快运算。#include<cstdio>#...原创 2018-08-14 16:15:37 · 320 阅读 · 0 评论 -
荒诞 (absurdity)
【分析】恩,这是一道结论题。恩,没错。 发现无论我们构造一个怎样的字符串,均有Pi=i。 于是我们的问题就变成了求前n项的平方和。鉴于n只有1e6,所以可以直接手摸。也可以使用通项公式:s(n)=n(n+1)(2*n+1)/6。注意每次取模,防止爆零。更不要像我一样手残的输出n。 求通项公式的六种解法 这里是手动模拟的代码:#include<cstdio>...原创 2018-08-12 17:01:50 · 575 阅读 · 0 评论 -
动态仙人掌(dinosaur )
【分析】这道题在考场看到我是完全的蒙蔽的,惊人的妄想着能否用数据离散化后的dp来骗分。。。 我果然很菜。。。好吧,对于我这种菜鸡来说,正解似乎有些难想,让我们考虑从最基本的情况开始考虑。先将所有仙人掌按p为第一关键字排序,从左向右扫。这里我们考虑一个贪心策略,如果仙人掌两两之间距离足够远,则仙人掌之间跳跃的最小高度一定为最高仙人掌的高度。 关于两个相邻的仙人掌如果可...原创 2018-08-08 19:44:24 · 2771 阅读 · 0 评论 -
省常高NOIP模拟 寻梦fantasy
【分析】将目之所及的题面抽象出一定的模型是每个优秀的OIer的基本能力。。。 先提供骗分50的优秀做法,显然的是要想使每个旅者可以回到自己的家乡,整一个交通网一定是由几个环组成的。题目要求在第k天回家,所以每个环的长度一定是k的约数。所以题目就改为,已知n和k求能否将n写成k的几个约数相加的形式(约数可以重复出现)。同时我们还可以发现所有的“约数”环可以拆成一定数量的“质数”环。...原创 2018-08-13 20:35:29 · 548 阅读 · 0 评论 -
【算法进阶0x00】七夕祭
【题面】           \;\;\;\;\;\,TYVJ七夕祭和11区的夏祭的形式很像。矩形的祭典会场由N排M列共计N×M个摊点组成。虽然摊点种类繁多,不过cl只对其中的一部分摊点感兴趣,比如章鱼烧、苹果糖、棉花糖、射的屋…...原创 2019-03-31 17:08:21 · 482 阅读 · 0 评论