自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 FZU - 1901 kmp-公共前后缀的变形

题目链接:http://acm.fzu.edu.cn/problem.php?pid=1901题目大意:给一个字符串。问你,有多少个P的取值方案,可以对任意i,让s[i] == s[i+p] (i+p不超字符串范围)并且最终方案额外加上一个输出 “总串长”。就是求所以的公共前后缀。用Len-公共前后缀的长度就是答案。公共前后缀参考我另外一篇博客:https://blog.csdn.ne...

2019-09-29 19:30:43 182

原创 HDU - 2609 - 最小表示法

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2609题目大意:给你N(N<10000)条项链,项链长度不超过100,告诉我总共有多少种项链(如果两个项链通过旋转可以相等,我们说这两个项链是一些)。思路:用最小表示法唯一表示一个项链。然后set去重就可以了。#include <bits/stdc++.h>#define ...

2019-09-29 16:13:04 155

原创 计数 - 含有n个点的连通图的个数

1:h(n)=2(n*(n-1)/2)对于一个有n个点的无向图,最多有n*(n-1)条边。每一条边存在或者不存在。#include <bits/stdc++.h>#define LL long longusing namespace std;const LL mod=1000000007;LL f[105], g[105], h[10005], c[105][105];...

2019-09-29 15:35:09 2111

原创 UVA - 11174 - 森林计数 - 父节点在子节点前面的排列数

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2115题目大意:思路:这里有序节点的穿插,就相当于有重复元素的全排列。s=n!/(n1!*n2!*n3! ***)#include <bits/stdc+...

2019-09-29 12:02:13 183

原创 UVA - 11806 组合计数+容斥

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2906题目大意:#include <bits/stdc++.h>#define LL long longusing namespace std;co...

2019-09-29 11:28:53 139

原创 loj#10177 修剪草坪-单调队列+dp

题目链接:https://loj.ac/problem/10177题目大意:方法一:sum[i]表示前缀和,dp[i]表示选第i个数时的最优方案。dp[i] = max{dp[j]+sum[i]-sum[j+1]} j∈[i-k-1,i-1)//枚举上一次不选的位置那么思路就很明确了,对于dp[j]-sum[j+1],用一个位置递增,值递减的单调队列维护。方法二:dp[i]表示不选...

2019-09-28 11:26:40 210

原创 loj#10176 最大连续和-单调队列维护前缀和

题目链接:https://loj.ac/problem/10176#submit_code题目大意:思路:如果用单调队列维护前缀和数组。那么对于一个s[i],需要区间[i, i-m+1]的最小s[j]。如果维护原数组,记录队列前缀和,就可以了。如果前缀和<0或者范围超出。那么就L++。R指针不能移到,因为要连续。法二:代码如下:#include <bits/stdc++....

2019-09-27 11:44:30 353 1

原创 loj#10175. 滑动窗口 -单调队列

题目链接:https://loj.ac/problem/10175题目大意:#include <bits/stdc++.h>#define LL long longusing namespace std;int a[2000005];struct node{ int w, i;}q1[2000005];int main(){ int n, k...

2019-09-27 10:48:21 131

原创 loj#10180 烽火传递 - 单调队列+dp

题目链接:https://loj.ac/problem/10180#submit_code题目大意:思路:dp[i]表示强制选i这个位置时1~ i的最小代价,dp[i]=min(dp[i-m]~dp[i-1])+ a[i], 因为前面必须放一个。min(dp[i-m]~dp[i-1])可以方便的用单调队列优化,所以复杂度就变成O(n)了答案就是min(dp[n-m+1]~dp[n]...

2019-09-26 22:12:52 206

原创 牛客挑战赛32 斐波那契数列卷积-矩阵快速幂

题目链接:https://ac.nowcoder.com/acm/problem/52937题目大意:推导:#include <bits/stdc++.h>#define LL long longusing namespace std;const LL mod=998244353;struct mat{ LL m[4][4];};mat msub(m...

2019-09-26 20:04:45 153

原创 HDU 6395 分块+矩阵快速幂

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6395题目大意:求F(n)%1e9+7在构造系数矩阵的时候,int(p/n)是变化的,但是可以分块求和。#include <bits/stdc++.h>#define LL long longusing namespace std;const int mod=1e9+7;...

