自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

转载 牛客网wannafly23 D 漂亮的公园

/* Source : 牛客网wannafly23 D 漂亮的公园 Problem : 给定一个树,每个节点有一个颜色,询问两个颜色之间的最大距离 Solution : 可以先求出同一种颜色c的直径x,y,这另外一个点u到这种颜色c的最大值,一定是x和y中的一个。于是答案只需要枚举两种不同颜色的4个点。 对于同种颜色的集合的维护,可...

2018-09-03 22:58:00 142

转载 hihocoder73 编程练习赛 D 好的字符串

1 /* 2 Source :hihocoder 编程练习赛73 D 好的字符串 3 Problem :问长度为n的数字串中,有多少个包含子串s恰好一次。可以有前导0 4 Solution :DP. 利用dp[2][i][j]表示当前匹配了前i个字符,且末尾的j个字符和s的前j个字符是匹配的。然后用0,1来表示是否匹配了完整的一次s 5 ...

2018-08-19 19:27:00 119

转载 hihocoder编程练习赛73 A 地铁站

1 /* 2 Source :hihocoder编程练习73 3 Problem :一个长度为n的串,由若干段1-a[i](假设有Y段)的序列组成,现在中间缺了K个数,问能够还原出来的方案数,需要保证还原出来的子串的个数最少,即最小Y 4 Solution :1.通过分析剩余的序列,我们可以知道原来最少的时候Y是多少,即看原来的序列有多少单调递增的子段...

2018-08-19 19:13:00 238

转载 牛客网wannafly22 D 整数序列

1 /* 2 Source :wannafly 22 D 整数序列 3 Problem :给定长度为n的数组,有m次操作,op=1 时, 把a[l-r] 中的数加v, op=2时, 求sum(sin(a[l-r])) 4 Solution :由 sin(a+b) = sin(a)cos(b) + cos(a)*sin(b) 5 ...

2018-08-18 18:34:00 125

转载 CF 609E 树上的倍增

1 /* 2 Source :CF 609E 3 Problem :给定n个顶点,m条边的图,对于一条边,求包含这条边的最小生成树 4 Solution :先求出MST,然后对于一条给定的边,对应的最小生成树为MST中去掉u,v路径上的最大的边,然后加上当前的边 5 对于后面的问题,求解u,v路径上的最大边,可用树...

2018-08-16 21:28:00 152

转载 hihocoder 193周 修补木桶

1 /* 2 Source :hihocoder193周 修补木桶 3 Problem :一个圆形的木桶由n块木板围成,可以使用一种操作把连续的一段长度为L的区间中的木板变成无限长,操作可以使用m次,问最终最短的木板是多长。n<=1000,L<=20,m*L<n 4 Solution :直接计算较为困难,考虑一个简单一点的问题:如果知...

2018-08-16 20:40:00 122

转载 倍增法

1 /* 2 Source : 3 Problem : 求最近公共祖先的倍增算法 4 Solution : 5 Date :2018-08-16-16.45 6 */ 7 8 // #include <bits/stdc++.h> 9 #include<cstdio> 10...

2018-08-16 17:35:00 107

转载 dfs序

1 /* 2 Source : POJ 3321 3 Problem : 每次改变树的点权,求子树点权和 4 Solution : dfs序 5 Date :2018-08-16-16.03 6 */ 7 8 // #include <bits/stdc++.h> 9 #include &...

2018-08-16 16:36:00 97

转载 wannafly19 矩阵

1 /* 2 Source :牛客网wannafly 19 矩阵 3 Problem :在一个n*m ,n,m<500的网格中,求满足条件的最大矩阵,行数<=X,列数<=Y,0的个数<=Z 4 Solution :枚举两列转换成一维的问题,然后用单调队列维护满足条件的最小值,那么最大值=当前值-最小值。 5 Date ...

2018-08-16 11:51:00 90

转载 hihocoder1800

1 /* 2 Source :hihocoder1800 3 Problem :在n*m的方格中,每个格子有一个权值,求一个矩形区域面积大于等于S,总和最大 4 Solution :枚举固定的两列,然后可以求得符合条件的长度L,求一个长度大于等于L的最大和。最大和=当前总和-最小的前缀和,当前总和的位置与最小前缀和的位置满足条件。 5 Date...

2018-08-15 21:08:00 92

转载 CF 689D A区间最大值等于B区间最小值的区间个数统计

1 /* 2 Source :CF689D 3 题意:给出a,b两个长度为n的数组,问有多少个区间满足max(a[l,r])==min(b[l,r]) len(a)<10^5 4 思路:对于一个固定的l,max(a[l,r])是一个单调不减的序列,min(b[l,r])是一个单调不增的序列, 5 于是可以枚举区间的左端点...

2018-08-14 23:34:00 219

转载 图中找环

1 /* 2 Source :hihocoder 215周 3 Problem :有向图判断是否存在环 4 Solution : 方法1. 可以使用拓扑排序来做 5 方法2. 对于无向图可以用并查集做 6 方法3. 利用dfs遍历,第一次遍历到节点是着灰色,离开节点时着黑色,如果遍历的过程中访...

2018-08-13 18:41:00 209

转载 大水题

1 /* 2 Source : wannafly21 3 Problem :给出一个长度为n的序列,每个位置有一个值和一个权重,可以把两个位置值相同的一段连起来作为一个操作,得分为对应的权重之和,每个位置只能连一次, 4 求最终最大的和。 5 Solution :dp[i] = dp[j] + sum(i,j) ...

2018-08-10 12:09:00 167

转载 数位DP hihocoder1791

1 /* 2 题意:求 1...n, n<10^12中满足x%sum(x)==0的数的个数,sum(x)为x的各个位数的和 3 题解:数位DP 4 时间:2018.08.03 5 */ 6 7 #include <bits/stdc++.h> 8 using namespace std; 9 1...

