- 博客(48)
- 收藏
- 关注
原创 区间dp(乘积和最小)
题意:给定一组n个元素的数列,按顺序每次从2~n-1中随机去除一个点,得到一个花费:a[p]*a[p-1]*a[p+1],问应该按照怎样的顺序删点,可以得到一个最小的乘积和,求该和。分析:dp[i][j]表示i~j的最小值,入门练习不解释,,,1、易知,若能出现上述运算规则,则区间长度至少应该为3,因此,区间长度为3时的所有状态可以作为递推初始值。2、当区间长度为4时,会出现两...
2018-08-30 00:32:50 533
原创 区间dp(一群屌丝进栈)
题目大意:给出n个排好队的屌丝,每个屌丝有一个权值,当第i个屌丝在第k个位置时,将产生一个生气值=(k-1)*权值,他们之间的顺序可以通过一个栈调整,问怎样排序能使产生的生气值之和最小。分析:首先,这个栈有什么用呢?它可以把一个屌丝调整到该屌丝之后的所有位置上去。1、状态:区间dp,二维数组表示区间。2、递推关系:入门级专题训练中难点一般在于花费的确定,(ps:说到底好像是断点...
2018-08-30 00:00:19 180
原创 8.29日周三总结
区间dp,看了好几道题,但做出来的没几道,之前看的博客感觉大部分都看懂了,但是做起题来还是感觉差距好大,有些自己想出的状态转移方程,好像和正解很像,但是就是调不出来,话说dp调bug真难调。 今晚的训练赛,涉及的好多知识不会,终于找到一个水题A了,然后剩下的题目感觉目前真的是没什么办法做出来了,所以,就接着做dp吧。 最后的话,,,开学以后感觉一直好...
2018-08-29 20:32:01 111
原创 区间dp入门(括号匹配)
题目一:括号合法匹配:题意:给定一个由()[]四种符号组成的字符串,求其中合法满足合法匹配的最长子串的长度。合法匹配有如下几种形式:()、[]、(合法串)、[合法子串]、合法子串+合法子串+....(如()[][][]()[])。分析:dp问题三个重要环节:描述状态、状态转移方程、递推边界。区间dp的话状态描述一般为二位数组,表示起点和终点。因为是入门,我们暂且假设已经分析出该...
2018-08-28 23:59:05 2066
原创 2018ACM暑假训练收获
目录一、学习方法方面:二、知识方面:三、总结:一、学习方法方面: 当在学习新知识时,遇到不懂的地方是很正常的,这个时候如果实在看不懂,也就没有必要死扣到底了,可能经过一段时间的沉淀、或者在看后面的部分知识时,就会突然“顿悟”。整个训练过程中自己也在尝试着慢慢改变以前“钻牛角尖”的“坏习惯”,发现还是有一定难度的,不过还是要继续注意并改正原来的习惯,因为这个习惯直接影响...
2018-08-26 19:06:51 272
原创 8.25
感想:例题好像看明白了,但如果让自己实际做,恐怕还很有难度,现在如果说对状压dp做个总结的话,感觉真总结不出什么来,不知道做完入门题之后会不会好一些。...
2018-08-26 08:27:05 116
原创 8.24
训练赛,五个小时的连续思考是真的受不了,,,前两个小时还能做题,之后读题都费劲,,,针对个人的话,自己可以考虑隔一段时间放松一下。...
2018-08-25 00:28:56 145
原创 8.23日
状压dp就是用二进制等代表某一状态,而进制数在转换为十进制数储存,但在什么时候用,看的有点懵,另外状态确定依旧是个难点。昨天还没看完,,今天先继续吧。 ...
2018-08-24 08:27:28 67
原创 8.22日
下午的训练赛还好,相比昨天配合上有进步,不过可能队伍有一些不好的习惯,比如改动一次后不再检查直接提交,,,造成罚时较多,另外今下午比赛中发现有时候系统自带的函数在处理某些特殊数据时不好用,此时要考虑自己手打代码实现函数功能。 怎么发布到草稿箱里了。。。 另外,“今天”该看完状压dp了,,,...
2018-08-23 15:41:38 91
原创 8.21日
说一下今下午的训练赛吧,团体赛,一上来还不错,秒掉2题,但后面就很尴尬了。,,, 三个人分题,我做后面几个,,,E一上来就想暴力模拟,结果自然是TLE,之后也没再继续看该题(该题其实做过一个类似的,但第一反应还是模拟),之后去做xxx没思路的C题,有思路,但有bug,,,全队最纠结的B题,其实就是一个简单的贪心,当然这题我又读错题了。 总结来说,三个人还是需要磨合。虽说...
2018-08-21 23:52:05 88
原创 8.19日周末总结
这一周,前几周真的很失败啊,划定的任务从来没有保质保量完成过,不是为了追求质量而忽略数量就是为了数量而牺牲质量,这应该也是自己和优秀的同学之间的差距之一吧。 今天看区间dp,各个题之间好像有着千丝万屡的联系,但又有很大的不同,拿到题目,自己思考的过程有时候感觉有思路,但总觉的思路很不清晰,想的方向有时候是对的,但状态转移方程就是写不出来。 当然大部分时候是没有思路,根本找...
2018-08-19 22:51:34 85
原创 8.18日
昨天看完数位dp,继续看区间dp,发现自己想的状态转移方程总是会多出几维,而且递推边界以及循环体的形式也总是想不明白。另外,寒假的时候做过几道区间dp的题目,写过两篇题解,现在来看的话,对应当时的水平,当时写的还挺详细的,尽管有好多错误的地方。。。 ...
2018-08-19 08:33:24 110
原创 8.17日
今天主要看了数位dp的内容,几个入门题目,套路挺强的,但是刚开始包括现在对于状态的的确定(尤其是数组的维数)还很不理解,其状态数组的定义一般第一位是表示数位的变化,后边的维度一般用来表示序列前段已经确定的的某种特征。还有看的几个题目大多是计数型题目,如果要输出所有方案的话,应该储存每一次的数并在递归边界的地方输出就可以了。。。明天争取再有半天时间结束数位dp,然后开下一部分,状压。。。或者区间。。...
2018-08-18 00:07:19 104
原创 数位dp基础模板理解(HDU 2089不要62)
HDU 2089:http://acm.hdu.edu.cn/showproblem.php?pid=2089题意就不多说了,主要分来分析一下代码思路:①求a~b内满足条件的数的数目转换为求1~a和1~b两组数内满足条件的数的数目;②将每组最大的数分解得到各个位置上的上限;③从最高位的最大数开始枚举,该模板用搜索枚举,所以状态转移的条件是位数的变化;因此,dfs从最高位开始。...
2018-08-17 15:38:57 94
原创 8.16日
今天本想把练习二和练习一的题目总结一下,但是单练习二就没总结完,中间还出了点小插曲,洗了个澡回来写了一下午的总结博客又没保存。。。不过还好都弄懂了,几个“水题”也就不在意了。 其次,稍复杂点的dfs调bug是真的难调,。。。这算是个难点么。。。 ...
2018-08-16 22:25:38 65
原创 高精度模板
#include <cstdio>#include <cmath>#include <cstring>#include <cstdlib>#include <iostream>#include<algorithm>#include <set>#include <queue>
2018-08-16 00:34:19 93
原创 8.15
今天开始又看了一下练习二的几个容斥原理的题目,题目基本上是差不多的,最大的区别感觉是在容斥定理这些集合所代表的含义不同,因此奇数加偶数减的内容也就不同,最基本的有与n“互合”的数的个数,再有与n互合的数相关的某个函数的值,还有 这些数的可重复全排列 组数等等。。。...
2018-08-15 22:03:04 170
原创 组合数习题总结(未完。。。)
Problem A——HDU:2067 小兔的棋盘(dp/卡兰特数)http://acm.hdu.edu.cn/showproblem.php?pid=2067题意:从棋盘(0,0)点到(x,y)点有几种走法,要求不能穿过棋盘对角线。分析:角度一:DP,已知经典棋盘问题状态转移方程:,而本题由于不能穿过棋盘的对角线,因此可以考虑将棋盘划分为两个部分,,同时在上述状态转移方程的基础上...
2018-08-15 01:38:53 953
原创 模板——求单个数 欧拉函数值
ll getphi(ll n){ ll ans=n;//容易记错; for(ll i=2;i*i<=n;++i)//sqrt即可 { if(n%i==0) { ans=ans/i*(i-1); while(n%i==0)n/=i; } } if(n>...
2018-08-15 01:37:36 235
原创 HDU 4135 模板——单个数分解质因子+二进制枚举统计1~A中与N互质数个数
#include <cstdio>#include <cmath>#include <cstring>#include <cstdlib>#include <iostream>#include<algorithm>#include <set>#include <queue>#inclu...
2018-08-15 00:52:42 197
原创 8.14日
今天主要在刷组合数学的题目,(ps;昨天开始HDU没法提交,所以大部分是搜着题号在POJ上或者HDU题库中做的,之后HDU DIY开放后也没再在HDU上提交),还有几道二分的题目没做,今晚做完吧。。。 ...
2018-08-14 19:56:08 98
原创 8.12日周末总结
下午一道dfs题目,敲出来以后一直TLE,怀疑dfs中两层循环有问题,于是想改o(n),最后改出来了,但突然发现o(n)的算法是在题目理解错的情况下写出来的。。。弄懂题意后确定之前的两重循环不能再优化了。。。于是看了题解,发现素数要预处理,之前没考虑到是看到n的范围为1~1000,但没考虑实际在运算过程中产生的素数的数量是远大于1000的。 总结:读题还是一个很大的问题,常...
2018-08-12 22:08:49 108
转载 STL unique函数,容器去重
之前总结了一下我觉得有用的erase,lower_bound,upper_bound。现在总结一下unique,unique的作用是“去掉”容器中相邻元素的重复元素(不一定要求数组有序),它会把重复的元素添加到容器末尾(所以数组大小并没有改变),而返回值是去重之后的尾地址,下面举个例子。由于返回的是容器末尾,所以如果想得到去重后的size,需要减去初始地址,lower_bound是得到地址,...
2018-08-11 21:59:06 415
转载 同余运算及其基本性质
同余运算及其基本性质 100除以7的余数是2,意思就是说把100个东西七个七个分成一组的话最后还剩2个。余数有一个严格的定义:假如被除数是a,除数是b(假设它们均为正整数),那么我们总能够找到一个小于b的自然数r和一个整数m,使得a=bm+r。这个r就是a除以b的余数,m被称作商。我们经常用mod来表示取余,a除以b余r就写成a mod b = r。 如果两个数a和b之差能被m整...
2018-08-11 08:36:32 5521 1
原创 8.7日水题赛(未完。。。)
A Codeforces Round #486 (Div. 3):C.Equal Sums题意:给出n个数列,判断是否存在这样一对数组,两者均去除一个元素后两数列和相同。思路:记录去掉某一元素后,该元素对应数列的和。暴力做法:遍历每一数列的每一元素,看去除该元素后的和是否在之前记录和的容器中存在过,思路是对的,但因为对于数据存储没有处理好(数据结构没选择好),所以输出与时出现了三层循环...
2018-08-08 08:37:37 120
原创 8.7日心得
下午又刷了一波大水题,第一题STL做了近两个小时结果没A。。。。。。还能接受,第二题做了大半个小时总是出不来结果,原来是题目读错了。。。感觉还能hold的住,再后面cin输入字符串TLE,要用char数组配合scanf("%s"...)输入。 最后。。。 总体来说,收获还是不小的。。。 ...
2018-08-07 21:57:27 137
原创 8.6日总结
脑子实在转不动了,几个很简单的知识,琢磨一天了。。。 POJ 1061 http://poj.org/problem?id=1061 青蛙的约会,裸扩展欧几里得,当模板练习。 ZOJ 3593 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3593 和POJ2142类似,需要做一点小...
2018-08-06 22:20:28 109
原创 POJ 2115 - C Looooops(扩展欧几里得)
题目链接:https://blog.csdn.net/shengtao96/article/details/51234355 AC代码:#include<iostream>#include<cmath># define INF 0x7fffffff# define ll long longusing namespace std;ll exgcd(ll...
2018-08-06 19:03:17 141
原创 ZOJ - 3593 One Person Game (扩展欧几里得 技巧)
类似题目:poj2142-The Balance(扩展欧几里德算法) #include<iostream>#include<cmath>#define ll long long#define INF 0x7fffffffusing namespace std;ll exgcd(ll a,ll b,ll &x,ll &y){ if...
2018-08-06 16:35:41 244
原创 ZOJ Modular Inverse(扩展欧几里得求最小逆元)
题目链接:http://acm.zju.edu.cn/onlinejudge/showRuns.do?contestId=1模型:求最小逆元。分析:m不能确保是素数,因此费马小定理+快速幂不好用,(好像可以有欧拉定理),这里用扩展欧几里得模板,详见代码。注意事项:最后结果要确保是最小正整数。#include<iostream>#include<cstdio&g...
2018-08-06 14:05:45 150
原创 数论总结
一、知识梳理。1、整除:把握好性质,另外特别注意几种常用的整除的情况,例如能11整除的数的特征等等。https://blog.csdn.net/qq_41661919/article/details/812914522、同余:同余这个问题感觉还是不好理解的。。。注意,同余不满足同除性,一般要用逆元替换(快速幂)。3、求最大公约数:①辗转相除法求最大公约数就不说了: %;...
2018-08-05 22:07:28 235
原创 组合数学总结
前言:虽然书上的基本知识都看完了,也看懂了,但是对于课本上这一部分的例题,感觉难度还是不小的,可能是自己对于基本知识的理解还不到位,感觉自己可以先做一部分模板题,熟悉一下这些知识,然后再逐渐提升。 一、基础知识梳理:1、计数原理:加法原理,乘法原理,鸽巢原理、容斥原理;①加法原理:即A∪B,(注意A、B之间是互斥的,交集为空集):例1、有一所学校给一名物理竞赛优胜者发奖,奖品有...
2018-08-05 20:49:51 1787
原创 8.4日心得
吐槽:跑完步洗了个澡感冒了,效率好低。单单一个简单的基本母函数与指数型母函数的区别就纠结了好久,不过总算还是弄明白了。对于莫比乌斯反演,感觉其构造不是很好理解,抽时间再看看。明天的话就主要把课本例题在理解理解,然后梳理一下知识体系。。。 ...
2018-08-04 21:59:24 509
原创 8.3日总结
排列与组合问题,高中的知识用的还是不少的,隔板法、捆绑。。。。。。,其次有个错位排序,感觉就是容斥定理的一个小应用,圆排列就不说了,它的计数公式和组合的公式是一样的。 排列:输出全排列的各种情况:方法一,dfs;方法二,一种叫做生成法的方法,其基本步骤:找到最后一个正序对,记录首位位置、从数列末端开始遍历,找第一个比记录数大的数,交换两者、对记录的位置后面的元素按从小到...
2018-08-03 21:36:33 114
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人