关闭

[最短路] HDU 5910 Advanced Traffic System

理解了有一会儿,但是题解确实说清楚了关键是只需要更新一遍#include #include #include #include #include #define pb push_back using namespace std; typedef pair abcd;inline char nc()...
阅读(92) 评论(0)

[杂题] Ural 1961. Cantonese Dialect

根据最大似然估计,应该找出最大的 f(M)=(Mm)(N−Mn−m)(Nn)f(M)={{M\choose m}{N-M \choose n-m}\over {N\choose n}}我们手推下 f(M+1)≥f(M)f(M+1)\ge f(M),得M≤(N+1)mn−1M\le {(N+1)m\over n}-1 那么答案是(N+1)mn{(N+1)m\over n}#include<cstd...
阅读(146) 评论(0)

[两道递推题] 美团 CodeM 初赛 Round A 二分图染色 & OEIS A001499

好久没做过n=107n=10^7这种正常的递推题了二分图染色转化为棋盘模型,即 N×NN\times N 棋盘上放黑白棋子,每个格子至多放一个,同行同列没有相同颜色的棋子。 令bnb_n为只有一种颜色,那么bn=∑ni=0Cin×Pinb_n=\sum_{i=0}^n C_n^i\times P_n^i 然后我们考虑容斥掉两个颜色在同一格,如果一个格子既放黑又放白,那么这一列和这一行不会有其他棋...
阅读(215) 评论(0)

[杂题] AtCoder Grand Contest 007 E Shik and Travel

