关闭
当前搜索:

UOJ#348. [WC2018]州区划分(FMT)

传送门 题解: 显然的DP :g[S]f[S]=∑i∈Sf[S⊕i]g[i]g[S]f[S]=∑i∈Sf[S⊕i]g[i]g[S] f[S]=\sum_{i\in S} f[S\oplus i]g[i]。 不会做,可以考虑加一个状态优化掉子集转移。 记f[i][S]f[i][S]f[i][S]表示有iii个城市被选,按位或之后为SSS,那么可以去除子集转移的限制,因为f[n][U]f[n]......
阅读(17) 评论(0)

LOJ#6053. 简单的函数(扩展埃拉托斯特尼筛法)

传送门 题解: 扩展埃筛,放一份板子吧: (我写的常数巨大,不过因为做题的时候数量级不可能太大,所以难得卡常了)。。 #include <bits/stdc++.h> typedef unsigned long long LL; using namespace std; const int N=1e5+50; const int mod=1e9+7; const int inv......
阅读(26) 评论(0)

Ural 2058. 100500 palidnromes(回文自动机)

传送门 题解: 每个位置的回文后缀形成lognlog⁡n\log n 个等差数列。 回文自动机多维护三个值:diff,sans,slinkdiff,sans,slinkdiff,sans,slink。 然后暴力跳slinkslinkslink链即可。 #include <bits/stdc++.h> using namespace std; const int N=3e5+5......
阅读(18) 评论(0)

Codeforces Round #463 (Div. 1 + Div. 2, combined) G:Palindrome Partition(回文自动机)

传送门 题解: 这是一道神题,具体题解直接看官方的比较好… 用到了策爷字符串ppt中回文串的回文后缀是lognlog⁡n\log n个等差数列的性质。 #include <bits/stdc++.h> using namespace std; const int N=1e6+50; const int mod=1e9+7; int n,f[N],tot=1; char s[N]......
阅读(25) 评论(0)

Codeforces Round #463 (Div. 1 + Div. 2, combined) E,F

E: 这是道好题啊,以前没遇到过可以这么搞的。 求:∑i=1n(ni)ik∑i=1n(ni)ik\sum_{i=1}^n \binom{n}{i} i^k 题解: (1+x)n=∑i=1n(ni)(1+x)n=∑i=1n(ni)(1+x)^n=\sum\limits_{i=1}^n\binom{n}{i} 然后不停对他求导,再乘上xxx。 这样做kkk次最后把x=1x=1x=1带进去就可......
阅读(40) 评论(0)

Codeforces Round #462 (Div. 1) :C,D

C: 平面图的欧拉定理,对于一个平面图,设其边数为EEE,点数为VVV,连通块数目为CCC,区域数为FFF,那么:F=E−V+C+1F=E−V+C+1F=E-V+C+1恒成立。 对于此题直接求出所有交点,判重之后带入公式即可。 #include<bits/stdc++.h> typedef long double LD; using namespace std; const L......
阅读(11) 评论(0)

BZOJ2395: [Balkan 2011]Time is money(QuickHull算法)