2019-09-26 17:16:52 179

原创 poj1966 - 网络流最小割 - 删除最少的点使图不联通

题目链接:http://poj.org/problem?id=1966题目大意:题意:求一个无向图的点连通度。点联通度是指,一张图最少删掉几个点使该图不连通;若本身是非连通图,则点连通度为0。思路:无向图的点连通度可以转化为最大流解决。方法是:1.任意选择一个点作为源点;2.枚举所有与该点间没有边的点作为汇点;3.将每个点拆为入点和出点,入点到出点建一条流量为1的边;4.原本有边关系的两点,...

2019-09-26 11:28:16 1322 2

原创 LA 4794 状压dp - 把矩形蛋糕分成若干固定面积的矩形块

题目大意:思路:这里分的时候是把集合分成两个,并且把这个矩阵块分成两个。分别等于这两个集合的矩阵和,当一个集合只有一个元素,那么就满足条件了。#include <bits/stdc++.h>#define LL long longusing namespace std;int a[20];int d[1<<20][150], sum[1<<20]...

2019-09-25 20:13:07 229

原创 UVA - 10859 树形dp-与父节点有关&&有两个最优化条件。

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1800题目大意:#include <bits/stdc++.h>#define LL long longusing namespace std;...

2019-09-25 19:16:51 101

原创 CCPC2019秦皇岛 J. MUV LUV EXTRA kmp循环节

题目:思路:倒着跑kmp,然后枚举循环起点,求循环节。代入方程求最大值。#include <bits/stdc++.h>#define LL long longusing namespace std;char s[10000010];int f[10000010];void get_next(int n){ int i=0, j=-1; f[0]=...

2019-09-24 23:07:31 418 3

原创 CCPC2019秦皇岛 I. Invoker-dp

题目:思路:每个技能就6个状态,直接dp转移就可以了。#include <bits/stdc++.h>#define LL long longusing namespace std;char c[100005], s[3];map<char, char *> mp;struct node{ char s[3]; char c[6][3]...

2019-09-24 23:03:28 463

原创 UVA-11825 状压dp 集合划分+把若干个集合划分成最多个全集

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2925题目大意:#include <bits/stdc++.h>#define LL long longusing namespace std;...

2019-09-24 22:52:42 218

原创 UVA10891- Game of Sum 区间博弈-dp递推

题目:两个玩家A和B在玩一个取石子游戏,且每个石子都有它们各自的价值。在游戏中有这样一个规则:每次取一个石子或者连续几个都必从两端取,要么是最左端,要么是最右端,直到取完为止。两个玩家都非常聪明,他们每次都会去最优的结果。给他们N个石子,你能计算出玩家A,B各自的最后结果吗?假设总是玩家A先开局。#include <bits/stdc++.h>#define LL long l...

2019-09-19 17:16:00 165 4

原创 LA 3029 最大子矩阵 -dp递推-维护左右最大扩展坐标和高。

题目:#include <bits/stdc++.h>#define LL long longusing namespace std;int mt[1005][1005], H[1005][1005], L[1005][1005], R[1005][1005];int main(){ int t; scanf("%d", &t); wh...

2019-09-18 23:12:55 191

原创 LA 2678 - 尺取法

题目大意:直接尺取就行了。#include <bits/stdc++.h>#define LL long longusing namespace std;int a[100005];int main(){ int n, s; while(~scanf("%d%d", &n, &s)){ for(int i=1; i&lt...

2019-09-18 22:29:43 174

原创 LA 3902网络 无根树转有根树 树形dp - 放置最少的服务器距离k覆盖所有叶节点

题目大意:#include <bits/stdc++.h>#define LL long longusing namespace std;int n, s, k;vector<int> g[1005], node[1005];int fa[1005];bool vis[1005];//无根树转有根树,计算fa数组, 根据深度把叶子节点插入nodes表中...

2019-09-18 20:52:48 195

原创 2017CCPC杭州 - D题 递推计数

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6267题目大意:然后分别维护上一行的个数和sum[]和上一行的和s[]。递推就可以了。#include <bits/stdc++.h>#define LL long longusing namespace std;const int mod = 998244353;LL ...

