
数学
文章平均质量分 50
limboman
这个作者很懒,什么都没留下…
展开
-
2227: [Zjoi2011]看电影(movie)
经典思路:线转化为圈,利用对称性 假设有k+1个椅子围成一圈,每张票上写着1~k+1(而不是1~k),因为概率均等,我们统计有多少种方案导致椅子k+1上坐着人 一共有(k+1)n种可能的情况。为了方便叙述,我们假定每种情况模拟一遍,每次在没人坐的椅子上放一枚硬币(每次恰好有k+1-n把椅子没人坐),则所有情况都模拟完之后每把椅子上都有(k+1-n)(k+1)n-1枚硬币,也就是说,有(k原创 2016-10-22 21:10:22 · 417 阅读 · 0 评论 -
2655: calc
dp方程易得,可证明答案总为多项式,拉格朗日插值;#include<bits/stdc++.h>#define rep(i,k,n) for(int i=k;i<=n;i++)#define rep2(i,k,n) for(int i=k;i>=n;i--)using namespace std;const int N=1007;int mod,n,A;void upd(int& x,i原创 2016-10-21 21:50:09 · 305 阅读 · 0 评论 -
1426: 收集邮票
期望乘法独立….#include<bits/stdc++.h>#define rep2(i,k,n) for(int i=k;i>=n;i--)using namespace std;typedef double db;db g,f;int n;int main(){ scanf("%d",&n);g=f=0.0; rep2(i,n-1,0){ g+=n*1原创 2016-10-21 21:47:58 · 292 阅读 · 0 评论 -
4377: [POI2015]Kurs szybkiego czytania
取补比取交要简单….思考问题的另一面;#include<bits/stdc++.h>#define rep(i,k,n) for(int i=k;i<=n;i++)using namespace std;const int N=1e6+7;char s[N];int n,a,b,p,m,len,tot=0;void upd(int& x,int y){x+=y;if(x>=n)x-=n;原创 2016-10-21 20:33:24 · 370 阅读 · 0 评论 -
3142: [Hnoi2013]数列
设差分数组a 有:ans=Σa(n−ΣK−1i=1a[i])ans=\Sigma_a(n-\Sigma_{i=1}^{K-1}a[i]) 可拆分a[i]的贡献解决问题 教训: 一开始的思路就是尝试移动开头,但没有想到差分求和,而是怎样求以数x结尾的方案数 然后果断转化模型,通过差分容斥搞到了一个O(K)的麻烦组合式 再尝试生成函数,但回推的时候有一个卷积消不掉(能力有限……),强原创 2016-12-08 23:05:55 · 375 阅读 · 0 评论 -
bzoj1893&2371
2004年的论文《优化,再优化》 中所讨论的题的加强版(其实并没有加强多少……); 论文最后给出了n−√\sqrt{n}的复杂度; 其实可以用生成函数给出一种logn\log{n}的做法,而且更加清晰; 首先有递推式: g(i,j)=g(i−1,j)+g(i−1,j−1)+1g(i,j)=g(i-1,j)+g(i-1,j-1)+1 g(1,j)=1g(1,j)=1 1<i,j1<i,j原创 2016-11-27 19:10:59 · 329 阅读 · 0 评论 -
51nod算法马拉松20
先写一下做出的题吧(感觉自己好弱。。。。。) A: 拆分贡献,组合数搞一搞;#include<bits/stdc++.h>#define rep(i,k,n) for(int i=k;i<=n;i++)#define rep2(i,k,n) for(int i=k;i>=n;i--)using namespace std;typedef long long ll;const int N原创 2016-11-28 00:06:53 · 399 阅读 · 0 评论 -
bzoj2277: [Poi2011]Strongbox
可证满足条件的一定是一个mod gcd(a[k],n)的循环群; 考虑mod n意义下的加法群以a[k]生成子群下的偏集划分; 可将问题放在mod gcd(a[k],n)意义下研究(并没有什么卵用…) 然后考虑所构成子群的非单位元最小值便可证;然后就是: 要找到一个数g,使得g|(n,a[k]),且对于任意1<=i<=k-1,g不是a[i]的约数 枚举约数乱搞…#include<bits/原创 2016-12-15 13:34:35 · 617 阅读 · 0 评论 -
3925: [Zjoi2015]地震后的幻想乡
这道题运用了很多数学知识(唉,真羡慕你们高数好的…….) 首先我们扔掉提示。。。。。 尝试枚举最小生成树的最大边x,令g(x)g(x)表示答案<=x的概率 发现答案可以表示成∫10xg′(x)dx\int_0^1xg^{'}(x)dx 根据分部积分法,原式=1−∫10g(x)dx=∫10(1−g(x))dx1-\int_0^1g(x)dx=\int_0^1(1-g(x))dx 即答案=答案原创 2016-12-23 01:04:32 · 555 阅读 · 0 评论