传送门 题解: 将每个生成树看做二维平面上的点,那么最优决策位于下凸包。 先找到两个在凸包上的点,每次找距离两个点距离最远点然后迭代找出所有点,因为凸包上的点的个数为期望lognlog⁡n\log n 的,每次找点是(m+n)logn(m+n)log⁡n(m+n)\log n的,所以总的时间复杂度为O((n+m)log2n)O((n+m)log2⁡n)O((n+m) \log^2 n) (......
阅读(24) 评论(0)

BZOJ2876: [Noi2012]骑行川藏(拉格朗日乘子法)

传送门 题解: 感觉自己是写错了的,好像bzoj的spj有问题。反正这东西没什么用难得改了 拉格朗日乘子法 题解1 讲得已经很好了,大概是这样: 有函数f(X),g(X)f(X),g(X)f(X),g(X),其中XXX是nnn维向量。 那么 f(X)f(X)f(X)取最值时的梯度向量与g(X)g(X)g(X)的梯度向量平行(证明见上面的连接) 而梯度向量的每一维为xixix_i的......
阅读(21) 评论(0)

BZOJ4355:Play with sequence(吉司机线段树)

传送门 题解: 原来的赋值操作相当于加上−∞−∞-\infty之后chkmaxchkmaxchkmax。 注意到给的数据保证0肯定作为最小值出现,相当于要维护加和chkmaxchkmaxchkmax和支持查询最小值个数的线段树,这明显是吉司机线段树。 同时维护add,chkmaxadd,chkmaxadd,chkmax只需要保证addaddadd比chkmaxchkmaxchkmax先下传......
阅读(22) 评论(0)

HDU5306 : Gorgeous Sequence(吉司机线段树)

传送门 题意: 区间chkminchkminchkmin,求最大值,求和。 题解: 吉司机线段树 裸题。 复杂度O(能过)O(nlog2n)O(nlog2n)O(n log^2n) #include <bits/stdc++.h> typedef long long LL; using namespace std; inline int rd() { char ......
阅读(34) 评论(0)

BZOJ3548: [ONTAK2010]Party(Bron–Kerbosch算法)

传送门 题解: 缩完点后做最大点权独立集。 用Bron–Kerbosch算法枚举极大团即可。 时间复杂度O(3n3)O(3n3)O(3^{\frac{n}{3}}) #include <bits/stdc++.h> using namespace std; inline int rd() { char ch=getchar(); int i=0,f=1; w......
阅读(32) 评论(0)

Codeforces 839E :Mother of Dragons(Bron–Kerbosch算法)

传送门 题解: 先猜结论:最后一定是均分最大团。 然后就是板了。。 #include #define rd(x) scanf("%d",&x) #define LD long double using namespace std; const int N=42; int n,k,mx; int nv[N][N],Some[N][N],None[N][N]; inline void...
阅读(36) 评论(0)

poj2989:All Friends(Bron–Kerbosch算法)

传送门 题意: 最大团计数。 题解: 这种题只能深搜了。。但是深搜要讲方法,有一种极大团计数高效算法,可以跑n=100" role="presentation">n=100n=100n=100的稠密图,甚至能跑上万的稀疏图,这就是Bron–Kerbosch算法。 算法流程(from wiki): BronKerbosch1(R, P, X): " role="...
阅读(32) 评论(0)

Uestc844 :程序设计竞赛(动态DP)

传送门 题解: 线段树傻逼题?? Naive! 今年冬令营黑科技之一:动态DP。 慢着,动态DP不是NOIP内容吗? NOIP是动态规划,这个叫动态动态规划。。 用cur" role="presentation">curcur\text{cur}表示以当前数结尾的最大后缀,ans" role="presentation">ansans\text{ans}表示全局最大值,写出转移方程:...
阅读(58) 评论(0)

BZOJ3680:吊打XXX(模拟退火)

传送门 题解: 模拟退火。 记得最后终止步数设置大一点,然后再原地跳几次,不然很容易GG。 #include typedef long double DB; using namespace std; inline unsigned int Rand() { static unsigned int state0=19491001; state0^=(state013)...
阅读(25) 评论(0)

poj2420:A Star not a Tree?(模拟退火)

传送门 题解: 根据模拟退火暴力转移点即可。 #include #include #include #include #include #include #include using namespace std; inline int rd() { char ch=getchar(); int i=0,f=1; while(!isdigit(ch)) {i...
阅读(44) 评论(0)

BZOJ1312:[Neerc2006] Hard Life (分数规划+最小割)

传送门 题解: 二分最终答案λ" role="presentation">λλ\lambda,问题转换为最大化: E−λv" role="presentation">E−λvE−λvE-\lambda v 即最小化: m−E+λv" role="presentation">m−E+λvm−E+λvm-E+\lambda...
阅读(24) 评论(0)

BZOJ1690: [Usaco2007 Dec]奶牛的旅行(分数规划)

传送门 题解: 首先二分答案,然后将问题转化为判断是否存在一个回路满足边权和为正,因为一个回路要满足边权和为正一定有一个简单环满足边权和为正,而这个简单环对应的是原图的合法路径,故直接SPFA判正环即可。 #include using namespace std; inline int rd() { char ch=getchar(); int i=0,f=1; wh...
阅读(30) 评论(0)

UOJ#77. A+B Problem(线段树+最小割)

传送门 题解: 此类黑白染色的问题,通常可以用最小割解决。 先把所有贡献加入ans" role="presentation">ansansans。 对于一个点,建边: S→wi⁡i→bi⁡des" role="presentation">S→wii→bidesS→wi⁡i→bi⁡desS\mathop{\rightarrow}\li...
阅读(30) 评论(0)

HDU5420:Victor and Proposition(KD树)

传送门 题解: 这是经典的KD树模型,所以直接KD树优化建边即可。 不过需要注意的是KD树上的点不能是原来的点,要新建一个映射点连向原来的点,因为原来的点如果增加了本来没有的连边会对答案有影响。。 (刚才搜了搜好像全是线段树?? 赶紧去学一学) upt:: 线段树做法,可持久化线段树合并,比kd树好打多了。。 Code : https://paste.ubuntu.com/26511...
阅读(89) 评论(0)
293条 共15页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:48999次
    • 积分:3447
    • 等级:
    • 排名:第11485名
    • 原创:287篇
    • 转载:5篇
    • 译文:1篇
    • 评论:22条
    联系方式
    QQ: 815095999
    邮箱:815095999@qq.com
    欢迎一起讨论问题
    文章分类