
ACM
文章平均质量分 63
SuperAFeiDa
皮就完事了
展开
-
CF(codeforces) 101E Candies and Stones题解(空间卡爆~~~)
Candies and Stones传送门题目背景:Little Gerald and his coach Mike play an interesting game. At the beginning of the game there is a pile consisting ofncandies and a pile consisting ofmstones. Gerald ...原创 2018-11-01 18:55:41 · 724 阅读 · 0 评论 -
UVA1025题解——简单DP之多决策问题
题目链接:UVA-1025题意:给定n个车站,时间T,列车从车站i到车站i+1需要的时间t[i]。给定M1辆从车站1驶往车站n的列车发车时间,以及M2辆从车站n驶往车站1的列车发车时间。皮皮怪初始在车站1,要在T时刻到达车站n,问他至少要在车站等多久——车在车站停留时间忽略不计,并且假设皮皮怪特别敏捷,两辆车同时到车站他也能完成换乘,如果T时刻不可能在车站n就输出impossible。...原创 2018-05-24 00:15:51 · 499 阅读 · 0 评论 -
经典DP之LCS问题
LCS问题即最长公共子序列问题,子序列不要求连续。俩序列a[lenA], B[lenB],设dp[i][j]表示A的前i个元素与B的前j个元素的最长公共子序列数。则有: if(A[i-1] == B[j-1]) dp[i][j] = dp[i-1][j-1] + 1; else ...原创 2018-05-22 20:07:02 · 439 阅读 · 0 评论 -
数据结构之线段树(点修改)
首先,明确一点,线段树并不是什么神奇的东西,只是巧妙地利用了分治的思想,它用于区间的动态查询问题~线段树由很多下面这样的单元组合起来的(我懒地画图了),其中M=L+(R-L)/2(当然也可以写成(L+R)/2,但我们应该养成用前面那种方式找中值的习惯,当L和R特别大的时候,L+R有可能溢出,不过线段树上一般没什么问题),使用线段树的前提是你求的东西必须满足区间加法顺便提一下...原创 2018-05-22 20:04:06 · 356 阅读 · 0 评论 -
博弈论+指鹿为马DP法(CSU 2095: Sweet War题解)
题目传送门:CSU 2095:Sweet War题目大意:皮皮王和嘤嘤怪是好朋友,一天她俩出去玩,皮皮王发现了一个一端开口的玻璃管(大概试管那样的)。玻璃管里有好多巧克力豆一个挨着一个地排着。皮皮王和嘤嘤怪给每个巧克力豆估算了一个美味值s[i]和营养值r[i],她俩都想吃到的巧克力的美味值总和最大(巧克力从开口的一端向封闭的一端依次编号1,2,...,n,只能按顺序一个一个地吃)。于是,她俩就...原创 2018-05-16 20:12:44 · 1004 阅读 · 0 评论 -
HOJ 11104题解(简单DP)
题目传送门:HOJ11104额,你湖OJ需要内网才能进,所以,还是得贴一下题目啊:简单翻译一下吧,就是说,给你两个数n和m,求不大于n的各数位和不大于m的自然数有多少个。n是【0,1e9),m是[0,100)一看这一题,数位DP!!然后注意到一个问题,n只有1e9,不符合社会主义核心价值观,额,不对,应该是这大小不像数位DP的规模,数位DP起码得1e18吧(那种特别简单的除外),然...原创 2018-05-10 01:26:25 · 425 阅读 · 0 评论 -
划分型DP入门(codevs 1017题解)
题目传送门:乘积最大题意:给一个长度为N的只由数字组成的字符串,往里面添加k个乘号,使得乘积最大,输出这最大乘积。题解:划分型DP,具体的也不大清楚,没有系统地学习这种DP,但可以清楚知道的是,这个在划分型题目上提供了DP的思路。这题很简单,DP方程:dp[i][j]=max{strToll(s+i-k, k)*dp[i-k][j-1] }i表示当前处理的数字串...原创 2018-05-03 17:06:16 · 445 阅读 · 0 评论 -
POJ1285Combinations, Once Again题解
原题见:Combinations, Once Again题意:有x种东西共n个,每种东西num[i]个,问从中取出r个东西有多少种不同的取法。同一种东西无差别,同一组数据的不同排列无差别,即1、2、1和1、1、2是同一种。输入:第一行:n(物品总数) m(查询个数)第二行:n个数表示物品编号(编号在[1,n]),由此可以求出每种物品多少个第三行:m个数,表示m个查询。题解:...原创 2018-04-23 23:04:34 · 553 阅读 · 2 评论 -
一维费用的背包问题(01,多重,完全等)
做题时发现,长时间不接触,基本的背包问题都只能用O(V^2)复杂度来暴力做了,简直绝望。。。一、0-1背包给定背包容量V,N件物体,放入第i件物体花费为C[i],价值为W[i],求解背包最多能放多少价值的东西。每种物体有两种选择——放或不放,我觉得我想到了一种时间复杂度O(2^n)的“优秀”算法~~当然,n稍微大一点,2^n的时间就很让人绝望了,所以,这里要说的是时间复杂度为O(V...原创 2018-04-19 19:41:18 · 530 阅读 · 0 评论 -
欧拉φ函数和欧拉降幂公式
欧拉φ函数:在数论中,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为φ函数、欧拉商数等。φ(1)=1C++实现:int GetEuler(int n) //欧拉函数{ int i; int res = n,a = n; for(i = 2;i*i <= a; ++i){ if...原创 2018-04-13 19:18:12 · 1212 阅读 · 0 评论 -
CSU2015 Artwork题解(BFS+并查集)
原题见:题目传送门题意:给定一个n*m(1<=n,m<=1000)的矩阵白块,然后输入q(1<=q<=1e4)对结点,每对结点在同一行或者同一列(两个结点连成的线段上的结点也被连接起来了),涂黑这些结点对连线上的所有白色结点(包括两端点)。每次涂黑后都要求输出此时矩阵中白色联通块的数量(额。。。感觉总结能力完全不行,还不如直接看题。。。。)输入:第一行:n ...原创 2018-04-11 00:23:09 · 296 阅读 · 0 评论 -
POJ 1664放苹果题解
POJ 1664 放苹果看到这一题,第一眼就感觉是排列组合的问题。想起了高中老师给总结的分组问题,然后就陷入了死循环。看了讨论区,才明白,这只是一道很简单的递推题~我们的关注点是苹果数最少的盘子里放了几个苹果,显然,有两种情况:1,最少的盘子是空的,即0个苹果,那么此时,就相当于m个苹果放到n-1个篮子里2,最少的盘子不是空的,假设有c个苹果,那么就可以先把所有盘子里放c个,剩下的...原创 2017-09-28 20:04:13 · 410 阅读 · 0 评论 -
51nod 1596搬货物 解题报告
题目链接:51nod 1596搬货物这一题把我恶心到了,连续T了6次,最后500+ms过了先说解题思路吧,每个物品质量都是2的幂,质量和为2的幂的物体可以一起搬。假设有一个物体质量为2^x,它和另一件质量为2^y的物体能一起搬,那么也就是说存在z满足2^z =2^x+2^y,可设y = x * 2^w,z = x*2^u,也就是x * 2^u = x*1 + x*2^w,得到2^u = ...原创 2017-08-03 10:49:32 · 940 阅读 · 0 评论 -
CF-101C题解
CodeForce-101C Vector题解题面At a geometry lesson Gerald was given a task: to get vector B out of vector A. Besides, the teacher permitted him to perform the following operations with vector A:Turn the...原创 2019-03-07 14:12:04 · 466 阅读 · 0 评论 -
ZOJ4093题解(Robot Cleaner II)
Robot Cleaner II题目链接:ZOJ 4093 Robot Cleaner II Time Limit: 1 Second Memory Limit: 65536 KB Special Judge (Please read the description of Robot Cleaner I first.)Tired of programming the ro...原创 2019-04-15 17:58:20 · 508 阅读 · 0 评论 -
UVA 437 The Tower of Babylon 题解(DAG上的DP+神奇的数组索引设置)
题目传送门:UVA 437 巴比伦塔题意:有n(n≤30)种立方体,每种都有无穷多个。要求选一些立方体摞成一根尽量高的柱子(可以自行选择哪一条边作为高),使得每个立方体的底面长宽分别严格小于它下方立方体的底面长宽。分析:这个一看就是DAG上的最长路,瞬间写出状态转移方程:以dp[i][j]表示当前立方体长款分别为i和j,往它上面堆立方体,使其满足条件的最大高度则dp[i][j] =...原创 2018-05-25 01:26:49 · 885 阅读 · 0 评论 -
基环树,基环内向树,基环外向树
没在书上找到这个内容,也没在网上找到较为正式的解释,以下是找了一些零散资料后的我自己的理解,有错误请指出。一、基环树首先什么是树就不解释了,如果这都不知道,应该也接触不到基环树吧在了解了树的基础上来解释基环树——树加一条边使之成环(也就是说,在严格意义上来说,基环树并不是树,就像老婆饼没有老婆一样,基环树是个图)二、基环内向树首先它是一个有向图,它构成类似基环树的结构,有一...原创 2018-07-22 10:28:38 · 3620 阅读 · 2 评论 -
DP之倍增算法解决LCA问题
LCA,最近公共祖先,也就是树上两个节点的相同的祖先里距离它们最近的(也就是深度最深的)。倍增算法用于解决LCA问题的在线查询。比如要找x和y的LCA,一般会怎么做?首先是暴力。一种是DFS遍历说有点,无需预处理,查询是O(n)的。还有一种暴力是先一步一步将x和y提到同一高度,然后同时看x和y的父节点,相等则是LCA,不等则让x=father(x),y=father(y),这个查询的复杂度...原创 2018-10-23 16:01:24 · 723 阅读 · 0 评论 -
数位DP入门专题礼包已经出现~
题目入口:AFei的炼金术修行之数位DP题目难度排序:D<F<A<B<E<C<H<G哇,这套题我做了三次,终于给AK了,陆陆续续差不多做了一个月吧,碰到类似的题已经能够很快地想到思路了,就很苏福~~何谓数位DP数位DP,顾名思义,dp的对象是数字,并且这个数字的特点是在于数位上。啥意思呢,比如想找出【0,1e18】内不包含62的数字,...原创 2018-10-19 11:39:56 · 323 阅读 · 0 评论 -
数据结构之伸展树(二)
之前写了一篇Splay的博客【数据结构之伸展树(一)】,只是说了一下了它的原理及核心的伸展操作,后来发现具体在哪里应用splay我还是分不大清。事实上,Splay常常用于实现可分裂与合并的序列,举个板栗,比如给你一个数组,将数组从某一个地方分成俩数组,或者给你俩数组,将他们直接连接成一个数组——这就是Splay的强项就像上次写的伸展树博客里面说的,要处理一个区间[L,R]只需要将L-1伸展...原创 2018-09-17 14:22:11 · 306 阅读 · 0 评论 -
数据结构之求解RMQ问题
RMQ,即range minimum queuy,范围最小值查询,一般朴素算法查询单个区间是O(n),查询m个就是O(m*n) ,这里要说的Sparse-Table算法,需要O(nlog n)的预处理,O(1)的单次查询,在查询次数很多的时候就能体现更好的优越性。而且,最重要的是这个算法写法简单,理解方便~~令d(i,j)表示从i开头的,长度为2^j(本文中^都表示次方而不是异或)的区间内的最...原创 2018-09-12 19:35:57 · 327 阅读 · 0 评论 -
数据结构之Treap、RankTree(名次树)
一、Treap简单地说,Treap是一棵拥有键值、优先级两种权值的树。对于键值而言,它是BST,对于优先级而言,它是堆。它的插入、删除和查找的期望时间复杂度均为O(log n)它在插入的时候,随机生成一个优先级,首先根据键值以BST的方式插入到Treap里,然后通过BST的旋转来维护优先级堆的性质,而旋转本身是不会破坏BST的性质的,这就保证了插入完成之后,仍然是一棵Treap其它的没...原创 2018-09-09 19:47:47 · 1653 阅读 · 1 评论 -
数据结构之树状数组(BIT)
Binary index tree,二叉索引树,又叫树状数组,用于动态连续查询为你。给定一个数组A1、A2、A3......An,树状数组支持以下两种操作:add(x,d):让A[x]增加d,时间复杂度O(log n) sum(x):求A前x个元素的和,时间复杂度O(log n),有了前缀和就可以O(1)地求任意区间的和了在说树状数组前,我们先了解一下lowbit(x)。对于正整数x,我们...原创 2018-09-06 14:37:51 · 787 阅读 · 0 评论 -
数据结构之AC自动机
AC自动机,学会了有助于AC~~AC自动机相当于在Trie上跑KMP——用于解决字符串的多模板匹配问题。所谓的多模板匹配,是相对于单模板匹配而言。单模板匹配就是KMP中所说的给定一个模板串,在查询串里面寻找这个模板串(匹配),而多模板匹配顾名思义,也就是有多个模板串。对于这种问题,我们用KMP或者Trie当然是可以直接写的,只是复杂度过高罢了。比如给定m个平均长度为a的模板串,一个长度为n...原创 2018-08-31 22:57:41 · 1042 阅读 · 0 评论 -
数据结构之KMP
KMP主要用于字符串匹配,比如给一个长度为n的字符串s,然后再给一个长度为m的字符串t,问s中有没有连续子串和t一样(n>=m)显然,直接暴力求解,容易得到最坏O(m*(n-m))复杂度的算法。当这个朴素算法的复杂度不满足要求的时候,就需要用到我们经典的字符串匹配算法——KMP,复杂度为O(m+n)如下图所示,i指针指向字符串s,j指针指向t,当i从第一个字符a开始与t匹配,当i指到...原创 2018-08-29 01:10:03 · 384 阅读 · 0 评论 -
数据结构之前缀树(Trie)
前缀树,又叫字典树,主要用于字符串(不限于字符串)查询、统计、排序的一种数据结构比如,给定n个字符串,进行m次查询,每次查询给定一个字符串 t,问t 是否存在于那给定的n个字符串里这里,我们用到了前缀树,即将每个字符串看作一条链,把拥有相同前缀的字符串的链的相同前缀给合并,形成一棵棵子树。如给定三个字符串his,her,hit,得到前缀树:上图很清晰了,在右边的树里面从根出发,一直...原创 2018-08-29 00:30:34 · 816 阅读 · 0 评论 -
HDU 6321 Dynamic Graph Matching题解(状压DP)
题目链接:题目传送门~题意:给定一个n 个点的无向图,m 次加边或者删边操作。在每次操作后统计有多少个匹配包含k = 1, 2, ...,n/2条边。 一个匹配的意思是一个边的集合,并且这些边都没有公共顶点n∈{2,4,6,8,10}, 1 ≤ m ≤ 30000题解:解释这一题如何DP之前先明确几点:一个有k条边的匹配(后面简称k匹配)必然包含2*k个点,一个2*k个点的集合只能构...原创 2018-07-31 20:15:31 · 291 阅读 · 0 评论 -
HDU 6319题解(数据结构之双端队列)
题目链接:看题目点这里~题意:给定一个序列a[1..n],对于每个长度为m的连续子区间,求出区间a的最大值以及从左往右扫描该区间时a 的最大值的变化次数。(实际上不是输出这个,具体的看原题吧)1 ≤ m ≤ n ≤ 107题解:使用双端队列,由右向左维护一个单调非递减队列。由区间[l, l+m)滑动到[l-1, l+m-1)时,如果a[l-1] <= a[l],则直接给a[...原创 2018-07-31 13:54:07 · 464 阅读 · 0 评论 -
UVALive-2522 Chocolate题解(马尔科夫收敛+简单DP)
题目:看题目点这儿题意:一个口袋中有n个球,球的颜色有c种。现从口袋中取出一个球。若取出的球与桌上已有球颜色相同,则将两球都取走,否则将取出的球放在桌上。设从口袋中取出每种颜色的球的概率均等。求取出n个球后桌面上剩余m个球的概率。n,m<=1e6,c<=100题解:首先是个简单dp,假设表示取i个球后,桌上有j个球。这就意味着:这个状态转移方程还是比较好理解的,首先dp...原创 2018-07-30 16:02:16 · 1310 阅读 · 0 评论 -
HOJ 14121 Elections题解(带概率的01背包)
题面(下面有中文的,可以跳过):Elections Time Limit:10000ms,Special Time Limit:25000ms,Memory Limit:524288KB Total submit users:9,Accepted users:4 Problem 14121 :No special judgement Problem descrip...原创 2018-07-29 20:01:17 · 699 阅读 · 0 评论 -
数据结构之伸展树(一)(Splay Tree)
Splay树是一棵二叉搜索树(BST),它是BST的拓展,它不仅拥有O(log n)的单点插入、删除、查找等,还可以在O(log n)的复杂度内对区间进行插入、删除等~它具有BST的性质,即一个节点的键值必然大于其左子树所有节点的键值,并且必然小于其右子树所有节点的键值。关于BST,详见:百度百科:二叉搜索树SPT不同于BST,就在于它有伸展操作——这使得在某些情况下(比如区间的插入、删...原创 2018-07-28 20:29:09 · 403 阅读 · 0 评论 -
CSU 1803:2016解题报告
本来是没有写博客的习惯,结果今天回头看自己A过的题,发现根本看不懂代码了,看着题目也完全没有思路,这就比较尬了,因此打算走上这条不归路。言归正传,题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1803看到题目,我的第一感觉就是分解因数即2016=1*2016=2*1008=…………对2016分解一下质因数就知道有多少种了,2...原创 2017-08-02 09:44:15 · 480 阅读 · 0 评论