
————线性代数————
hanyuweining
明日はきっと 明日はきっと 仆が世界の中心なので
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
矩阵乘法学习笔记
经历了一发被虐以后,我发现我对矩阵乘法一无所知... 于是开始补坑QAQ 感觉矩乘貌似写起来不是很麻烦就不放代码了(其实是你懒得写) 一、基础 大体过程 —> 我一般的理解方式就是我们在第一个矩阵框一行,然后在第二个矩阵框一列,然后他们的交点的地方就是我们放值的地方。 、 这个样子(?) 矩阵乘法的基本性质 1.满足结合律->这也是我们可以矩阵快速幂...原创 2018-09-26 15:54:32 · 579 阅读 · 0 评论 -
BZOJ3160 万径人踪灭
传送门 FFT好题~ 我们观察一波性质 首先 回文的子序列一定是 j+k=i 其中j和k分别是两个下标 然后i是固定的 这玩意看起来是不是就很像卷积= =+ 我们要求的是f[i]就是固定值是i的时候两侧的相同字符对数 然后呢 我们分别把a和b做一遍 a就是把一个位置上是a的赋成1然后FFT自乘 b同理 a,b对应系数相加就得到了f[i] 求答案就是枚举所有i求2^f[i]-1 但...原创 2018-12-24 19:58:07 · 153 阅读 · 0 评论 -
CF622F The Sum of the k-th Powers
传送门 自然数幂和的拉格朗日插值求法 列出柿子 然后带一下值就可以了qwq 预处理分子分母啥的 见代码吧。 附代码。 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define inf 20021225 #define ll long lo...原创 2018-12-24 21:01:07 · 322 阅读 · 1 评论 -
HDU 4609 3-idiots
传送门 问给定n条小木棍 随机选3根构成三角形的概率 看起来和多项式没啥关系对不对 = = 但实际上它的确可以用多项式来做qaq 我们构造多项式 然后自乘一下就能得到两根木棍拼起来的方案数 然后枚举所有拼出来的长度 算一下>=这个长度的木棍个数 求出不能拼成三角形的方案数 然后最后用减一减 除一除就可以了qwq 【注意sum的预处理范围是两倍权值T^T】 附代码。 #...原创 2018-12-25 08:00:59 · 152 阅读 · 0 评论 -
【挖坟】HDU3205 Factorization
分圆多项式 问题在于精度貌似出了一些奇怪的问题。。。 【输出也写的有问题QAQ】 完全不会处理了 加上全网没有题解T^T 挖个坑以后补。。 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define inf 20021225 #define ...原创 2018-12-25 15:53:53 · 230 阅读 · 1 评论 -
洛谷3321 SDOI2015 序列统计
懒得放传送【大雾 有趣的一道题 前几天刚好听到Creed_神犇讲到相乘转原根变成卷积的形式 看到这道题当然就会做了啊w 对于m很小 我们暴力找原根 如果你不会找原根的话 出门左转百度qwq 找到原根以后所有数转成原根的幂次然后卷积就吼了啊 多项式卡速米 由于是循环卷积所以每一次还要转回系数相加再转回来 所以是不优美的O(nlg^2n) =v= 代码在这里。 //Love and...原创 2019-01-05 10:17:50 · 262 阅读 · 0 评论 -
BZOJ3625 CF438E 小朋友与二叉树
心态崩了 不放传送门了 辣鸡bz 还是正经一点写一下题解= = 就是显然我们可以把权值写成生成函数形式g(0/1序列)来表示权值是否出现 然后f来表示总的方案数 可以列出 分别枚举左右子树和空树的情况 然后解方程得到 显然开根开出来常数项是1 而g不带常数项 那么就必须取-才能保证除法有效 然后为了计算方便我们把柿子写成(平方差上下同乘) 然后就是多项式开根和多项式求逆了 多项式...原创 2019-01-02 11:35:44 · 185 阅读 · 0 评论 -
CF662C Binary Table
FWT板子w 就是一个显然的做法就是枚举哪些行翻转,然后对于每一列贪心取翻转或者不翻即min(count(i),n-count(i)) 这样肯定是过不去的 我们来考虑优化 我们记录数组F表示对于一个数i它的较优翻转 即上面的那个柿子 然后再记录一个数组表示原来的矩阵中每一列的计数 cnt[i]表示将一列看成一个二进制数 这个数是i的列数 对于答案我们有就是考虑计算贡献 ans[k]表示行...原创 2019-01-07 11:02:29 · 372 阅读 · 0 评论 -
LOJ149 0/1分数规划
竟然没有写过分数规划的题解 考前挣扎一发板子( 二分答案k 然后0/1分数规划的方法就是 分母乘过去然后贪心解决 注意实数二分的精度 一般估计一个次数比较好不然容易出现精度比较误差【惨痛教训 就做完了qwq //Love and Freedom. #include<cstdio> #include<cstring> #include<algorithm&g...原创 2019-01-18 15:41:37 · 234 阅读 · 0 评论 -
BZOJ5297 CQOI2018 社交网络
考前挣扎 有向图生成树 我们知道对于无向图生成树可以通过矩阵树定理来算具体就是 度数矩阵 - 邻接矩阵 去掉任意一行一列得到余子式 对行列式求值 有向图生成树分为外向和内向两种 外向生成树当然是所有边指向儿子 他的矩阵树定理是这个样子 对于有向边(x,y)度数矩阵d[y][y] ++ 邻接矩阵e[x][y] ++ 内向生成树所有边指向父亲 对于有向边(x,y)度数矩阵d[x][x]...原创 2019-01-18 19:31:55 · 185 阅读 · 0 评论 -
CF917D Stranger Trees
传送门 非常舒适的一道题 趁机学了一发拉格朗日插值2333 貌似是WC2018讲的题 我们对于在原图中存在的边 记为x 没出现的边记为1 然后矩阵树定理求出行列式 对应的x^k的系数就是跟原图有k条重边的方案数 显然带多项式进去不好算 那么我们拉格朗日插值 对于x分别算1-n得到了n个值 然后插值回来就可以了 拉格朗日求系数我也没有找到好的博客 于是找到学长求助 结果他们说的我很懵...原创 2018-12-24 15:23:36 · 311 阅读 · 0 评论 -
洛谷4721 【模板】分治 FFT
传送门 久违的多项式全家桶= =+ 分治NTT 用的就是cdq分治的思想 对于当前递归到的区间[l,r] 我们处理出[l,mid]对[mid+1,r]答案的贡献 然后分治递归求解就可以啦qwq 这个贡献是前一半卷积的答案加过去就可以啦 对于x的贡献 附代码。 #include<cstdio> #include<cmath> #include<algor...原创 2018-12-22 18:36:32 · 201 阅读 · 0 评论 -
线性基学习笔记
补坑 线性基在我的理解来看,就是把原来较大的集合转换成最大的数的二进制位数大小的集合。通过这个操作可以用选择子集异或的形式表示出原集合。 基础实现 每次插入一个数就从高位到低位,如果这位是1的话,分两种情况。如果线性基里存在这一位了,那么这个数异或上线性基里的数,不然的话线性基里这一位数就是这个数啦。 代码实现很简单。 void build(ll x) { for(int i=lg-...原创 2018-09-03 14:55:37 · 354 阅读 · 0 评论 -
UOJ197 线性规划
传送门 由于这道题标程GG了所以必不可能AC嘛2333 单纯形法是一个很玄学的东西qwq 就是 非标准型 -> 标准型 -> 规范型 -> 松弛型 一个玄学操作——转轴操作(privot) 等着学习笔记到时候再补吧先把程序放出来 写了一些注释方便理解qwq #include<cstdio> #include<cstring> #includ...原创 2018-12-06 11:07:16 · 160 阅读 · 0 评论 -
BZOJ1061 NOI2008 志愿者招募
传送门 本来是费用流神建模但是被单纯形搞定了鸭2333 mi,j表示第i天第j种志愿者能否工作 Ai表示第i天至少要用的人数 要最小化代价(目标函数) 不是标准型所以根据线性规划的对偶性就可以做了qwqqq 线性规划的对偶性: 如果 和 均有可行解,则他们最优解相同或同时为Unbounded 这个题需要满足最优解是整数(你又不可能把人劈开) 但是实际上这个矩阵的...原创 2018-12-06 11:43:12 · 110 阅读 · 0 评论 -
BZOJ3527 ZJOI2014 力
传送门 FFT复健中。。。 把柿子拆开 两边分别变成q卷g g是1/i^2就可以了(第二个把q翻转就好了) 菜到这个都想不出( 附代码。 FFT学习笔记先等我鸽着吧 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<com...原创 2018-12-06 11:47:37 · 146 阅读 · 0 评论 -
BZOJ3550 ONTAK2010 Vacation
传送门(没有是因为我没有权限号) 单纯形暴力构造吼啊 对每个元素限制一下不能选多于一个 再对每N个元素限制一下不能多于K个 一共是3N+2N-1=5N-1个约束 跑就行了2333 (单纯形在不需要ID的时候尽量不要写 因为需要开N+M的空间 RE惨惨 非常容易忘) 附代码。 #include<cstdio> #include<cstring> #includ...原创 2018-12-06 13:57:59 · 169 阅读 · 0 评论 -
BZOJ3112 ZJOI2013 防守战线
传送门 (消失的题面) 洛咕 (这里还是有题面的233) 还是根据线性规划列个柿子然后对偶一下就可以了 对偶一定想清楚行列( 附代码。 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define inf 20021225 #define ll...原创 2018-12-06 15:21:33 · 240 阅读 · 0 评论 -
BZOJ4503 两个串
没有传送门 因为是权限题 =.= 利用卷积来做字符串匹配问题= =+ 如果我们现在有两个串 单纯要匹配它们我们可以怎么做呢 ? 很明显是不可以的 因为可能出现这种情况 aabb bbaa 两个部分抵消掉了=.= 我们如何处理这样的问题呢?平方! 这样子就好多了qwq 然后我们来处理通配符 通配符设为0然后乘上去就可以啦qwq 是不是非常优秀 = =+ 然后我们回归原题...原创 2018-12-26 15:36:10 · 189 阅读 · 0 评论 -
BZOJ4259 残缺的字符串
没有传送门 = = 跟上一个题一样 请戳链接 唯一的变化就是柿子稍微一改 然后没啥了 注意翻转的位置要改。。。所以不如翻那个不需要改的= =+ #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #d...原创 2018-12-26 16:01:49 · 305 阅读 · 0 评论 -
【学习笔记】之多项式使人头秃
真的自闭= = 多项式是什么鬼哦 首先 介绍 FFT 我才不想写那么多柿子呢 大体说一下FFT干了啥 我们对两个多项式进行卷积(即多项式乘法) 也就是 暴力计算的话是n^2的 我们考虑把它变成点值[即(x,y)表示f(x)=y] 点值相乘就快了嘛 但是变成点值了以后咋变回来呢 有个叫傅里叶的nb的人 他发明了一个nb的东西叫傅里叶变换= = 也就是通过 虚数中的单位根...原创 2018-12-10 11:40:14 · 413 阅读 · 0 评论 -
BZOJ4269 再见xor
考前挣扎 线性基裸题 mx直接求 次大直接从低到高枚举第一个非0位 然后次大就是异或上就行了【显然贪心呐qwq 不到800b可还行 //Love and Freedom. #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define inf 2...原创 2019-01-18 20:25:08 · 215 阅读 · 0 评论