自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二分 连续长度>=F的区间的最大平均值

题目链接:http://poj.org/problem?id=2018题目大意:是在一个数组里,寻找一段连续和,使其平均和最大,但是长度不能小于F,首先可以看出是满足单调性的,但是怎么二分呢,我们先枚举一个可能的数。然后数组里的值全部减去这个值(结果会有正有负),那么我们就看是否存一段长度大于等于F,且和为正。对于此的判断,可谓经典,见代码。思考:是实数的二分。注意:1.结束二分的条...

2019-01-31 23:01:12 1557

原创 BFS有限制的迷宫+技巧

题目链接:https://ac.nowcoder.com/acm/contest/330/C题目大意:和普通的bfs不同的是:记录不同状态下的最短路,在’@'处可以衍生出新的状态, 这样bfs就记录了所有的状态,最先到达的就是最短路。char c[105][105];int d[105][105][2]; //到达i, j状态为0:水 1:火的最短路int x, y,...

2019-01-30 12:52:51 312

原创 数论 欧拉降幂+费马小定理+指数循环节

题目链接:https://ac.nowcoder.com/acm/contest/330/E题目大意:求2^a%1000000007。和队友一直怼快速幂。然后T了。后来发现这个余数应该是循环的,我当时认为循环节是1000000007。后来才知道发现是1000000006。让我们来复习一下费马小定理:2与1000000007互质。2 ^ 0 = 2 ^ (p-1) 所以循环节为(p-1-0...

2019-01-29 21:14:08 372

原创 线段树专题 节点的含义

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1610题目大意:在一条线上绘制一些彩色片段,一些先前绘制的片段可能被后续的一些片段覆盖。您的任务是计算最后可以看到的不同颜色的片段。每个数据集的第一行恰好包含一个整数n,1 <= n <= 8000,等于彩色段的数量。以下n行中的每一行由正好由单个空...

2019-01-28 16:32:14 223

原创 线段树专题 开根号的优化

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027题目大意:有n个战舰都排成一排。我们可以使用我们的秘密武器来使一个区间每个战舰的耐力变成到其原始耐力值的平方根。输入包含几个测试用例,由EOF终止。第一行输入一个整数n第二行包含n个整数Ei,表示从战斗开始到结束的每艘战列舰的耐久值。您可以假设所有耐力值的总和小于2^63。下一行包含一个...

2019-01-28 15:58:41 566

原创 线段树专题 线段树+离散化

题目链接:http://poj.org/problem?id=3468题目大意:有一个长为10000000的墙,有1 <= n <= 10000个市长候选人去张贴海报,每个人的海报长度不限。上面的海报会覆盖下面的海报,问你最后能看见哪些海报。思路:这个用线段树add标记维护当前区间的海报就行了,然后就MLE了。两个40000000的数组开不下。于是就必须优化。因为候选人只有10...

2019-01-28 15:40:52 2971

原创 三角形的面积 爆double + nth_element()

题目链接 :https://ac.nowcoder.com/acm/contest/327/A?&headNav=acm题目大意:平面上有n个点,问:平面上所有三角形面积第k大的三角形的面积是多少?输入描述:第一行T,表示样例的个数。对于每一组样例,第一行两个整数n和k,接下来n行,每行两个整数x,y表示点的坐标T<=803<=n<=100-10^ 9&...

2019-01-25 21:49:04 214

原创 dp专题 字符串转化

题目链接:https://www.luogu.org/problemnew/show/P2758题目大意:设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。这里所说的字符操作共有三种:1、删除一个字符;2、插入一个字符;3、将一个字符改为另一个字符;!皆为小写字母!输入格式:第一行为字符串A;第二行为字符串B;字符串A和B的长度均小于2000。输出格式:...

2019-01-25 16:32:45 260

原创 dp专题 丢失阵列(组合数dp)

题目链接:http://codeforces.com/problemset/problem/1105/C题目大意:给你一个n, l, r; 让你构造阵列满足以下条件:阵列长度为n;阵列中所有的整数位于[l, r]之间这个阵列所有的整数和能被3整除让你求有多少个构造方案:结果mod 1e9+7。思路:首先把所有[l, r]区间内所有整数 mod 3=0, mod 3=1, mod ...

2019-01-23 16:42:43 162

原创 dp专题 公平的坚果和字符串(类似跳台阶dp)

题目链接:http://codeforces.com/contest/1084/problem/C对于一个由小写拉丁字母组成的字符串s,坚果想找到严格增加的序列p1,p2,…,pk的数量,保证:对于每个i(1≤i≤k),spi =‘a’。对于每个i(1≤i<k),存在pi <j <pi + 1且sj ='b’的j。就是求严格增加的(下标序列)的个数,下标的字符全部是’a’...

2019-01-09 19:42:38 136

原创 dp专题 可行方案总数:以01背包为例

我们在面对这个相同条件但所求结果不同的问题中设f[i][j]为前i件物品组合出来的容量为j的方案数(可以优化成一维)//无优化:#include<bits/stdc++.h>using namespace std;int a[105];int dp[100][100]={0};int main(){ int n, s; scanf("%d%d"...

2019-01-09 17:11:40 275

