自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (3)
  • 收藏
  • 关注

原创 树状数组求逆序数模板

以前求逆序数都是用的归并排序,现在发现树状数组求逆序数更简单,常数更小,留个板子,数值较大时需要离散化,用map实更简单,入门参考https://www.cnblogs.com/xiongmao-cpp/p/5043340.html。普通逆序数代码:#pragma comment(linker, "/STACK:102400000,102400000")#include<unor...

2018-10-31 00:03:23 321

原创 pb_ds库的一些常用方法

传送门:点击打开链接。

2018-10-30 23:08:23 603

原创 Codeforces Round #510 (Div. 2) D. Petya and Array

题目:点击打开链接题意:给定一个数组,问有多少个不同的区间[l,r] (l<=r)使得区间和小于给定的数t。分析:先求个前缀和,则问题转化为所有满足sum[i]-sum[j]<t(j<=i)的区间个数,原式可变形为-sum[j]<t-sum[i],所以可以用一颗红黑树维护-sum[j](点击查看红黑树的库实现博客),然后用order_of_key查询t-sum[i]的r...

2018-10-30 23:06:20 196

原创 二维树状数组模板(区间更新,单点查询)(以POJ 2155为例)

题目:点击打开链接题意:n*n坐标图起初都为0,C:翻转左下和右上两个坐标围成的矩阵中所有点,Q:查询此点的0 1状态。分析:利用差分的思想,推广到二维,一维单点查询就是前缀和,即query(x)。区间修改先让s-n都加num,再让t+1-n减去num,即update(s, num),update(t+1, -num)。二维的单点查询变成二维就好了query(x, y)。区间修改update(...

2018-10-30 10:28:40 362

原创 二维树状数组模板(单点更新,区间求和)(以HDU 2642为例)

题目:点击打开链接题意:输入B后输入坐标,表示对应的点的灯变亮,输入D后输入坐标表示对应的点灯灭,输入Q后输入一个矩形的左下角和右上角 输出矩形内亮着的等的个数,注意灯亮过不能再亮,灯关了不能再关,所以用数组标记,树状数组模板中元素下标均从1开始,题目从0开始所以加1。分析:二维树状数组单点更新,区间求和裸题。总结下板子。tree[x][y]记录的是右下角为(x, y),高为lowbit(x...

2018-10-30 09:32:45 346

原创 归并树模板(以poj 2104为例)

题目:点击打开链接题意:区间第k大。分析:主要学习了一下归并树,归并树是利用了归并排序的思想。归并树原理是先归并排序,然后把每一层排好序的数组记录下来,二分答案,看[ql,qr]区间有几个数小于k,[ql,qr]可以像线段树那样被分成若干个已经排好序的区间,比如在一个已经排好序的子区间[l,r],我再二分求ans在这个区间对应下标,我就知道l r,有多少个数是小于ans了,ql qr可以被分成...

2018-10-29 19:34:09 181

原创 划分树模板(以poj 2104为例)

题目:点击打开链接题意:区间第k大。分析:主要学习了一下划分树,划分树是利用了快速排序的思想。划分树入门参考https://www.cnblogs.com/hchlqlz-oj-mrj/p/5744308.html。代码:#pragma comment(linker, "/STACK:102400000,102400000")///#include<unordered_map...

2018-10-29 16:19:52 194

原创 hdu-5289

题目:点击打开链接题意:给出一个数列,问其中存在多少连续子序列,子序列的最大值-最小值< k 。分析:解法一:二分+RMQ,枚举左端点,RMQ预处理(st表),二分找到每个左端点满足条件的右界。解法二:单调队列,维护两个单调队列,一个单调递增,一个单调递减,双指针,第一个第二个指针初始指向第一个数据,第一个指针按顺序不断向队尾添加数据,当最大值最小值的差大于等于k后,就意味着新添...

2018-10-28 15:11:50 444

原创 RMQ模板(以poj 3264为例)

题目:点击打开链接题意:N头牛,标号1—N,每头牛一个高度,求Q次查询l,r标号内的最高与最低之差。分析:RMQ模板题。RMQ入门参考https://blog.csdn.net/hnust_lizeming/article/details/81607381,RMQ很好理解,本质是倍增(二分)。代码:#pragma comment(linker, "/STACK:102400000,10...

2018-10-18 12:18:19 208

原创 树的重心模板(以POJ 1655为例)

题目:点击打开链接题意:去掉树上的一个节点,看看剩下的子树中最大的是多少,然后在这些最大值中求一个最小值,如果有多个点都是最小值,那么找一个序号最小的节点。输出节点号,和最小值。分析:树的重心裸题,树的重心入门参考https://blog.csdn.net/henu_jizhideqingwa/article/details/81670453。代码:#pragma comment(li...

2018-10-18 07:55:59 274

原创 牛客国庆集训派对Day6 J-最短路

题目:点击打开链接题意:略。分析:(lca+100次最短路)先把题目给的边存起来,先取n-1个边(不能有环)构成生成树,然后求lca,对于漏掉的边u<-->v,假设x到y的最短路不走这条边,那么其最短路有可能是lca的距离,假设走这条边,必走u,那么我先求出起点为u到所有点的最短路,x到y的距离就是min(lca , d[u][x]+d[u][y])。(不明白的可以画个草图)由于边...

2018-10-17 22:22:14 241

原创 倍增法实现LCA(以HDU - 2586为例)

题目:点击打开链接题意:求树上任意两点之间的距离。分析:LCA模板题,这是一棵无根树,把它转化为有根树,再用倍增LCA求出每个结点到根节点的距离,两点的距离:dist = dis[u] + dis[v] - 2 * dis[ LCA(u,v) ],复杂度O(nlogn)。倍增法求LCA入门参考https://blog.csdn.net/lw277232240/article/details/7...

2018-10-17 19:49:05 358

原创 次小生成树模板(以POJ 1679为例)

题目:点击打开链接题意:判断生成树的唯一性,唯一则输出权值,不唯一输出Not Unique!分析:显然,可以转化为求次小生成树,次小生成树权值=最小生成树,则不唯一。我这里用的是kruscal算法,更加简单易用。入门参考https://blog.csdn.net/li1615882553/article/details/80011884和https://www.cnblogs.com/rad...

2018-10-16 16:29:08 176

原创 k短路模板(以POJ 2449 为例)

题目:点击打开链接题意:给出一个图,然后给出一个起点个一个终点,求这两点间的第K短路。本题中是可以走重复的路的,所以如果一张图中有一个环的话,无论求第几短路都是存在的。路径长度一样,经过的边集不同属于两种不同的情况。分析:k短路模板题,A*+dijkstra,注意当s == t的时候,需要计算第k+1短路。因为s到t这条距离为0的路不能算是这k短路里边。A*入门参考https://www.c...

2018-10-15 22:22:18 256

原创 Poj 3169 Layout

题目:点击打开链接题意:一共有n头牛,有ml个关系好的牛的信息,有md个关系不好的牛的信息,对应输入的第一行的三个元素,接下来ml行,每行三个元素A,B,D,表示A牛和B牛相距不希望超过D,接下来md行,每行三个元素A,B,D表示A牛和B牛的相距至少要有D才行。求1号牛和n号牛的最大距离,如果距离无限大输出-2,如果无解输出-1。分析:差分约束入门题,差分约束的本质是差分+约束条件,可以转化为...

2018-10-14 17:00:19 210

原创 POJ 1511 Invitation Cards

题目:点击打开链接题意:有向图,求从起点1到每个点的最短路然后再回到起点1的最短路之和。(保证有解)分析:开始用SPFA+vectorTLE了,改成前向星就过了。图上没有负环最好还是用堆优化后的dijkstra。AC代码(前向星):#pragma comment(linker, "/STACK:102400000,102400000")///#include<unordere...

2018-10-14 13:19:10 124

原创 SPFA模板(vector版本)

入门参考https://www.cnblogs.com/bofengyu/p/5004398.html。#pragma comment(linker, "/STACK:102400000,102400000")#include<unordered_map>#include<unordered_set>#include<algorithm>#incl...

2018-10-14 13:13:03 495

原创 Bellman-Ford算法模板(以POj 3259为例)

题目:点击打开链接题意:题目的大意是有F个农场(F组输入数据),每个农场有N个牧场,M条双向路径,W个虫洞,虫洞是单向的,可以实现时间旅行,返回到以前某个时间。问从某个牧场出发,经过若干路径和虫洞,能不能在自己没有离开出发地时回到出发地,见到自己。分析:其实就是判断是不是存在负环,用Bellman-Ford算法求就可以了。 当图中存在负权环时,就能够在出发之前回到出发地,见着自己,将虫洞的权值...

2018-10-13 13:57:41 256

原创 牛客国庆集训派对Day3 I Metropolis

题目:点击打开链接题意:略。分析:多源点最短路,只要两个不同源点的最短路相遇,我们就更新两个源点的答案。代码:#pragma comment(linker, "/STACK:102400000,102400000")#include<unordered_map>#include<unordered_set>#include<algorithm&gt...

2018-10-11 17:07:43 175

原创 堆优化后的dijkstra算法模板(以hdu2544为例)

vector实现版,优点是代码量较少,缺点是常数较大。#pragma comment(linker, "/STACK:102400000,102400000")#include<unordered_map>#include<unordered_set>#include<algorithm>#include<iostream>#incl...

2018-10-11 16:00:44 508

原创 CSU 2005 Nearest Maintenance Point

题目:点击打开链接题意:给一个n个节点m条边的带权无向图,给出s个援助节点,有q个询问,每次问一个节点周边最短距离的援助节点有哪些。分析:多源点最短路,最短路的变形,使用堆优化的dijkstra算法,把s个援助节点当起点(假设有一个超级原点,和s个援助节点有距离为0的边,就化简成了单源最短路模型),搜到所有节点的最短路,用bitset的位运算传递状态,如果有多个起点的某个节点的最短距离相同...

2018-10-11 15:29:04 160

原创 CodeForces - 960D Full Binary Tree Queries

题目:点击打开链接题意:无限长度的二叉树,每次操作1把包含数x的那一层整体移动k个位置,正往右,负往左,操作2把包含数x的那一层带着子树移动k个位置.操作3打印从x到根沿线的所有数。分析:对于每一层我们可以记录旋转了多少次,因为最多有60+层.对于操作2它的子树就分别移动2*k次,4*k次,8*k...,对于查询操作,我们可以先找到x的位置,然后依次除以2就是上层的对应位置,根据旋转次数打...

2018-10-08 11:07:38 176

原创 牛客国庆集训派对Day4H 树链博弈

题目:点击打开链接题意:开始题意没弄明白,必须选一个节点变白,然后再选择祖先或者重新选择其他一个节点变白。分析:结论是如果树的所有层的黑点的个数是偶数,则先手必败。因为全是偶数,先手造作第k层的点后,那么k层的点就变为奇数了(留给后手一个必胜的状态),这时后手也操作k层的一个点,然后复制先手的操作,一定可以留给先手一个全是偶数的状态。这样,一定是后手走完最后一步,先手必败。代码:...

2018-10-06 12:09:17 240

原创 牛客国庆集训派对Day3 B Tree

题目:点击打开链接题意:略。分析:树形dp(树上dfs),两遍dfs,一遍求下面(儿子)的贡献,一遍求他父亲节点的贡献,两部分相乘得结果,注意0没有逆元,需要特判。思路参考https://blog.csdn.net/u013534123/article/details/82934820,写的很详细。代码:#pragma comment(linker, "/STACK:102400...

2018-10-06 11:20:55 194

原创 O(1)快速乘模板

引自2009国家集训队论文: 骆可强:《论程序底层优化的一些方法与技巧》 代码:ll fm(ll a,ll b) { return (a*b - (ll)((long double)a/mod*b)*mod+mod)%mod;} ...

2018-10-05 19:34:20 641

原创 牛客国庆集训派对Day5 B 电音之王

题目:点击打开链接题意:略。分析:首先用暴力快速乘O(n*logn)t了,取模一个long long范围内的数太耗时了,但是一直不知道怎么优化取模,后来才知道有蒙哥马利算法优化a*b%c,蒙哥马利算法适用于模数为奇数,入门可参考https://blog.csdn.net/zgzczzw/article/details/52712980,网上没找到实现代码,下面的代码是杜教的,留着当板子用了...

2018-10-05 19:07:51 398 2

原创 牛客国庆集训派对Day3 A Knight

题目:点击打开链接题意:略。分析:规律题,打了表半天没找出规律。。。网友思路:如果目的点不在第一象限,将其转化到第一象限,且另m>n若2*n>m>n    若(n+m)是三的倍数,我可以通过走x个(1,2)和y个(2,1)到达,那么x+2x+2y+y=n+m,得x+y=(n+m)/3;    若(n+m)%3==1,我可以走这样一步使得(-2,1),使得目的...

2018-10-04 21:55:45 221

原创 牛客国庆集训派对Day3 J Graph Coloring I

题目:点击打开链接题意:判断一个图是否能用两种颜色染色,满足相邻点的颜色不同。分析:可以直接对图进行染色,如果发现当前点的颜色与已经染色的相邻点相同,则存在奇环(环山点的总数为奇数)。也可以判断是否为二分图,因为二分图与奇环互斥。证明:假设二分图中的环是奇数环。设一个环,x1,x2,x3,,,,x(2*k-1),k>=1且为整数。相邻两点有边连接,x1与x(2*k-1)相连。...

2018-10-04 09:49:43 174

acm训练体系

acm训练方案,从入门到精通,包括每个阶段该学的知识和对应知识点的题目,题目都是精心筛选过的,质量绝对有保证。

2019-05-07

acm知识思维导图

acm知识图谱,包括了acm竞赛设计的所有数据结构与算法,还有一些技巧和方法。

2019-05-07

音乐播放器

项目功能点: 1.从本地导入歌曲(单个文件导入或者文件夹批量导入)。 2.播放歌曲、暂停、停止、上一首、下一首、删除歌曲。 3.音量调节。 4.音乐进度调节。 5.歌词的展示,可以同步进度条的变化,呈现对应时间的歌词。 6.网上爬取歌词,如果本地存在歌词文件,直接使用本地文件,不存在则从网上爬取。 7.播放MV。 8.音乐分享。 9.音乐评论。 10.音乐收藏。 11.用户歌单。(保存到mysql) 12.后台播放。(隐藏到任务栏) 13.最近播放。 14.任意选择播放模式。(单曲循环、随机播放、列表循环) 15.登录注册。(正则验证)

2017-12-14

空空如也

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

TA关注的人

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