关闭

hnjx2015 hashit

题意: 一个串,资瓷末端插入,删除一个字符,求每次操作后本质不同的子串个数; 题解: “可持久化”后缀自动机裸题,类似按zhi并查集的“可持久化”,复杂度O(N)O(N) 当时考场上的神犇大多是这么A的; 作死写了一发替罪羊树搞的后缀平衡树,代码感觉不长,实际比较长。。。 hash比较版本O(NLog2N)O(NLog^2N)#include #define...
阅读(144) 评论(0)

uoj221. 【NOI2016】循环之美

考完后非常令人伤心的题。。。 打表&&找规律&&数学推导…….. 我们得到了目标式子:Σni=1Σmj=1[(i,j)=1][(j,k)=1]\Sigma_{i=1}^n\Sigma_{j=1}^m[(i,j)=1][(j,k)=1] 这里的(i,j)表示gcd(i,j) 然后:方向一:Σni=1Σmj=1[(i,j)=1][(j,k)=1]\Sigma_{i=1}^n\Sigma_{j=1...
阅读(128) 评论(0)

矩阵树定理

又看了一遍。。。。。 在周冬《生成树的计数及其应用》中有证明; 核心是利用Binet-Cauchy公式 但: “如果图是一颗树,那么C的任一个n-1阶主子式的行列式均为1” 的结论 C好像是度数矩阵+邻接矩阵也没问题?试着证明下又对了对拍也没问题? 这样就能推出错误结论啦 有点方。。。又略略看了其它证明平复一下心情 求路过神犇指正QAQ#include...
阅读(65) 评论(0)

2554: Color

#include #define rep(i,k,n) for(int i=k;i<=n;i++) using namespace std; typedef double db; typedef long long ll; const int N=1e4+7; struct f{ db a,b;f(db a=0.0,db b=0.0):a(a),b(b){} }...
阅读(177) 评论(0)

4521: [Cqoi2016]手机号码

比较基本的数位DP,限制都较为简单;#include #define rep(i,k,n) for(int i=k;i=n;i--) using namespace std; typedef long long ll; const int N=13; void upd(ll& x,ll...
阅读(110) 评论(0)

4553: [Tjoi2016&Heoi2016]序列

挺一般的思路,转变为三维偏序,然后cdq分治维护dp值就可以了 想了10min左右,写了20min左右,调了60min左右。。。 都是sb错误(只有1.5k啊,非得生成数据对拍才能看出吗?) 谨以此文,纪念debug能力越来越弱的自己#include #define rep(i,k,n) for(int i=k;i<=n;i++) #define rep2(i,k...
阅读(145) 评论(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 即答案=答案...
阅读(158) 评论(0)

4540: [Hnoi2016]序列

好像就我的做法麻烦,但是O(nlogn)O(nlogn)的树状数组加仅用于求最小值的酱油线段树; 首先,我们可以注意到对于每个询问均可以被其中的最小值切裂成两部分 以此为划分依据,答案可以分成4部分; (规定l[i]l[i]为i处向左第一个比a[i]小的位置+1,r[i]r[i]为i处向右第一个比a[i]小的位置-1) 设询问ql,qr讨论ql<=i<=qr的所有数产生的贡献; 1.所有l...
阅读(167) 评论(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/...
阅读(187) 评论(0)

bzoj2217:[Poi2011]Lollipop

容易发现题目给的条件对数值的维护增长很慢,故可使用调整法,具体细节见代码#include #define rep(i,k,n) for(int i=k;i=n;i--) using namespace std; void sc(int& x){x=0;char c=getchar();...
阅读(234) 评论(0)

BZOJ 4568: [Scoi2016]幸运数字

暴力合并线性基可以过?...
阅读(82) 评论(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)的麻烦组合式 再尝试生成函数,但回推的时候有一个卷积消不掉(能力有限……),强...
阅读(121) 评论(0)

bzoj4572: [Scoi2016]围棋

这道题我只会子集和变换优化的sb暴力(什么轮廓线插头都忘光了…) 考虑到合法状态的稀疏性(其实是你自己不会证明吧……),就可以放心暴力啦;#include #define rep(i,k,n) for(int i=k;i<=n;i++) using namespace std; const int mod=1e9+7; const int N=5e4+7; const...
阅读(283) 评论(0)

bzoj1115

差分后转变为阶梯博弈#include int u,n,op,l,x,ok; int main(){scanf("%d",&u); while(u--){ l=ok=0;scanf("%d",&n);op^=(n&1); while(n--){scanf("%d",&x);if(op)ok^=x-l;l=x,op^=1;} if(ok)puts("TAK");e...
阅读(222) 评论(0)

bzoj1921 CTSC2010 jewelry

大概是四节课写代码,三节课debug,七个长相差不多的dfs穿插其中…… 好了不吐槽了; 题意: 给定一棵点上有字母的树,和一个母串 求树上点两两之间 N2N^2 条路径在母串中匹配次数和这里采用的基本是《CTSC2010珠宝商新解》–许昊然的做法 首先考虑两种不同的暴力: 1.枚举端点dfs,SAM上跑转移O(N2)O(N^2) 2.这个暴力比较特殊; 考虑一个作为...
阅读(300) 评论(0)
103条 共7页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:18330次
    • 积分:1173
    • 等级:
    • 排名:千里之外
    • 原创:103篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    here
    Just do it