原创 dp专题 0-1背包输出具体的方案

0-1背包的状态转移方程:dp[i][j]=max(dp[i-1][j], dp[i-1][j-a[i]]+a[i]);如果一个物品被选中那么:dp[i][j]==dp[i-1][j-a[i]]+a[i]dp[i][ans-a[i]]+a[i]==ans//ans初始值:dp[n][s]表示背包里没有确定物品编号的总体积//所以可以输出选择物品的编号//但是编号是从大到小的//解...

2019-01-09 16:13:02 1768

原创 分治专题 求排列的逆序数

求一个排序的逆序数:分治利用分治排序的思想:nxs(l ,r)=nxs(l, m)+nxs(m, r)+nxs(左半边取一个数和右半边取一个数产生的) #include<bits/stdc++.h>using namespace std;int a[100005];int b[100005];long long gbpx(int l, int r){ lo...

2019-01-09 14:59:38 255

原创 分治专题 输出前k大的数

给定一个数组,统计前k大的数并且把这k个数从大到小输出。分治:把一个问题分解成形式和原任务相同,但规模更小的几个部分任务(通常是两个部分),分别完成,或只需要选一部分完成。然后再处理完成后的这一个或几个部分的结果,实现整个任务的完成。把前m大的都弄到数组的右边,然后对最右边的m个元素排序再输出。O(n)时间内实现把前m大的都弄到数组最右边。arrangeRinght(int l, in...

2019-01-08 20:34:37 1325

原创 dp专题 神奇的口袋

有一个口袋容积为m,有n个物品,题目的体积为a1,a2,a3…an。把m装满有多少种不同的装法。递归:int dfs(int n, int m)/*从n个物品中选出总体积为m的选法*/{ if(m==0) return 1; if(n<=0) return 0; return dfs(n-1, m)+(m>=a[n]?df...

2019-01-07 20:56:06 1248

原创 dp专题 滑雪

求一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。最长的滑坡dp[i][j]表示从i,j出发的最长的滑坡递推的顺序:由高度从低到高,因为要知道dp[i][j],必须知道周围所有比自己矮的dp值。记忆化递归:可以不按从低到高的顺序直接递归。dp[i][j]由周围比自己矮的推导出来。人人为我:d[i][j]=max(dp[i-1][j]), dp[i+1][j...

2019-01-07 14:02:47 256

原创 dp专题 最佳加法表达式

在n个数字中插入m个加号使表达式的值最小num[i][j]:位置i到位置j的所表示的数字。递推:dp[m][n]表示在n个数字中插入m个加号所能形成的表达式最小值边界条件:dp[0][i]=num[1][i]递推公式:dp[i][j]=min(dp[i-1][k]+num[k+1][j])(i<=k<j) k:最后一个加号的位置,i<=k (i-1个加号至少要用i个数...

2019-01-06 21:27:24 218

原创 dp专题 最长公共子序列

dp[i][j]表示a字符串前i个字符和b字符串前j个字符的最长公共子序列if(a[i]==b[j]) dp[i][j]=dp[i-1][j-1]+1;else dp[i][j]=max(dp[i]p[j-1], dp[i-1][j]);边界条件:dp[i][0]=0;(0<=i<n);dp[0][j]=0;(0<=i<m);#include <i...

2019-01-06 21:00:43 243

原创 dp专题 最长上升子序列

dp[i]表示第i个数字为结尾的最最长上升子序列长度dp[i]= max(dp[j]+1:(ai>aj&&k!=1), dp[i])边界条件:d[i]=1 (1<=i<=n)#include<bits/stdc++.h>using namespace std;int a[100005];int dp[100005];int main(...

2019-01-06 20:44:35 217

原创 dp专题 最大子段和

给你一个序列,求它的最大子段和dp[i]表示以第i个为结尾的最大子段和dp[i]=max(dp[i-1]+a[i], a[i]);#include<bits/stdc++.h>using namespace std;int a[200005];int dp[200005]={0};i

2019-01-06 19:27:34 164 1

原创 C.新年和球体传播 因数+等差数列+set

题目链接:http://codeforces.com/contest/1091/problem/C题目大意:给你由n个人按顺时针围成的一个圆圈。现在1号有一个球。他可以选择一个正整数k(k<=n)将球传给1+k。后面的人也必须把球传给1+k+k。一直到回到1号(一定可以回到1号)。所有经过的人编号的和为一个有趣价值。给你一个n,让你从小到大输出他所以可能的有趣价值。对于样例一:思路...

2019-01-01 15:08:31 102

原创 D.圆舞 (孩子坐成一圈)规律暴力

题目链接:http://codeforces.com/contest/1095/problem/D题目大意:有n个孩子孩子坐成一圈。每个孩子会说出他顺时针的下两个孩子的编号(无序)。输入这个圆圈,多个可能输出一个3≤n≤2⋅10^5。思路:当时题目翻译错了。以为输入的孩子也是没有顺序的。后来才知道第i行的孩子i的下两个孩子的编号。所以只要确定第一二个孩子,然后同样一直暴力下去就行了。只是n...

2019-01-01 14:31:25 171

空空如也

空空如也

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

TA关注的人

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