二分答案 然后每个子树维护二元组(a,b)(a,b)表示存在一个进入该子树后,第一天花费为aa,最后一天花费为bb,中间天都满足相邻叶子距离小于等于MidMid 直接转移状态数太多,我们发现对于一个aa只需要最小的b′b',一个bb只需要最小的a′a',可以two-pointers合并 那么新的状态数|S|≤2×min(|S1|,|S2|)|S|\le 2\times \text{min}(|...
阅读(144) 评论(0)

[霍尔定理] AtCoder Regular Contest 076 F Exhausted?

霍尔定理 有完美匹配必然有任意 |S|≤|N(S)||S|\le|N(S)| 那么这题答案就是max{S−|N(S)|}max\{ S-|N(S)|\}我们枚举N(S)N(S),必然是x≤s∨x≥tx\le s \vee x\ge t的形式 那么对其有贡献的ii,满足Li≤s<t≤RiL_i\le s< t\le R_i 直接扫描线注意特殊讨论N(S)N(S)是全集的情况 这样的话不用满足Li...
阅读(247) 评论(0)

[堆] hihoCoder Challenge 29 D. 不上升序列

出烂了的原题,有可并堆的做法 然而昨晚翻原题的时候发现了精妙的做法看这里 令fi(x)f_i(x)为前ii个数,调整出最大值不超过xx的最小代价 那么fif_i是一条不升的折线 考虑转移 fi(x)=∑y≤xfi−1(y)+|ai−y|f_i(x)=\sum_{y\le x}f_{i-1}(y)+|a_i-y| 这实际上是两条折线合并一下 我们讨论两者的位置关系 实现的话只需要在堆中记下...
阅读(407) 评论(5)

[二幂拆分] hihoCoder Challenge 29 B. 快速乘法 & BZOJ 1111[POI2007]四进制的天平Wag

参考这里 这是个经典问题,我们考虑记忆化搜索的过程,那么每次一个状态x,会产生新状态 ~x+1什么的,而这个状态数总数是O(logn)O(\log n)的 举个链接中的例子 1010110 –> 10110 –> 110 -> 10 0101010 –> 1010 所产生的所有串的数目刚好是x的位数减去末尾的0的数目那么我们就可以直接写一个记忆化搜索,然而这不优美 可以直接从低向上DP...
阅读(316) 评论(11)

[反演 数论] 51Nod 1355 斐波那契的最小公倍数

我好菜啊 出过一万遍的原题 我怎么第一次看见啊 某乎链接 按照zyz的做法 orzzlcm(fS)==∏T⊆S,T≠∅gcd(fT)(−1)|T|+1∏T⊆S,T≠∅f(−1)|T|+1gcd{T}\begin{eqnarray} \text{lcm}(f_S)&=&\prod_{T\subseteq S,T\neq \emptyset }\text{gcd}(f_T)^{(-1)^{|T|+1...
阅读(452) 评论(1)

[容斥] BZOJ 4762 最小集合

看fls的题解吧#include #include #include using namespace std;const int N=1055; const int P=1e9+7;inline void add(int &x,int y){ x+=y; if (x>=P) x-=P; }#define read(x) scanf("%d"...
阅读(100) 评论(0)

[杂题 贪心] BZOJ 2138 stone

#include #include #include using namespace std; typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fread(buf,1,1...
阅读(187) 评论(0)

[Notes] 手工栈技巧

其实很久之前的东西了,可是最近一直懒得更,为了以后好查看还是更一下最近做一个OJ,系统栈有点小? 然后在fls的教导下,自己YY用goto和define写出了奇怪的代码 自我感觉还很优美?就是这样一个函数inline void dfs(int u){ if (vst[u]) return; vst[u]=1; f[u]=abcd(u,u); while (1){ abcd p...
阅读(114) 评论(0)

[线段树] Codeforces Round #419 (Div. 1) D. Karen and Cards

从小到大枚举xx,剩下的限制是y>bi⋀z>ciy>b_i \bigwedge z>c_i或者y>bi⋁z>ciy>b_i \bigvee z>c_i 对应的是平面上一个矩形或者挖掉一个矩形 发现平面上矩形的交取个min就好了,挖掉的矩形要取并,这个可以用平衡树或线段树维护 大概是这样,我是灵魂画师 #include #include #include<al...
阅读(128) 评论(0)

[多项式求逆] 51Nod TalkingData数据科学精英夏令营挑战赛 F 驴蛋蛋与老孙与微分式

题解里给出了一种解偏微分方程得出生成函数的方法 最后应该是 H(z,x)=sinz+xcoszcosz−xsinzH(z,x)={\sin z+x \cos z \over \cos z−x\sin z} H(z)=sinzcosz=tanz=x+13x3+215x5+o(x5)H(z)={\sin z \over \cos z}=\tan z=x+{1\over 3}x^3+{2\over...
阅读(268) 评论(0)

[数位DP AC自动机] Codeforces 434C Round #248 (Div. 1) C. Tachibana Kanade's Tofu

这个题无话可说 fi,j,k,tf_{i,j,k,t}表示第 ii 位,AC自动机上走到 jj ,当前得分为 kk ,是否小于上界 tt , 复杂度看着很高,其实跑不满?#include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using...
阅读(177) 评论(0)

[分块] BZOJ 4867 [Ynoi2017]舌尖上的由乃

这个题啊 分块 每块O(n√)O(\sqrt n) 把每个块内出现次数做一个前缀和,方便二分的时候O(1)查 然后整块加就打标记,两边零散的,变化不超过10,那么就直接在前缀和数组上修改下 复杂度大概是O(nn√logn+nn√×10)O(n\sqrt n\log n+n\sqrt n\times 10) 还有个问题是前缀和存不下?其实是存的下的,我们只要求从最小值开到最大值就好了,每次整块...
阅读(272) 评论(0)

[拉格朗日乘数法 二分] BZOJ 2876 [Noi2012]骑行川藏

拉格朗日乘数法 ACdreamers [Math & Algorithm] 拉格朗日乘数法首先那个能量肯定是要花完的,就变成一个限制了,乘上拉格朗日乘子,求偏导,变成了 2λkix2i(xi−vi)=12\lambda k_ix_i^2(x_i-v_i)=1 ∑kisi(xi−vi)2=E\sum k_is_i(x_i-v_i)^2=E发现 x≥vx\ge v 且 x2(x−v)x^2(x-v...
阅读(173) 评论(0)

[Hash] BZOJ 4076 [Wf2014]Maze Reduction

第一眼觉得和一道题莫名相似,实际上并没有什么关系ft,i,jf_{t,i,j}表示从第 ii 个点,第 jj 扇门出发,走 tt 步所有情况的Hash值,那么很好转移一开始假设掉在房间中间,那我们按照顺序把所有点走过去一遍,取个最小表示,Hash在一起最后Hash值相同的就是等价了#include #include #include #include...
阅读(111) 评论(0)

[最大团 随机化 || 二分图最大独立集] BZOJ 4080 [Wf2014]Sensor Network

最大团这种数据范围,标算只有被随机艹的节奏了吧正解 抄自这里 我们穷举两个点,这两点距离要小于限制 然后我们分别以这两个点为圆心,两点距离为半径画圆 圆圆相交的部分被两点练成线段划分成两部分,不难发现 每个部分内点点之间的距离是小于限制的,很明显想到二分图 对于上半部分与下半部分的两点,如果距离大于限制则连边 然后我们求最大点独立集即可 #include<cstdi...
阅读(216) 评论(0)

[最大似然估计 MLE] Codeforces 802DEF Helvetic Coding Contest 2017 D. E. F. Marmots

MLE最大似然估计可以通过观察数据来估计出随机的模型和参数 最大似然估计(Maximum likelihood estimation) Maximum likelihood estimation大概就是从所有可能的参数和模型中,选出概率最大的那一组模型,作为估计的模型和参数相关的还有一个最大后验估计(MAP),我没看过然后就很好写了D#include #include<cstdl...
阅读(237) 评论(0)

[几何] Codeforces 772B VK Cup 2017 - Round 2 B. Volatile Kite

那么问题来了 O(n)O(n)判到底对不对#include #include #include using namespace std; typedef double ld;struct P{ ld x,y; void read() { double _x,_y; scanf("%lf%lf",&_x,&_y); x=_x; y=_y;...
阅读(125) 评论(0)
972条 共49页首页 上一页 1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:261086次
    • 积分:11910
    • 等级:
    • 排名:第1320名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:49条
    最新评论