题面 题解 幸好咱不是在晚上做的否则咱就不用睡觉了--都什么年代了居然还会出高精的题-- 先考虑如果暴力怎么做,令\(G(x)\)为\(F(n,k)\)的生成函数,那么不难发现\[G^R(x)=\prod_{i=1}^n(x+i)\] 也就是说如果把\(G(x)\)的系数反过来就是后面那个东西,所以对于\(n\leq 100000\)的数据直接分治\(FFT\)就行了.不过因为这里的模数不一定满足原根性质,所以要用三模数\(NTT\)或拆系数\(FFT\)(所以咱为了这题还特地去学了一下拆系数-…
题面 题解 这种题目就是要好好推倒 我们枚举最小的数是哪一个,那么答案就是\[Ans=\sum_{i=1}^nT^i{n-i\choose k-1}\] 因为有\[\sum_{i=p}^n{n-i\choose k-1}={n-p+1\choose k}\] 原式太难算了,我们可以先计算\(\sum_{i=1}^nT{n-i\choose k-1}=T\times {n\choose k}\),再加上\(\sum_{i=2}^n(T^2-T){n-i\choose k-1}=(T^2-T)\ti…
统计方案数,要么组合数,要么递推(dp)了. 这是有模拟赛历史以来爆炸最狠的一次 T1写了正解,也想到开long long,但是开错了地方然后数组开大了结果100->0 T3看错题本来简单模拟又给我搞成0分 T5差分约束本来很简单但是又被我胡搞炸掉了..... 本题T4,难到爆炸的T2把我困住了..... 先讲讲考试看道题的想法: 思考了一会吗,推出几个结论,然后准备写了,感觉可以短时间A掉,结果被T2困住,一小时只优化掉了一个没啥用的n..(n^5logn的复杂度用爱过题) 然后现在来讲讲正解…
题面 题解 设\(lim=(n-1)/2\)(这里是下取整),那么\(x\)位置的值最大不能超过\(lim\),而\(y\)处的值不能小于\(y\),于是有\[Ans=\sum_{i=1}^{lim}\sum_{j=2 i+1}^n(y-2)!{j-2\choose y-2}(n-y)!\] 上式的意思是,枚举\(x\)处的值\(i\)和\(y\)处的值\(j\),那么放在\(y\)前面的数都不能大于\(j\),要从除了\(i,j\)之外的剩下\(j-2\)个数中选出\(y-2\)个,因为顺序无…
题面 题解 我们把每个地雷向它能炸到的地雷连边,不难发现同一个强联通分量里的点只要一个炸全炸 那么我们缩点,首先所有入度为\(0\)的强联通分量中必须得选一个地雷炸掉,而入度不为\(0\)的强联通分量绝对会被某个入度为\(0\)的点连锁反应给炸掉,所以不用考虑 于是对于每个入度为\(0\)的点开一个\(set\),维护里面的所有\(c_i\),从每个\(set\)里取出最小的加入答案,修改也没问题了,于是有\(50\)分了 然而现在的问题是边数太多了,题解的做法是用线段树优化连边,于是就可以\(…
觉得django项目把本地更新push到gitlab,再执行fabric脚本从gitlab更新服务器项目挺方便的,当然从本地直接到服务器就比较灵活. 2019/01/17 基于windows使用fabric将gitlab的文件远程同步到服务器 # -*- coding: utf-8 -*- from fabric.api import env, run from fabric.operations import sudo GIT_REPO = "gitlab-project地址" en…
Sqlite && EF Code FIRST 终极解决方案 2019.5.17 包括根据模型自动生成数据库,初始化数据,模型改变时的自动数据迁移等 2019.12.25 更新 支持EF6.3的SQL Generation:NuGet:Link.EntityFramework.Sqlite 我是真的服了,用nuget自动安装的config每次都用不了,需要添加factory: <remove invariant="System.Data.SQLite" />…
link 巨佬olinr的题解 <-- olinr很强 考虑生成函数 考虑直径上点数>=4的毛毛虫的直径,考虑直径中间那些节点以及他上面挂的那些点的EGF \(A(x)=\sum_{i\ge 1}\frac{ix^i}{i!}\) 考虑和直径两端点相连的节点,我们强制让他挂至少一个点(否则他就成了直径端点就重复了),EGF \(B(x)=\sum_{i\ge 2}\frac{ix^i}{i!}\) 最后答案生成函数就是 \(Ans(x)=B(x)*\frac{1}{1-A(x)}*B(x)\)…
这题的话思路挺简单的,主要是打一个高精乘,然后考虑一些细节的东西 码得挺少时间的,但是调错调了很久... 讲一下思路吧: 就是读入的时候,先把小数点去掉,mark一下小数点的位置 去掉小数点之后也就进行高精乘法即可,去掉前导零 之后计算一下小数点的位置 再去掉小数点后多余的零 以及特判k=1的情况,直接输出答案 细节的地方主要就是在模拟上吧, 我WA了几次: 1.当小数点后面没有数字的时候,当然不需要输出小数点...这个没有考虑进去 2.没有特判k=1的情况,因为答案是放在c数组里,所以当k=1…
题目链接: https://jzoj.net/senior/#main/show/6080 题目: 题意: 给定$n,m,u,v$ 设$t_i=ui+v$ 求$\sum_{k_1+k_2+...+k_m=n}t_1^{k_1}t_2^{k_2}...t_m^{k_m}(k_1,k_2,...,k_m∈N)$ 算法一: 对于$m=1$的点,显然答案就是$t_1^n$,快速幂计算即可 获得$5$分 算法二: 对于$m=2$的点,$\sum_{k1+k2=n}t_1^{k_1}t_2^{k_2}=\f…