把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

03 2020 档案

摘要:题面传送门 题面传送门(加强版) 其实这两道题是双倍经验啦哈哈。 这道题要求所有xy满足x\neq y&&a_x=a_y&&min(b_k)<=p&&x\leq k\leq y 我们设ai为第i种元素的当前最后一个的值,bi表示第i中颜色到当前位置已经可以有$min 阅读全文
posted @ 2020-03-31 18:12 275307894a 阅读(44) 评论(0) 推荐(0) 编辑
摘要:题面传送门 直接暴力BFS,判断当前点和下一个单位时间有没有石头,并且当时间>22时就跳出。 为什么是22呢? 考虑极端情况,一块石头在1,x的位置,如果这块石头掉到底部要8单位时间,然后如果现在再开始走,走到终点要14个单位时间。 代码实现: #include<cstdio 阅读全文
posted @ 2020-03-31 17:49 275307894a 阅读(35) 评论(0) 推荐(0) 编辑
摘要:题面传送门 显然这是一道SPFA水题,难点在建边。 题目中给三个点求另一个点,那么只要找到对角线,然后把另一个点对称过去就好了。 代码实现: #include<cstdio> #include<queue> #include<cmath> #include<cstring> #define mi 阅读全文
posted @ 2020-03-30 13:31 275307894a 阅读(37) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这次JX重考的题目也太水了点吧,完全比不上原来的T3。 题目要求拆除的边数最多,那么要留下的边数最少。 那么这样的话1s1s2的路程中最好有一部分是重叠的。 而1s1s2的路程均为一条链,这两条链可能有一部分是重叠的。无论重叠也好,不重叠也好,总会 阅读全文
posted @ 2020-03-29 20:49 275307894a 阅读(98) 评论(0) 推荐(0) 编辑
摘要:考虑一下变形,得到每一次变化等于ans=+1×i 变形,得ans=\left\lfloor\dfrac\right\rfloor\times i+i 因为 ans%(i1)=0 所以$ans=\left\l 阅读全文
posted @ 2020-03-29 18:39 275307894a 阅读(42) 评论(0) 推荐(0) 编辑
摘要:题面传送门 运用集合思想,用总集减去补集得到所求集合。 总共的点个数减去平行于坐标系的三点共线减去斜边三点共线。 斜边三点共线:枚举一个点,算出他与原点中间点的个数,再把这条线分别向上向右平移, 分别减去。 代码实现: #include<cstdio> using namespace std; in 阅读全文
posted @ 2020-03-29 18:32 275307894a 阅读(46) 评论(0) 推荐(0) 编辑
摘要:题面传送门 排列组合题。 总共有 4n 个点,5n 条边,所以要删 n+1 条边。每个五边形要删一条,中间的还要删一条, 所以是 4×n×5n1。 可以用快速幂实现。 代码实现: #include<cstdio> using names 阅读全文
posted @ 2020-03-29 18:27 275307894a 阅读(26) 评论(0) 推荐(0) 编辑
摘要:题面传送门 又是数学题。 设 ai 为本来钱数,bi 为给后一个人多少钱,m 为平均分的钱数。 则: a1b1+b2=m a1b1+b2=m b2=b1(a1m) a2b2+b3=m \(b_3=2m-a_ 阅读全文
posted @ 2020-03-29 18:24 275307894a 阅读(42) 评论(0) 推荐(0) 编辑
摘要:题面传送门 对于这道题,用递推的思想。 设fi表示i这个数的lqp拆分的值,那么考虑一下,除了自身的拆分,其他拆分一定是x×(ix),其中x是一个多数组成的集合,而(ix)是一个单个的数,然后问题就变成了怎么求x这个集合的lqp拆分的答案。因为这是递推 阅读全文
posted @ 2020-03-28 16:08 275307894a 阅读(57) 评论(0) 推荐(0) 编辑
摘要:题面传送门 既然是算期望,所以可以用\frac来求得。 把这道题抽象成一个模型,i个节点是在i1个节点的树上再挂一个节点,那么就会有两种情况:加一个点与不加点,这就是卡特兰数模型,所以可以用通项公式。 hn=2n!n!(n+1)! 所以带进去可得 \(ans 阅读全文
posted @ 2020-03-28 15:58 275307894a 阅读(50) 评论(0) 推荐(0) 编辑
摘要:题面传送门 首先一段告诉我们这n条线任意三线不共点,任意两线不平行。 所以这个图像可以反过来。 那么第一层一定是2段,一个焦点。 第二层那一个焦点可以延伸出2个焦点,所以有四段。 以此类推。 而又因为它可以反过来,所以应该考虑两种情况。 代码实现: #include<cstdio> #d 阅读全文
posted @ 2020-03-28 15:54 275307894a 阅读(28) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这题因为他只能对头尾两个进行操作,所以根据分治思想,只要考虑头尾两个就好了 代码实现: #include<cstdio> #define abs(x) ((x)>0?(x):-(x)) using namespace std; int t,n,a[100039],flag,tot,ans 阅读全文
posted @ 2020-03-28 15:52 275307894a 阅读(55) 评论(0) 推荐(0) 编辑
摘要:题面传送门 也很简单,统计二进制下有几位就好了(即log2n) 代码实现: #include<cstdio> using namespace std; int m; int ans; int main(){ scanf("%d",&m); while(m){ m>>=1; ans++; } p 阅读全文
posted @ 2020-03-28 15:50 275307894a 阅读(48) 评论(0) 推荐(0) 编辑
摘要:题面传送门 简单博弈论,直接判奇偶就行了 代码实现: #include<cstdio> using namespace std; int n; int main(){ scanf("%d",&n); while(n){ if(n&1) printf("Bob\n"); else printf("Al 阅读全文
posted @ 2020-03-28 15:49 275307894a 阅读(23) 评论(0) 推荐(0) 编辑
摘要:题面传送门 对于这道题,明显可以dp,将一张表预处理出来。 我们可以设fi,j,x,y,k表示左下角为i,j右上角为x,y,切大小为k的,转移时横竖各枚举切分点与k的分配转移,时间复杂度O(305×502)=O(1) 不过我们发现,实际上这道题任意大小一 阅读全文
posted @ 2020-03-28 13:57 275307894a 阅读(25) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题一眼就是二分,重点是check函数怎么写。 62分思路:把所有点按权值排序,每次枚举大于mid的点,枚举对角线并进行判断,一有满足条件的就退出,期望复杂度O(n2m2log2(maxai)),咋一看复杂度比暴力还高,但在随机数据下摊还分析一下只有$O(nm\s 阅读全文
posted @ 2020-03-28 13:29 275307894a 阅读(50) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题到现在为止还只有我一个人做出来,还是蛮高兴的QWQ 算了不说了,再说90分的zj会把我用唾沫星子淹死我的 想法1:暴力枚举:枚举四个点,求这四个点之间的欧几里得距离,看是否相等,相等即构成一个正方形。大概30分。 想法2:构造:枚举三个点,构造出第四个点,看 阅读全文
posted @ 2020-03-27 16:04 275307894a 阅读(69) 评论(0) 推荐(0) 编辑
摘要:题面传送门 链表,顾名思义,就是一根链,由许多节点构成,每个节点分为两个部分:数据域和指针域,其中数据域可以包含很多数据,指针域只能包含一个指向对象,不然就成图了。链表可以O(1)插入和删除数据,但不能随机访问元素。 链表实现就不再乱说了。毕竟是个人都会。主要讲一些链表的应用。 这道题很简单,只 阅读全文
posted @ 2020-03-27 09:26 275307894a 阅读(76) 评论(0) 推荐(0) 编辑
摘要:题面传送门 题目描述:给定一个标准串a,再给出很多串b,问b是不是a的子序列。 方法一:最长公共子序列(太无脑了) 方法二:首尾一个一个对过去比较 方法三:链表 对于每个ai,令si指向下一个与ai值相同的位置。 我们在匹配子序列时,对于一个bi,原本我们要一 阅读全文
posted @ 2020-03-27 09:20 275307894a 阅读(44) 评论(0) 推荐(0) 编辑
摘要:题面传送门 话说这不是一张真正的图啊,只是一根链表后面挂着一个可有可无的环儿。 一眼扫去,这道题如果没有环,那么就是记忆化搜索或topo,但有环,就不好办。 根据亡羊补牢原则,我们把这个环拆了不就好了。 接下来就可以缩点。即把一个环变成一个权值为这个环的权值之和的点。 我们可以把那些绕在环上的链 阅读全文
posted @ 2020-03-26 13:32 275307894a 阅读(55) 评论(0) 推荐(0) 编辑
摘要:题面传送门 话说这道题题面和题目一点儿不沾边啊QAQ,而且还有错别字:大米有32768棵(颗)…… 扯了半天,题目要求解一个方程组:ax1+bx2+cx3+dx4=0,0<=x1,x2,x3,x4<=m 第一想法:枚举:四重循环,枚举x1,x2,x3,\( 阅读全文
posted @ 2020-03-26 12:32 275307894a 阅读(48) 评论(0) 推荐(0) 编辑
摘要:题面传送门 按照题目要求递推即可 代码实现: #include<cstdio> #define min(a,b) ((a)<(b)?(a):(b)) using namespace std; int n,f[10039],a[10039]; int main(){ register int i,j; 阅读全文
posted @ 2020-03-26 11:37 275307894a 阅读(47) 评论(0) 推荐(0) 编辑
摘要:题面传送门 一看到最大最小值,而且是区间,立马想到两个东西:st和单调队列。这里介绍一种st表的做法。 但这可是二维,我们只学过一维的。 回想一下之前的前缀和和差分,我们是怎么一维转多维的。 维恩图! 首先是建表,肯定还是拿来拼,四个小正方形拼一个大正方形。 设stmaxi,j,k 阅读全文
posted @ 2020-03-26 11:30 275307894a 阅读(51) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题可以任意±x,所以可以考虑。将每一个数进来后并加入一个数组f中,设fi的数有几个。同时有一个指针为head。 若head<x,那么f>0,head++ 如果headx,那么就要先满足小的,再来管大的。 阅读全文
posted @ 2020-03-26 08:00 275307894a 阅读(57) 评论(0) 推荐(0) 编辑
摘要:题面传送门 题意简述:给定na×b×c=nabc各不相等且都为正整数,求任意一组abc。 暴力即可,将a分解质因数后再分解一次就可以了,注意两次分解不能重复。 代码实现: #include<cstdio> #incl 阅读全文
posted @ 2020-03-25 20:43 275307894a 阅读(63) 评论(0) 推荐(0) 编辑
摘要:题面传送门 给出nn个特殊点的坐标 (xi,yi) 。 从 (0,0)出发, 只能向上和向右移动,求最优路径,或告知无解 首先最优化排序,使得其按x升序,x相同以y升序。排好后检查y是否全部升序,如果全部升序那么机器人一定可以到达,反之则不能。 那么从 阅读全文
posted @ 2020-03-25 20:41 275307894a 阅读(47) 评论(0) 推荐(0) 编辑
摘要:题面传送门 好无聊的题。英文好的同学跳过下面一段。 题意简述:给你a,b,c,dx1+x2+x3=da+x1=b+x2=c+x3。求任意一组x1,x2,x3。 那么我们只要先将所有补成一样的并使其最少,然后再判断,如果剩下的d为负或d,那么 阅读全文
posted @ 2020-03-25 20:37 275307894a 阅读(50) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题数据这么小,一看就是搜索,只是细节比较多。 我们思考怎么通过一个点的半径确定另一个点的半径。两点的欧几里得距离显然是(x1x2)2+(y1y2)2,那么减去那个点的半径d,那么可得式子为(x1x2)2+(y1y2)2d阅读全文
posted @ 2020-03-25 20:33 275307894a 阅读(47) 评论(0) 推荐(0) 编辑
摘要:题面传送门 简单题哈,简单题。 我们二分能组成的套数,再遍历一遍找到答案。若答案大于m,那么收拢右边界。如果答案小于m,那么收拢左边界。 代码实现: #include<cstdio> using namespace std; int n,m,a[139],l,r,mid,b[139]; lo 阅读全文
posted @ 2020-03-25 11:49 275307894a 阅读(54) 评论(0) 推荐(0) 编辑
摘要:题面传送门 看到这道题,想到spfa。 但这道题好像故意的,偏偏又路牌被拆的道路(在衢州的话负责那一段路的交警就该下台了), 所以我们不能只以ditime的唯一标准。 想象一下:如果下一条路是没有路牌的,而这时过来一条路,timedi大,但如果下一条路可以走得通怎么办?而 阅读全文
posted @ 2020-03-24 11:52 275307894a 阅读(45) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题考场上写挂了,咕了好久才补锅。现在看就是一个随手切的题。 题目中要求我们将所有abc满足dist(ab)+dist(bc)=distr(ac)的缩成ac,求最后的序列。 可以注意到n200,所以可以直接Floyd预处理。 然后遍历 阅读全文
posted @ 2020-03-22 20:31 275307894a 阅读(34) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题似乎是板子,就是裸的LCA,然后我就打了个暴力LCA过掉了。 思路:先把两个点提到同一层,然后一起向上提,直到提到同一个节点停止,计算答案。 因为是满二叉树,所以时间复杂度O(klogmn) 代码实现: #include<cstdio> #define abs(x) 阅读全文
posted @ 2020-03-21 20:14 275307894a 阅读(27) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道dp还是比较水的 首先考虑设fi为以ai结尾的最长长度,则向前循环枚举找到适合的转移就可以了,时间复杂度O(n2),估计80分 正解也不是很难想,因为这是位运算,所以我们要找到位运算的性质,&的性质就是两个数至少有一个相同位置同为1,那么只要枚举位置 阅读全文
posted @ 2020-03-20 19:53 275307894a 阅读(28) 评论(0) 推荐(0) 编辑
摘要:题面传送门 三十分...... 于是我只能重新想思路。然后就只得了35分。 考试结束后老师叫我们自己去网上找题解,然而我发现,居然没有任何一篇luogu题解是正解。于是我准备发一篇题解来kluogu所有题解。 正解: 我们先把这个峡谷想象成一个时间轴,每个时间我们最多能带c个糖果。 阅读全文
posted @ 2020-03-20 18:20 275307894a 阅读(95) 评论(0) 推荐(0) 编辑
摘要:题面传送门 平生第一次切cfF题祭 其实这道题主席树也可以做,但是我不会,所以只好用莫队水过 对于这道题,维护一个栈,栈中表示的是当前区间内个数为1的元素,再设fi表示i这个元素在栈中的位置,来了一个数时,若是第一次出现,加入栈中,若是第二次出现,把栈中的这个元素与栈顶互换位置 阅读全文
posted @ 2020-03-20 18:17 275307894a 阅读(64) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题可以说是这几天来的最简单的一道题了。 首先,我们根据题目有一个最简单的结论:当一个女的前面的女的全都配对完之后,这个女的一定和离她最近的男的配对。 那么直接开栈模拟不就好了! 代码实现: #include<cstdio> using namespace std; int n,m,a 阅读全文
posted @ 2020-03-20 16:17 275307894a 阅读(31) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题的dp是很好想的,只要从上一行的可以转移的位置转移就好了,时间复杂度O(nmt),可以有80分 接下来要优化,有两种思路 思路一:按照上面的状态,我们发现有一个区间求最值的O(n)复杂度,考虑用单调队列优化掉,因为这个区间向两边延伸,考虑用正反两次单调队列过去,每次 阅读全文
posted @ 2020-03-19 18:25 275307894a 阅读(36) 评论(0) 推荐(0) 编辑
摘要:题面传送门 对于这道题,我们很容易想到分层图(大概是因为那道分层图优化成矩乘太出名了),则这道题只需要建两层就够了,一层表示横的,一层表示竖的。 首先思考两层图之间怎么连接,很明显,由本层的点向下一层的同一节点建一条双向的边权为1的边 其次思考同一层图中怎么建边,我们可以用两个vector阅读全文
posted @ 2020-03-18 19:41 275307894a 阅读(42) 评论(0) 推荐(0) 编辑
摘要:题面传送门 对于这道题,我们有一个显而易见的结论:当两条线分别为x1x2y1y2时,且x1>y1&&x2<y2x1<y1&&x2>y2时这两条线相交 从这之中又可以推出一个定理:若我们按照左边的顺序依次选了k条线互不相交,其下标记为$s_1,s_2.... 阅读全文
posted @ 2020-03-18 15:36 275307894a 阅读(30) 评论(0) 推荐(0) 编辑
摘要:题面传送门 贪心一般和排序逃不开关系。这一道题目是普及组原题的弱化版。 首先我们列出答案的式子ans=(ai×) 乘法分配律,\(ans=\sum\limits_{i=1}^{n}{(a_i\times b_i+a_i\times 阅读全文
posted @ 2020-03-18 12:25 275307894a 阅读(61) 评论(0) 推荐(0) 编辑
摘要:题面传送门 算法简介:二分查找(答案),时间复杂度O(log2n).可以在一个有序表中快速查找某个数。可以利用这个性质来二分答案来做到快速有效枚举。 算法实现:对于一个有序表,二分查找一个数是否存在。 首先定义边界值:l=0,r=max(ai)+1;然后取中值$mid=\ 阅读全文
posted @ 2020-03-18 11:37 275307894a 阅读(54) 评论(0) 推荐(0) 编辑
摘要:今天的ACM模拟赛,最后一道题让我们抓耳挠腮了好长时间。这道题看似能贪心(50分),又好像能搜索(50分),其实就是dp,一道01背包的变体,问题中一个人要么到一边,要么到另一边。这不就是01背包嘛!不过还要控制人数。 下面有一个在ACM上过的,但是被民间数据hank掉的 阅读全文
posted @ 2020-03-18 11:22 275307894a 阅读(34) 评论(0) 推荐(0) 编辑
摘要:马拉车算法是一种计算最长回文子串的算法,以其优秀的线性复杂度闻名于世,相较于O(n2)dp算法和会被特殊数据卡到O(n2)的暴力算法,马拉车算法无疑是求解最长回文子串的最优选择。 最长回文子串分为偶数串和奇数串,为了避免这些问题,马拉车算法将每个字符与字符间插入一个特殊字符,在两头插入 阅读全文
posted @ 2020-03-18 11:16 275307894a 阅读(67) 评论(0) 推荐(0) 编辑
摘要:题面传送门 很明显,cf第一题的老套路:构造题,只可惜这道构造题不太好,连暴力都能A 我们来尝试构造一下,题目要求构造出xy使得lcm(xy)+gcd(x,y)=n,既然有了公约数,那我们就很容易往互质那方面想了,如果xy互质,那么原式变为1+xy=n,只要解这 阅读全文
posted @ 2020-03-17 13:47 275307894a 阅读(37) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题一眼就是排序,但O(nlog2n)的复杂度过不去(PS:但有人卡过去了),所以我们要换一个思路 事实上这道题我有一个奇葩想法,居然拓展出了图论模型...... 好吧,既然这样,我就来讲讲。 题目中要我们求最长连续数列,那么这个最长连续数列一定是一条链的关系:k扣着 阅读全文
posted @ 2020-03-17 12:39 275307894a 阅读(36) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题首先要有一个思维的转换:对于选择满足0i<n 的任意下标i ,并让a数组里下标为i处的值变为sum。把赋值的思维转化成选择一个下标,把除了这个下标的所有值加到它身上 这道题正着想很难想,俗话说得好,正难则反,所以我们不如倒着做 对于已经构造好的a 阅读全文
posted @ 2020-03-16 13:47 275307894a 阅读(56) 评论(0) 推荐(0) 编辑
摘要:题面传送门 其实个人感觉这道题如果能用莫队过评分偏高(如果您是主席树大佬当我没说) 这道题用莫队怎么过呢? 我们可以分析一下式子 我们以ai代表区间内颜色为i的袜子有几双,那么答案是$\dfrac{\sum\limits_{\dfrac{a_i*(a_i-1)}{2}}}{\dfrac{( 阅读全文
posted @ 2020-03-16 13:31 275307894a 阅读(41) 评论(0) 推荐(0) 编辑
摘要:作为一名从小学就开始为NOIP奋战的oier,看到这一段话时,老泪纵横 终于结束的起点 终于写下句点 终于我们告别 终于我们又回到原点 …… 一个个 OIer 的竞赛生涯总是从一场NOIP开始,大多也在一场NOIP中结束,好似一次次轮回在不断上演。 如果这次 NOIP 阅读全文
posted @ 2020-03-16 13:18 275307894a 阅读(136) 评论(0) 推荐(0) 编辑
摘要:题面传送门 看看像个图论,实际就是图论。仔细推几个样例就可以发现,这与奇偶数有关。而题目中又明显强调 1n 编号。某些工人之间存在双向的零件传送带。保证每两名工人之间最多只存在一条传送带。 于是我们可以用spfa求出点1到其他点的奇偶最短路,然后当xi想生产yi时,首先 阅读全文
posted @ 2020-03-16 13:12 275307894a 阅读(49) 评论(0) 推荐(0) 编辑
摘要:题面传送门 说实话,ccf又抄袭原题惹。而且居然是这道题的弱化版。不应该像是这样的原题的稍微弱化版吗? 言归正传,这道题看似像模拟。又可以爆搜,不过复杂度太高。也太难打,所以略微思考一下,打了一个五重循环的dp。看看太恶心,再加上样例也没过,于是就放下了。打了一个贪心保底: #include 阅读全文
posted @ 2020-03-16 13:07 275307894a 阅读(38) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题是一道简单的模拟......(xyh:what?)首先我们要感谢可爱的c++STL库,使得我们可以不用写循环队列。尽管这道题根本不用循环队列。我们开一个f数组来表示这个队列,其中这是个双端队列。当我们碰到一张transfer票时,我们就把他加入这个队列中,当我 阅读全文
posted @ 2020-03-16 12:58 275307894a 阅读(53) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题。。。。。。 对于20的数据,保证输入的字符全部为0。 我们可以正解骗分对不对?写一行putchar(0);就有二十分对不对?那那些爆零的同学。。。。。。看一下骗分导论 不过我相信,真正的大佬是不用上面的做法的。 其实,直接模拟呗。 先走一遍char数组,找到 阅读全文
posted @ 2020-03-16 12:56 275307894a 阅读(40) 评论(0) 推荐(0) 编辑
摘要:题面传送门 对于这道题,我们很容易想到一个办法:搜索!你试试看 可是看到对于所有数据 n4000000000应该就怂了。过不去! 细心观察 如果剪刀石头布三者都有,那么就会决不出胜负。 不不不不 还有一样我们没考虑 :每个人出的都一样! 那加个三不就好了! #include<bits/s 阅读全文
posted @ 2020-03-16 12:53 275307894a 阅读(49) 评论(0) 推荐(0) 编辑
摘要:我在考试的时候看到了这道题,在一瞬间就蒙逼了,这是什么题?(请原谅我250的智商)于是懵里懵懂的打了个d(电)f(风)s(扇),结果连样例都没有过。(毕竟才学搜索没多久嘛,也就两年)。再一看,看出了田忌赛马的味道,原来是这样!立刻打了个贪心信心满满的交上去。 #includ 阅读全文
posted @ 2020-03-15 13:19 275307894a 阅读(44) 评论(0) 推荐(0) 编辑
摘要:题面传送门 说实话,在做这道题的时候真的没想到dp(因为不怎么会),想到贪心,递推什么的。后来一看,O(vn)差不多的复杂度,于是写了个dp。打了个板子,额......,居然RE了!不知道是板子错了还是打挂了!考试时只得了70分。 #include<cstdio> using n 阅读全文
posted @ 2020-03-15 13:13 275307894a 阅读(53) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题真是个裸题呀,裸的floyd加一点点小优化居然还是绿题,真不知道×××是怎么想的。 上代码: #include<bits/stdc++.h>//头文件不解释(那前面的是什么?) using namespace std; int n,m,k,z[ 阅读全文
posted @ 2020-03-15 13:10 275307894a 阅读(68) 评论(0) 推荐(0) 编辑
摘要:题面传送门 其实这道题是贪心+模拟。 如果这道题连搜索都没过的,看看江风扬的题解吧。 好!开始进入正题。 先给你们一段代码: #include<cstdio> #define maxn 30 using namespace std; int n, a[maxn], ans = 2147483647, 阅读全文
posted @ 2020-03-15 13:03 275307894a 阅读(51) 评论(0) 推荐(0) 编辑
摘要:题面传送门 算法简介: 分块主要是一个修改,维护区间的东西,它可以做到一边修改一边查询,区间修改 O(sqrt(n)), 区间查询 O(sqrt(n)),单点修改O(1)\(\)O(1)。 算法实现: 初始化:首先要把基本数组(以下简称 a 数组,长度为$n 阅读全文
posted @ 2020-03-15 12:57 275307894a 阅读(53) 评论(0) 推荐(0) 编辑
摘要:题面传送门 看到这道题,暴力应该是很好打的,爆搜出放一件物品前要拿走多少,然后就记忆化出dp了:设fi,j为放到第i个物品,锅内加上当前还有j件物品的最大总和,那么状态转移方程应该是fi,j=max(fi,k+aij),其中k表示没有拿走<s件物品时 阅读全文
posted @ 2020-03-15 12:49 275307894a 阅读(86) 评论(0) 推荐(0) 编辑
摘要:题面传送门 首先,我们看到一个庞大的式子,好怕怕! 经rsjdalao解读,这就是所选的点权加上两个点都是自己的点围成的边的边权。 那么不就好做了,贪心!能拿点权大的点就拿大的点! 代码实现: #include<cstdio> #include<vector> #include<algorith 阅读全文
posted @ 2020-03-14 21:27 275307894a 阅读(52) 评论(0) 推荐(0) 编辑
摘要:算法简介:RMQ是一个经典的动态规划问题,是可以O(1)时间求静态区间最大值的东西, 不过需要O(nlog2n)的预处理 算法实现:我们定义fi,j表示以i为起点,向后2j个数中最大值。两重循环,一重枚举i,一重枚举j那么可以得到状态转移方程:$f_{i,j}= 阅读全文
posted @ 2020-03-14 21:16 275307894a 阅读(57) 评论(0) 推荐(0) 编辑
摘要:第一次在家里打大型正规比赛(codeforces除外),慌得一批,看着家里的xp系统......八点半开赛,结果ccf的阿里云卡崩了,等到九点钟才进去。第一题:这不是codeforces的原题改编吗,我刚做过这类的题目,啊等等,好像不太一样......跳了第二题:大模拟啊,$O(n^ 阅读全文
posted @ 2020-03-14 21:09 275307894a 阅读(73) 评论(0) 推荐(0) 编辑
摘要:题面传送门 莫队,由原国家集训队队员莫涛同学提出的一种优雅的暴力,在分块的基础上以O()的均摊复杂度维护大量的区间信息(这里的大量,意为每个节点有很多信息,并非多次询问)。因其思路清晰,代码简单,变化多样,维护区间信息多样化,成为数据结构题的骗分神器,也成为了各大数据结构比赛的一大考点 阅读全文
posted @ 2020-03-14 21:02 275307894a 阅读(47) 评论(0) 推荐(0) 编辑
摘要:题面传送门 HAOI的题目好水(nan)啊...... 也许一眼就是个线段树吧......反正我一眼没看出来。 第一眼暴模,第二眼差分,第三眼才线段树,也许是我太菜了吧。 线段树倒不错,可是数据有点大,10N10000000呢,线段树四个数组,每个n<<2范围 阅读全文
posted @ 2020-03-14 20:10 275307894a 阅读(34) 评论(0) 推荐(0) 编辑
摘要:题面传送门 很容易看出这是一道线性规划(虽然感觉本质上线性规划不应该单独被列出来) 数据范围提示我们,这道题要用O(nv)的算法 而状态转移是很容易发现要两个状态:当前所在的点(这是一般线性规划的套路)和这个等差数列的公差然后就可以很容易地得到单调不递减的等差数列的状态转移方程:\(f_{i,j 阅读全文
posted @ 2020-03-14 20:06 275307894a 阅读(54) 评论(0) 推荐(0) 编辑
摘要:题面传送门 算法简介:树状数组是一颗类似于树的数组,他虽然画出来是一棵树,但在实现中还是一个数组,它可以维护具有传递性质的信息,比如区间和,区间乘积等。他可以查询1i的信息。他支持单点修改,单点查询与区间查询,区间修改较为繁琐,需要用到差分数组,他的复杂度是查询o(log2n),修改$o( 阅读全文
posted @ 2020-03-14 14:20 275307894a 阅读(62) 评论(0) 推荐(0) 编辑
摘要:题面传送门 线段树每个根节点管理下面的两个叶子节点,线段树的每一个节点都分管区间,其中若根节点分管区间是xy,那么左儿子区间为x(x+y)>>1,右儿子分管区间是((x+y)>>1)+1,y. 我们定义f数组,以fx表示x这个节点所管理的区间统一 阅读全文
posted @ 2020-03-14 14:12 275307894a 阅读(67) 评论(0) 推荐(0) 编辑
摘要:题面传送门 不想另外写hash题解了,就拿这一篇的解题报告代替吧。 哈希(顾名思义),是由英文hash音译过来的,主要用途是将数值很大的数存下来并在调用时实现数组下标查询,一般用一个哈希函数来实现,主要方法有运算。 哈希冲突:定义xyhash(x)=hash(y)阅读全文
posted @ 2020-03-14 14:05 275307894a 阅读(61) 评论(0) 推荐(0) 编辑
摘要:题面传送门 题解:逐个分析。 对于ans=11ans\(,\)分类讨论。 对于,answer=11ans 对于,answer=ans1ans 对于,\(answer=ans 阅读全文
posted @ 2020-03-14 13:56 275307894a 阅读(57) 评论(0) 推荐(0) 编辑
摘要:题面传送门 对于这道题,其实题目很简单,暴力很好打。 想法1:对于每组输入数据,暴力判断两重循环枚举,一重循环计算组合数。时间复杂度Otn3,大概30分 想法2:把每组数的组合存下来,直接调用。时间复杂度Otn2大概35分。 想法3:既然直接算组合数会爆精度,那么 阅读全文
posted @ 2020-03-14 13:08 275307894a 阅读(58) 评论(0) 推荐(0) 编辑
摘要:题面传送门 首先明确,这是一道差分裸题,不要被它的蓝标签吓到。 算法简介:差分是一种和前缀和类似的数据结构,毕竟在差分过程中要进行前缀和,所以前缀和是差分的基础。差分能做到O(1)修改,但要O(n)查询,适用范围不如前缀和。差分适合查询极少,修改大大多于查询的题目。 算法实现: 首先我们定义 阅读全文
posted @ 2020-03-14 12:28 275307894a 阅读(100) 评论(0) 推荐(0) 编辑
摘要:题面传送门 算法简介:前缀和是一种十分基础的数据结构,它与树状数组功能类似,可以维护可以区间相减的信息。预处理O(n),并能做到查询复杂度O(1)。不支持修改,若修改须重构整个前缀和数组。 算法实现:我们需要一个前缀和数组s与基本数组a,定义si\sum\limits_^ 阅读全文
posted @ 2020-03-14 11:02 275307894a 阅读(57) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题可真是一道模拟题。按照题目思路稍微做一点改动再用一个简单的数据结构优化就可以过了。。。。。。真的发现考试时脑抽了,居然连暴力都没打出来,只拿了十分。 暴力代码: #include<cstdio> #include<algorithm> #define max(a,b) ((a)>( 阅读全文
posted @ 2020-03-14 10:50 275307894a 阅读(57) 评论(0) 推荐(0) 编辑
摘要:题面传送门 又是一道堆的题aaaaa。最近几天快被数据结构逼疯了。 首先我们有一个定理:i<j,ak+biak+bj 解法一: 我们先来看一份wsj的暴力代码: #include<cstdio> #include<algorithm> using namespace 阅读全文
posted @ 2020-03-14 10:45 275307894a 阅读(45) 评论(0) 推荐(0) 编辑
摘要:题面传送门 我们尝试着对题目进行转化 原式:m!+30(i=1n1(i4+4i3+62+4i+1)+1) 拆成两部分:m!30((i4+4i3+62+4i+1)+1) 先看m!。不要以为$30000000 阅读全文
posted @ 2020-03-14 10:32 275307894a 阅读(49) 评论(0) 推荐(0) 编辑
摘要:题目传送门 //为啥题目名称叫最小环但题目要求最大环啊!! 作为一个在考场上差一点切掉这道题的蒟蒻,我还是来发个题解说一下 这道题考的东西还是蛮多的,有思维,前缀和,数论,找规律 暴力很好打,有20分,爆搜即可 然后思考正解,对于一个k,我们讲每个a_a_{(i-k+n)%n}建边 阅读全文
posted @ 2020-03-14 10:14 275307894a 阅读(49) 评论(0) 推荐(0) 编辑
摘要:题面传送门 对于这道题,简单粗暴的dp是不难想的,dp方程式为f_i=max(f_+\sum_^ia_s),其中max(ik,0)ji1,然后就有了70分 代码实现: #include<cstdio> #define max(a,b) ((a)>(b)?( 阅读全文
posted @ 2020-03-14 10:11 275307894a 阅读(54) 评论(0) 推荐(0) 编辑

浏览器标题切换
浏览器标题切换end
点击右上角即可分享
微信分享提示