自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Faithfully-xly的博客

Never ever lose your passion to follow your dream

  • 博客(335)
  • 收藏
  • 关注

原创 Diary Ⅴ

WellTime fliesHere come the last weekAre you ready?Come on !2019/11/111.考试题【√】2.周末作业【√】3.模板练习今天考试T1 100ptsT2 100ptsT3 10ptsTotal:210pts最高:260ptsT1 签到题T2 组合数学(打表找规律)但是正解真的很棒啊设选出来的数从小...

2019-11-11 21:42:52 277

原创 Diary Ⅳ

1.洛谷P3879 阅读理解2.WOJ#18303.WOJ#4786 正解4.1102考试T3写法状态定义

2019-11-04 08:44:13 236

原创 Diary Ⅲ

每周开一篇,这安排不错上个星期还是没有达到想要的状态,还是有很多遗漏的没有处理。可是人确实是会累的,不能否认这一点,我们应当保证效率地学习,而不是用无效的努力麻痹自己,让自己沉浸在一种自我感动的错觉中。继续上周未完成的任务:1.图论的总结2.区间dp和树形dp3.Cat transportation4.二次元冒险的最短路做法+复杂度分析5.华容道的dfs写法6.二维数点问题...

2019-10-29 15:48:51 232

原创 Diary Ⅱ

上一篇博客太长了,重新开一篇待解决:1.图论的总结2.区间dp和树形dp3.斜率优化dp4.二次元冒险的最短路做法+复杂度分析2019/10/22上午考试中午+下午改题晚上联赛真题(如果任务完成了,晚上回家看会儿书呗)期间自己找时间完成【待解决4】...

2019-10-27 10:08:46 193

原创 Dairy?Diary!

speechless

2019-10-21 12:18:24 687 4

原创 CSP-S赛前专题总结

图论最短路生成树强连通差分约束拓扑排序欧拉图最短路1.建模:将原问题转化通过某种性质转化为图论问题注意: 建图的时候是否可以优化(是否加了一些对答案无影响的边) 和某些特定数量的点有关,考虑枚举。(枚举时也可以优化,比如只枚举前几个,便可以推出最后一个,诸如此类) 一些需要用到的值,考虑预处理。枚举+拼凑答案可以建模的情况:最值(e.g.墨墨的等式)...

2019-10-20 23:30:12 144

原创 CSP赛前一周 模板训练