2018-08-03 18:35:00 107

转载 牛客练习23 托米的游戏

1 /* 2 题意:给出一个树,根是1,每次选一个节点删除,求期望删空的步数e = a/b, 求x使得(xb = a) % 998244353. 3 题解:考虑每个节点对答案的贡献,一个节点i被删除时,对答案贡献1,而被删除的概率为1/dep[i]. 4 e = sum(1/dep[i]) = a/b, 5 由 (xb=a)%...

2018-08-02 11:24:00 159

转载 矩阵快速幂

1 /* 2 题意:求a(n)=a(n-1)+a(n-2)+a(n-3)+......a(n-k)+... k<20 n<10^18 3 题解:矩阵快速幂,把递推公式写成矩阵的形式,就可以利用快速幂计算 4 时间:2018.07.31 5 */ 6 7 #include <bits/stdc++...

2018-07-31 21:24:00 82

转载 大数乘法

1 /* 2 题意:大数乘法NTT 3 题解:FNT 4 时间:2018.07.30 5 */ 6 7 #include <bits/stdc++.h> 8 using namespace std; 9 10 typedef long long LL; 11 const int MAXN = 10...

2018-07-30 11:21:00 118

转载 求原根

1 /* 2 题意:求一个数x的原根 3 题解:x=p1^e1 * p2^e2 * p3^e3 * pm^em 4 依次判断 a^((x-1)/pi) == 1 mod x 是否等于1,如果都不等于1那么a是原根。 5 时间:2018.07.26 6 */ 7 8 #include <bits/stdc...

2018-07-26 21:19:00 216

转载 主席树

1 /* 2 题意:查询区间第K大 3 题解:主席树 4 时间: 5 */ 6 7 #include <bits/stdc++.h> 8 using namespace std; 9 10 typedef long long LL;11 const int MAXN = 100005;12 const LL MO...

2018-07-21 21:06:00 61

转载 背包

题目链接:https://www.nowcoder.com/acm/contest/133/B 1 /* 2 题意:V背包容量,n物品个数,m需要装的物品个数,ai,bi价值,大小,求刚好装m个物品时,物品的中位数最大是多少 3 思路:首先按照价值排序,m个物品分成三组,中位数,小于中位数,和大于中位数的 4 假设m为奇数,中位数只有...

2018-07-21 11:53:00 70

转载 cdq分治

1 /* 2 题意: 3 题解:cdq分治 4 时间: 5 */ 6 7 #include <bits/stdc++.h> 8 using namespace std; 9 10 typedef long long LL; 11 const int MAXN = 100005; 12 cons...

2018-07-20 15:47:00 89

转载 小z的袜子 莫队算法

1 /* 2 题意:n,m<=50000 一个长度为n的区间,每个位置有一个颜色,查询一个区间[l,r]中取两个点颜色相同的概率。 3 题解:莫队算法, 统计当前区间每种颜色的个数. 4 时间:2018.07.20 5 */ 6 7 #include <bits/stdc++.h> 8 using name...

2018-07-20 11:08:00 84

转载 莫队算法

1 /* 2 题意: 3 思路: 4 时间: 5 */ 6 #include <bits/stdc++.h> 7 using namespace std; 8 9 typedef long long LL;10 const int MAXN=100005;11 const LL MOD7 = 1e9+7;12 ...

2018-07-19 22:13:00 48

转载 分块