2019-09-17 16:23:21 133

原创 2019ACM-ICPC沈阳网络赛 H-Texas hold'em Poker(大模拟)

题目链接:https://nanti.jisuanke.com/t/41408判断出牌型再进行评分排序就可以了。#include <bits/stdc++.h>#define LL long longusing namespace std;struct node{ string s; map<int , int> mp; int a, b...

2019-09-15 11:40:20 372

原创 HDU - 3374 最大/小表示法+kmp

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3374题目大意:给你一个字符串,问这个字符串经过移动后的字典序最小的字符串的首字符位置和字典序最大的字符串的首字符的位置,和能出现多少次最小字典序的字符串和最大字典序的字符串最大/小表示法。得到位置。循环次数:字符串的循环节。#include <bits/stdc++.h>#def...

2019-09-13 22:40:47 112

原创 hdu 6231 二分+尺取(尺取:一个序列区间第k大的数>=x的区间个数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6230题目大意:给你一个n个数的数组,把这个数组中长度大于等于k的区间中第k大的数取出来组成一个新数组,问你这个新数组第m大是多少。我们可以用尺取算出第k大大于等于x的区间个数有多少个。当我们了解这个之后自然能想到二分答案。我们枚举区间右端点r,然后判断当前大于等于x的个数如果大于等于k个,那么...

2019-09-13 21:47:36 196

原创 HDU - 1238 KMP:最大公共子串

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1238题目大意:找出最长的一个子串,所有串中都出现过它或它的逆序。这个子串一定在字符串1出现。那么就二分长度枚举字符串1的子串。再用kmp判断是否在其他的字符串存在。#include<bits/stdc++.h>#define LL long longusing namespace...

2019-09-12 20:03:48 243

原创 HDU - 3336 扩展KMP:问所有前缀在字符串出现的次数

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3336题目大意:问所有前缀出现的次数。思路:求出扩展kmp的Next数组,然后把Next的值全部加起来就是答案.扩展kmp的Next[i]表示的是,以i为开头的后缀,与整个字符串的lcp的长度,那么显而易见,整个字符串长度为1,2,…,Next[i]的前缀在这里都出现了一次,所以此时答案加上Ne...

2019-09-12 18:16:55 360

原创 HDU - 2594 扩展KMP:s1的前缀和s2的后缀的最长公共长度

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2594题目大意:就是求s1的前缀和s2的后缀的最长公共长度。扩展KMP的extend[i]含义:定义母串S,和字串T,设S的长度为n,T的长度为m,求T与S的每一个后缀的最长公共前缀,也就是说,设extend数组,extend[i]表示T与S[ i,n-1 ]的最长公共前缀,Next[i]表示...

2019-09-12 18:07:20 751

原创 2018-ACM-ICPC 南京 D. Country Meow 三分套三分套三分

题目链接:题目链接题目大意:三维空间有n个点,找到另外一个点,离所有点的最大距离最小。求这个距离。这个点的任意坐标,在其他两个坐标确定的情况下,最大距离都是一个单峰函数,那么就可以三分套三分套三分。#include <bits/stdc++.h>using namespace std;#define eps 1e-3int n;struct node{ doubl...

2019-09-11 20:20:19 281

原创 2018-ACM-ICPC 南京 D. Country Meow 模拟退火

题目链接:https://nanti.jisuanke.com/t/A2141题目大意:三维空间有n个点,找到另外一个点,离所有点的最大距离最小。求这个距离。和之前的模拟退火的坐标构造方法不同。初始化0,0,然后每次向最远的点移动一定的距离#include <bits/stdc++.h>using namespace std;double x[105], y[105], z[...

2019-09-11 11:37:12 221

原创 2019-ACM-ICPC 徐州网络赛 I .query 二维偏序问题

题目链接:https://nanti.jisuanke.com/t/41391题目大意:给出一个长度为n的全排列,q次询问,每次询问区间[l,r][l,r][l,r]内有多少对数字(p,q)(p,q)(p,q),满足p%q==0。数据范围n,q同阶10^5数据范围保证了序列是一个全排列,那么可以预处理出所有的满足条件的数字对,这样的数字对数不会超过n∗logn#include<bi...

2019-09-08 22:22:24 342

原创 2019-ACM-ICPC 徐州网络赛 K. Center 贪心(添加最少的点使所有的点中心对称)

题目链接:https://nanti.jisuanke.com/t/41393题目大意:给你n个点,让你添加最少的点使所有的点中心对称。我们考虑,尽量让现有的点尽可能的配对。无法配对的点。只能额外的添加点。我们用两重循环,统计任意两个点的中点出现的次数。然后其他点只能添加n-sum个点。sum:所有中点出现的次数最多的次数。把中点哈希保存。和出现次数一起用map存一下就ok了。#inc...

2019-09-07 22:40:04 243

原创 2019-ACM-ICPC 徐州网络赛 B. so easy map并查集 OR 动态开点线段树

题目链接:https://nanti.jisuanke.com/t/41384题目大意:这里线段树不能离散化,n<1e9。但是我们发现询问只有1e6。最多修改1e6次。如果用动态开点。每次最多修改logn个点。空间复杂度O(1e6*log(1e6))。#include<bits/stdc++.h>#define mid (l+r)/2using namespace ...

2019-09-07 21:34:12 377

原创 2019-ACM-ICPC 徐州网络赛 M. Longest subsequence 序列自动机

题目链接:https://nanti.jisuanke.com/t/41395题目大意:给你两个字符串S, T。问S串的子序列字典序严格>T的字典序的子序列最大长度。思路:记这个子序列为A那么A和T的公共前缀长度为0,1,2,3,4…|T|。而且公共前缀的下一个字符一定是A[i]>T[i]。直接用序列自动机跑一跑就行了。坑点:我队友给我说:字典序:ab>abc 。所以...

2019-09-07 20:51:09 226

原创 2019 南京网络赛 A. 扫描线+树状数组 (矩阵中的点权和)

题目链接:https://nanti.jisuanke.com/t/41298题目大意:有m个点通过给出n*n矩阵的坐标,得到权值:将原数所有数位上的数相加。对于q个询问,输出 左下角为(x1,y1),右上角为(x2,y2)的矩阵区域内所有可用点的权值经过处理后的和。 预处理一下O(n)。对于每一次询问,都是一个矩形区域。 我们考虑二维前缀和,其答案相当于ans(x2,y2) - an...

2019-09-06 19:36:29 270

原创 Codeforces Round #579 (Div. 3) D:删除最多的连续字符, B仍然为A的子序列

题目链接:http://codeforces.com/contest/1203/problem/D2题目大意:给定一个母串和一个子串,求在母串中删掉一个最长连续数列的同时保证在剩余母串里能找到子串(可以不连续但不能顺序颠倒)输出就三种情况。前面,后面,中间中间的情况:如图L[i]:T[i]在S中的最早位置。如图L[i]:T[i]在S中的最末位置。那么输出第i个字符和第i+1个字符的间...

2019-09-05 20:51:16 132

原创 模拟退火 poj 2420 找到一个点使这个点到其他点的距离和最小

题目链接:http://poj.org/problem?id=2420题目大意:给n个点,找出一个点,使这个点到其他所有点的距离之和最小,也就是求费马点。这个点不要求在给出的点中找。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#includ...

2019-09-05 19:44:52 1113

原创 模拟退火 P1337 [JSOI2004]平衡点 / 吊打XXX

题目链接:https://www.luogu.org/problem/P1337题目大意:模拟退火模板题。#include<bits/stdc++.h>#define LL long longusing namespace std;struct node{ int x, y, w;}a[10005];int n, sx=0, sy=0;double an...

2019-09-05 19:40:58 152

原创 二维偏序关系

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1541题意:给n个星星,每个星星按y坐标从小到大,y一样x从小到大输入,然后每个星星的做下区域每包含一个星星(不包括自己),该星星就升一级;最后求等级0~n-1的星星的个数。自己把x排序,x相同按y排序,加树状数组就行了。#include<bits/stdc++.h>#define ...

2019-09-02 22:53:49 545

空空如也

空空如也

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

TA关注的人

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