数论 线性筛素数、欧拉函数 质因数分解 最大公约数&最小公倍数 扩展欧几里得算法 线性同余方程+中国剩余定理 矩阵乘法 高斯消元 组合计数 容斥原理 概率&数学期望 0/1分数规划质因数分解:N的正约数的和为:(1+p1+p12+p13+...+p1c1)∗...∗(1+pm+pm2+pm3+...+pmcm)(1+p_1+...

2019-11-14 15:17:02 276

原创 考前错误总结

1.符号优先级 加括号2.INF不能设太小了,你与之比较的都是long long 类型的,结果INF却是int类型的。。。。。(0x3f3f3f3f其实很小的)3.eps不能设为int,那就是0了啊4.计算内存空间5.变量名冲突6.输出输入与定义不符 记得开-Wall -Wextra7.调试语句是否删完了8.文件名是否打错 直接复制pdf上的文件名9.函数是否有返回值10.重载...

2019-11-13 17:11:34 240

原创 多源最短路的学习&应用

还是接触了好几道多源最短路了。结果每次都发现自己并没有真正理解,做一道错一道(不过乐观一点想,也是做一道错一道学一道啦qwq)初次相遇:HDU6166官解:按照点的标号的每个二进制位分组,最多分20次(准确的说是17次)。每次会把某一位不同的点分开到起点和终点集,然后再起点终点互换,再做一次。正确性在于:对于任意两个点u和v,u和v是不同的点,必然有至少一个位不同,因此至少有一次他们被分到了...

2019-11-08 18:24:12 186

原创 可并堆 - Monkey King(HDU1512)

传送门Analysis我都忘了自己学过左偏树了【呜呜呜呜】就当模板复习吧合并操作int merge(int x,int y){ if(!x||!y) return x+y; if(tree[x].val<tree[y].val) swap(x,y);//这里处理的是大根堆 tree[x].rc=merge(tree[x].rc,y); fa[tree[x].rc]=x;/...

2019-10-28 15:50:38 119

原创 堆+双向链表 - 种树(BZOJ2151)

学习ingAnalysis第一眼反应这不是个水dp吗……仔细一想,是我太naive了由于是个环,所以这个是有后效性的(1位置选不选会影响n位置)那怎么办呢?题解爸爸告诉我:如果没有相邻不能选的限制,就直接贪心选择前m大的值即可以后做题的时候先从简单的思考起走,把限制去掉那么现在加上这个限制,我们该如何考虑呢?沿用上面的贪心思路假设A[3]最大,那我们就试图去选A[3]。选中...

2019-10-28 14:23:07 128

原创 k叉哈夫曼树 - NOI2015荷马史诗

Analysisk叉哈夫曼树解析这道题稍微还需要注意一点的就是最后还要求最长长度最短这个其实就是在面对两个权值相同的情况下,优先合并深度较小的点Code#include<bits/stdc++.h>#define re register#define in read()using namespace std;inline char nc(){ static cha...

2019-10-28 12:32:12 125

原创 浅谈Huffman树

学习ing二叉哈夫曼树一、定义给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。(摘自百度百科)带权路径:到达该叶子节点经过的边数×叶子节点当前代表的数二、实现贪心每次从所给序列中找到两个权值最小的点合并,将合并后的新权值放回...

2019-10-28 12:13:08 1466

原创 并查集删除点 - Junk-Mail Filter(HDU2473)

传送门Analysis最粗暴的想法:删除一个点,就将这个点的father设为自己显然,错误因为与这个点相连的其他点的父亲仍然没变比如1,2,3的父亲都是1,现在删除1,1的父亲还是1,2,3也是1,集合还是1个,正确的应该是2个。那稍微思考一下后:删除一个点,就为这个点的father设一个新的节点可是,还是错误比如1,2,3的父亲都是1,现在删除1,1的父亲设为4,2,3目前...

2019-10-28 10:00:48 158

原创 浅谈斜率优化dp

斜率优化dp的本质还是dp只是转移耗时太大,我们需要根据其转移方程优化两种常见的计算斜率的方法:1.作差比较法举个例子当前我们的dp转移方程为:(最后求f[n]f[n]f[n]的最小值)f[i]=f[j]+(sumt[i]+s)∗(sumc[i]−sumc[j])f[i]=f[j]+(sumt[i]+s)*(sumc[i]-sumc[j])f[i]=f[j]+(sumt[i]+s)∗(...

2019-10-27 17:59:56 158

原创 扫描线+线段树 - SOJ#999 纪念碑

传送门Analysis将每个矩形(x1,y1,x2,y2)(x1,y1,x2,y2)(x1,y1,x2,y2)拆成两条线段(x1,y1,y2)(x1,y1,y2)(x1,y1,y2) (x2,y1,y2)(x2,y1,y2)(x2,y1,y2)维护两个指针,按横坐标递增扫描过去遇到线段的时候就进行相应的操作具体来说:把y坐标看作下标,维护一个线段树然后相当于查询区间内的最长未被覆盖...

2019-10-27 13:09:20 148

原创 字符串dp - WOJ#1223 子串

传送门Analysis首先这个名字“字符串dp”就是我乱取的……反正在字符串上搞嘛第二次做,在知道这是dp的情况下,依旧没有分析出来。。在大致瞥了一眼定义后,仍旧没有转移对。菜是十大原罪之首考虑两个字符串一般都需要在状态中记录下当前分别在各个串的哪个位置那么前两维我们就定义出来了f[i][j]f[i][j]f[i][j]表示在A串中进行到前i位,B串进行到前j位等等,这样的定...

2019-10-25 17:39:11 209

原创 记忆化搜索 + 贪心 - WOJ#1838 引水入城

传送门Analysis这道题的关键之处就在于一个很重要的结论:每个蓄水厂在最底层能覆盖的一定是一个连续的区间有了这个性质后,我们就可以记忆化搜索得到每个蓄水厂能覆盖的最左端点和最右端点,然后贪心进行最少线段覆盖即可至于我这个憨憨。只想到了n3的做法对于每个蓄水厂bfs,记录下它能到达的最底层的点然后就无法做到记忆化,也不能做线段覆盖本来在思考用类似背包的思想处理每个蓄水厂,然而...

2019-10-25 14:31:30 138

原创 单调队列优化dp - WOJ#2735 跳房子

传送门Analysis当年考NOIP普及组的时候,还不会dp考场上看到这道题,直接果断弃时隔两年,我终于能看懂题了/笑显然是一个二分+dp判断合法定义f[i]f[i]f[i]表示到达i这个位置可以获得的最多分数显然f[i]=max(f[j])+score[i]f[i]=max(f[j])+score[i]f[i]=max(f[j])+score[i]jjj满足max(1,d−g)...

2019-10-25 10:34:28 155

原创 NOIP2013华容道

Analysis拿到题后首选搜索然后人家暴力都是七八十我只有5分???不知道哪里dfs挂了至于一开始想到的bfs因为害怕死循环而不知道怎么打标记所以弃了翻了神仙的题解后,才意识到bfs有个重要的性质,第一次访问到的节点到达它的距离一定最小后面再到达就不优了,这个不仅可以用于剪枝,而且还可以避免重复走的情况...

2019-10-25 08:34:13 277

原创 (巧妙转化)欧拉回路 - Mike and Fish(CF547D )

传送门Analysis有点妙嘞。好题????每一行,每一列分别看作一个点同一个点的行列相连边显然会得到一个二分图而对于染色操作,等价于给每条边定向最后要求满足每个点的出入度之差<=1(是不是和今天这道考试题WOJ#4761有点像呢?只是变简单了,只有边权为1的情况)这个情况怎么分配来满足呢?考虑到欧拉回路的性质每个点的出度==入度我们就将原图变作欧拉回路,跑一跑即可(也...

2019-10-22 21:40:41 113

原创 分块+打表 - WOJ#1198 数数

传送门Analysis什么?数位dp?乱说……(反正我没推出来)每一百万为一组,打表求出来剩下的部分,暴力计算即可在计算的时候可以做到O(数字长度)统计因为位数之和的一半最多为9*9/2=40.5我们考虑压位,二进制下的每一位i表示i这个数能否被凑出具体实现就是: int xx=x;ll f=1; while(xx){ f|=f<<(xx%10);//就是一...

2019-10-21 10:27:50 156

原创 费马小定理+插板法 - Sum(HDU4704)

传送门Analysis绝对是题目描述的问题注意:在这道题中1+1+2=41+1+2=41+1+2=4 和 1+2+1=41+2+1=41+2+1=4是两种不同的方案但2+2=42+2=42+2=4和2+2=42+2=42+2=4只能算一种所以不算球盒问题那八类中的任何一类直接插板法思考即可将n看作n个1,那么有n-1个板子,每个板子都有选和不选两种方法ans=2n−1ans=2...

2019-08-25 16:13:31 166

原创 2019暑假学习

总觉得该写点什么了

2019-08-25 09:22:06 188 3

原创 容斥原理 - 分糖(SOJ 747)

分糖题目描述有 N 个(相同的)糖果,M 个(不同的)小朋友。M 和 N 满足:1≤M≤N≤100000(105)。要求:1.每个小朋友都至少有一个糖果。2.不存在正整数 X(X>=2),使得每个小朋友的糖果数都是 X 的倍数。3.糖果不能剩余。求分糖方法总数。答案模 1000000007(109+7)输入格式第一行为数据组数:T<=100000。接下来 N 行,每...

2019-08-23 21:17:46 327

原创 广义欧拉定理+打表 - Last Digits(POJ2720)

传送门Analysis好啊。。。。看起来蛮递归降幂,蛮容易hhhh……时间过不去原来要打表还要记录(多组数据)因为指数与模数不一定满足互质,所以在降幂的时候要分类讨论(指数是否大于φ(mod))由于直接讨论不知道怎么做所以……1e7以下的打表算出来剩下的讨论即可Code#include<cstdio>#include<algorithm>#in...

2019-08-23 16:45:53 197

转载 【转载】c++中setw()与setfill()的用法详情

Learning在C++中,setw(int n)用来控制输出间隔。例如:cout<<‘s’<<setw(8)<<‘a’<<endl;则在屏幕显示s   a//s与a之间有7个空格,加上a就8个位置setw()只对其后面紧跟的输出产生作用,如上例中,表示’a’共占8个位置,不足的用空格填充。若输入的内容超过setw()设置的长度,则按实...

2019-08-23 15:30:05 474

原创 组合数学+高精度 - 看电影(movie)(BZOJ 2227)

传送门Analysis真的好棒的一道题啊!!!!概率即为合法方案除以总方案总方案显然是knk^nkn合法方案就很妙了考虑增加一个位置,连成环那么所有的方案就都合法了(随便怎么选都可以使得每个人找到位置坐下)有(k+1)n(k+1)^n(k+1)n种,由于是圆排列,所以要除以(k+1)(k+1)(k+1)然后再考虑破环成链,每一个空位置我们都可以断开,有(k+1−n)(k+1-n)...

2019-08-23 12:09:14 194

原创 基环树

基环树找环有向图:void getloop(){ int x=1; memset(cir,false,sizeof(cir)); while (!cir[x]) cir[x]=true,x=pre[x]; lis[0]=0; memset(cir,false,sizeof(cir)); while (!cir[x]) lis[++...

2019-08-22 16:50:58 148

原创 组合数奇偶性的判断(附证明)

Learning方法一:计算一下,然后看它的奇偶性;但是这个时间以及数据范围上都不允许;方法二对于给定C(n,m),检查n!中2因子的个数与m!和(n-m)!中2因子个数和的关系,假设n!中2因子个数为a,m!中2因子个数为b,(n-m)!中2因子个数为c,则显然有a>=(b+c);并且当a==b+c时,一定为奇,否则为偶。方法三由方法2可以很容易(稍后给出证明)地看出,n!...

2019-08-22 15:12:15 2143 2

原创 快速计算n!中素因子的个数

Learning我们来一个样例说明一下:1 2 3 4 5 6 7 8 我们求得在8!中2的个数 1 1  1   首先我们先计算出2的倍数的个数:8/2=4   1  1   其次我们计算出4的倍数的个数: 8/4=2      1   最后我们解出第三层的2的个数: 8/8=1我们把4+2+1=7,所以一共7个2出现了。即:cnt(x)=[n/(x1)]+[n/(x2)]+[n...

2019-08-22 14:32:09 683

原创 第二类斯特林数 - Push Botton Lock(POJ 3088)

传送门Analysis手动分析一波样例就出来了枚举参与组合的数 i (因为题目中说了可以不用完所有的数),再枚举将其分为的集合数 j (这就是第二类Stirling数的标准长相,因为对于每一个集合中的数我们不考虑顺序),那么最终的答案就是ans=(in)∗[ji]∗j!ans=(_i^n)*[^i_j]*j!ans=(in​)∗[ji​]∗j!()–>组合数[]–>第二类斯...

2019-08-22 10:12:27 217

原创 第二类斯特林数 - Rhyme Schemes(POJ 1671)

传送门第一次应用Stirling,并没有看出来不过看了题解后,直呼太妙Analysis题意:n行诗存在的韵律组合数。思路:第二类Stirling数是把n个元素放入k个等价类的方法数目(每个等价类都不能为空)。注意到此题的'行数'>='韵律数',可以把'行数'抽象为n个元素,'韵律数'抽象为k个等价类.所求即为:把n行放入k个‘韵律’中的方法数( 其中:1=< k...

2019-08-22 09:38:01 177

原创 网络流 - 魔术球问题(luogu 2765)

传送门Analysishttps://www.cnblogs.com/qixingzhi/p/9419319.htmlhttp://hzwer.com/1878.html放两个链接,这两篇题解对比着看理解每个网络流的写法和匹配数的统计方法更深入地理解这道题【有时间再来填坑吧···】Code#include<bits/stdc++.h>#define re reg...

2019-08-20 19:37:25 99

原创 组合数学の学习笔记

组合数常用公式Cnm=n!(n−m)!∗m!C_n^m=\frac{n!}{(n-m)!*m!}Cnm​=(n−m)!∗m!n!​Cnm=Cnn−mC_n^m=C_n^{n-m}Cnm​=Cnn−m​Cnm=Cn−1m−1+Cn−1mC_n^m=C_{n-1}^{m-1}+C_{n-1}^{m}Cnm​=Cn−1m−1​+Cn−1m​Cn0+Cn1+Cn2+Cn3...+Cnn=2nC_n...

2019-08-20 19:33:35 522

原创 第一类斯特林数+组合数 - Pole Arrangement(UVA 1638)

传送门Analysis大多数题解都提供的是dp做法这里推广一个不知哪个神犇想出来的神仙做法O(1)计算可还行?除了最高的那根杆,左边还能看到 l - 1 根,右边还能看到 r - 1 根。把这些杆子和他们挡住的杆子看做一个圆排列,那么共有[l+r−2n−1][^{n-1}_{l+r-2}][l+r−2n−1​]种分配方案。左边要选l−1l-1l−1根故答案为ans=[l+r...

2019-08-20 19:32:25 148 1

原创 第二类斯特林数 - Rank(HDU 2643)

传送门Analysis枚举总共的名次 i ,将 n 个人分到 i 个非空集合中 <–裸的第二类斯特林数然后对于每一种方案还需要乘以 i 的全排列ans=Σi=1nS2(n,i)∗i!ans=\Sigma_{i=1}^{n}S2(n,i)*i!ans=Σi=1n​S2(n,i)∗i!Code#include<bits/stdc++.h>#define re reg...

2019-08-20 14:50:30 141

原创 两遍网络流 - 危桥(CQOI2014)

Analysis建图很好想,建立源点和汇点源点向S1,S2建一条流量为次数*2的边T1,T2向汇点同理建边最后检查是否满流即可但只做一遍是有问题的(省选题果然不是盖的)因为在流的时候可能会存在S1最后流到了T2,S2流到了T1一个显然的反例如果要求0->3,1->2跑出来的最大流是合法的,但实际情况不对一个巧妙的解决办法:把一条路径反过来再跑一遍,如果还满流,则...

2019-08-16 15:35:44 135

原创 棋盘类二分图匹配 - Chessboard(POJ 2446)

传送门Analysis可以根据i和j性质可以看出,i+j为奇数的上下相邻的i’和j’一定是偶数,那么一个1*2的纸片的i+j一定是一个奇数一个偶数。所以建立一个二分图两个集合,将i+j为奇数的点与上下左右相邻的点连在一起,当然点不是洞。最后就用匈牙利算法求最大匹配数Code#include<cstdio>#include<iostream>#include&...

2019-08-14 15:40:09 134

原创 最小路径覆盖+路径输出 - 最小路径覆盖SPJ(LOJ 6002)

最小路径覆盖n−最大匹配数n-最大匹配数n−最大匹配数Analysis如果问题只有前面部分,即求最小路径覆盖数,那我们很好操作(具体解析见文章顶部博客链接)而现在还需要输出路径其实也很简单在做完网络流之后,对于每个点,它走向的下一个点,就是在网络流残图中与它相连且流量为0的边所对应的点,这个很好记录,关键是输出如果随便找到一个点就不停沿流量为0 的边走下去,那么这条路径很可能不...

2019-08-14 11:40:00 235

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除