1 /* 2 题意:五维偏序,n<=50000,有n个五元组,Q个询问,对于每个询问五元组,查询有多少个小于等于该询问的五元组 3 题解:分块,对于每一维,利用bitset维护一个分块,表示在当前位置之前,小于等于当前位置的状态,不同分块状态之间的转移应包括原有的状态,加上当前分块的情况 4 对于每个询问,二分小于每一维的位置,前缀...

2018-07-19 20:08:00 62

转载 BZOJ 2957

1 /* 2 题意:BZOJ2957 n,m<=100000 在一个长度为n的直线上,每天在xi位置放置一个高度为yi的竖线,问每天在原点能够看到几个 3 题解:线段树解法,对于每个区间维护一个递增的序列,记录最大值,和最长的增长的长度 4 查询操作: 查询l,r区间大于M的有单调递增的有几个,如果左区间的最大值>=M,那么答案在右区...

2018-07-19 11:17:00 78

转载 spfa

1 /* 2 题意:最短路 3 思路:spfa 4 时间:2018.07.18 5 */ 6 #include <bits/stdc++.h> 7 using namespace std; 8 9 typedef long long LL;10 const int MAXN=100005;11 const LL MO...

2018-07-18 23:09:00 53

转载 棋盘覆盖

1 /* 2 题意:用1*2覆盖n*m的区域的方案数,n<=1000,m<=5 3 思路:枚举每层的状态,计算状态之间的转移。则dp[i][j]=sum(dp[i-1][k]*a[k][j])其中k为前一层状态,j为当前层状态。 4 状态之间的转移,可以枚举当前层的放置方案, 5 时间:2018.07.18 6 */ ...

2018-07-18 22:19:00 57

转载 hihocoder#1044

1 /* 2 题意:n<=1000, 2<=M<=10,Q<=M,求数组中的最大和,不存在连续的M个中超过Q个被选取 3 思路:状态压缩DP,枚举后面M个数的状态,dp[i][j/2]=max(dp[i-1][j],dp[i-1][j/2+(1<<(m-1))]+a[i])状态转移过程中需满足状态中1个个数小于Q 4 时间...

2018-07-18 20:45:00 62

转载 树链剖分_基于边权

1 /* 2 题意: 3 题解: 4 时间: 5 */ 6 7 #include <bits/stdc++.h> 8 using namespace std; 9 10 typedef long long LL; 11 const int MAXN = 100005; 12 const LL ...

2018-07-18 16:14:00 139

转载 树链剖分-基于点权

1 /* 2 题意:给定一个数,修改u->v路径上的点权,查询每点的值 3 题解:基于点权 4 时间:2018.07.18 5 */ 6 7 #include <bits/stdc++.h> 8 using namespace std; 9 10 typedef long long LL; ...

2018-07-18 15:22:00 92

转载 二分图匹配

1 /* 2 题意:二分图匹配 3 题解: 4 时间:2018.07.18 5 */ 6 7 #include <bits/stdc++.h> 8 using namespace std; 9 10 typedef long long LL;11 const int MAXN = 100005;12 const ...

2018-07-18 11:34:00 57

转载 最近公共祖先

1 /* 2 题意:最近公共祖先 3 题解:tarjan算法实现 4 时间:2018.07.18 5 */ 6 7 #include <bits/stdc++.h> 8 using namespace std; 9 10 typedef long long LL; 11 const int MAX...

2018-07-18 11:17:00 90

转载 单调栈应用

1 /* 2 题意:POJ2796 给定一个长度为n的数组,求sum(a[i])*min(a[i)最大的一段区间。 3 思路:枚举每个a[i],求最左边和最右边的距离。利用单调栈求左右区间 4 时间:2018.07.17 5 */ 6 // #include <bits/stdc++.h> 7 #include <cstdio&...

2018-07-17 22:17:00 60

转载 单调队列

1 /* 2 题意:n,k<=1e6 给定一个长度为n的数组和大小为k的滑动窗口,求每次的最值 3 思路:单调队列 4 时间:2018.07.17 5 */ 6 // #include <bits/stdc++.h> 7 #include <cstdio> 8 #include <iostream>...

2018-07-17 21:10:00 55

转载 ODT (Old Driver Tree)珂朵莉树

1 #include <bits/stdc++.h> 2 using namespace std; 3 4 typedef long long LL; 5 const int MOD7 = 1e9 + 7; 6 const int MOD9 = 1e9 + 9; 7 const int imax_n = 1e5 + 7; 8...

2018-07-13 08:26:00 201

转载 洛谷P3455

1 /* 2 题意:1<=x<=b<=5e4 1<=y<=d<=5e4 求gcd(x,y)=k的对数 3 思路:莫比乌斯反演+整除分块 4 时间:2018.07.11 5 */ 6 #include <bits/stdc++.h> 7 using namespace std; 8 9 ty...

2018-07-11 22:42:00 95

空空如也

空空如也

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

TA关注的人

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