摘要: 今天打了快速排序,补自己以前又黑又大的黑锅。复杂度:nlogn。 按照从小到大排序来看: 理解:mid没经过一次分治之后左边一定是比当前的数字小,而mid的右边一定比当前数字大。 那也就是说每次分出的区间l到end一定比mid要大和start到r一定比mid要小。 经过不断的分治最后分成两个数字之后 阅读全文
posted @ 2018-11-18 21:48 chdy 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 判断质数的方法有很多,首先是最简单的试除法,判断n以内的质数的话时间复杂度为n*sqrt(n)当然是很慢的了 下面提供三种判断质数的方法: 首先是跑5051ms的这个是埃拉托斯特尼筛法 且不加优化 核心质数的倍数一定不是质数 从当前质数的1倍筛到n/i倍即可。 然后第二种是其优化算法 也是竞赛之中使 阅读全文
posted @ 2018-11-18 15:48 chdy 阅读(592) 评论(0) 推荐(0) 编辑
摘要: 1.建图并求解 2.x>y > x>=y+1 表示从y到x连一条边 边权为1 3.x<y > y>x > y>=x+1 表示从x到y连一条边 边权为1 输出 2 代码: #include<iostream> #include<cstdio> #include<cstring> #include<ct 阅读全文
posted @ 2018-10-29 13:04 chdy 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 今天dp发现一道背包方案数的题,先是看错题目(丢人),然后是循环不会搞(丢人)。 首先是本人看错题想出来的变式:求能拼成的方案总数这个的话既不是完全背包也不是普通的01背包,所以考虑按照01背包的方案数来求解。 设f[i]表示当前的价值能否拼出,f[0]=1;f[i] | =f[i-a[j]];这个 阅读全文
posted @ 2018-10-23 22:09 chdy 阅读(538) 评论(0) 推荐(0) 编辑
摘要: 前缀和这种小技巧noip很容易就考到了,例如11年的聪明的质监员这道题二分但是用到了前缀和优化。前缀和可以优化一下时间复杂度。 首先是一维的前缀和,a[i]+=a[i-1];这样很简单使用的时候只要直接a[r]-a[l-1]就可以吧r到l直接的累加全部搞出来优化一重循环0.0; 下面是10.21考的 阅读全文
posted @ 2018-10-22 20:11 chdy 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 学习了树状数组就有了树状数组的应用,求逆序对。 下面是oj超车代码: #include<bits/stdc++.h> #include<iomanip> #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> # 阅读全文
posted @ 2018-10-17 21:54 chdy 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 提到二进制,莫过于二进制的运算或者应用,立一个flag总结知道的所有二进制知识,二进制位第一位为第0位! 注:在oi之中所有的log运算都是以2为底的! 二进制运算符:y<<x,左移,y的二进制数左移x位,相当于y乘以2的x次方,eg:4<<2=16; y>>x,右移,y的二进制数右移x位,相当于y 阅读全文
posted @ 2018-10-17 09:56 chdy 阅读(1604) 评论(0) 推荐(0) 编辑
摘要: 康神是谁,那是相当的强,亲自给我讲这道金明的预算方案。看不懂书上代码的情况之下,正解:树形dp~不会。 康神把书上的思路给我讲了一遍。 于是知道了这道题要先拿主件01背包,再对附件做一个01背包,使每次拿附件的同时都跟上一个附件的价值,进行01背包,注意这个地方要开一个临时的数组a,a这里要考虑对f 阅读全文
posted @ 2018-10-16 17:05 chdy 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 这道题第一问是每一发导弹不能高于前一发的高度很显然是一个最长不上升子序列既然是不上升那就是下降和相等了,由于数据是1e5,双重循环铁定超时,所以考虑一下优化,那就二分来进行查找。这里的查找又让我迷了几个小时,明明很简单却很迷。 这道题没有导弹的数量所以考虑输入问题,学长给的输入。 int top1= 阅读全文
posted @ 2018-10-12 16:33 chdy 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 有些背包都是需要求方案具体是什么的,于是问问dalao,有道01背包求方案数的题,卡了好久。 求背包的方案数,这个问题就很好了,我不会qwq。 搞了半天是先存方案于是在背包更新的时候就存下方案吧,发现存不了因为状态在不停的被更新于是采取一种方法。 找到输入的时候先从n到1输入,背包的时候从1开始这样 阅读全文
posted @ 2018-10-11 21:22 chdy 阅读(345) 评论(0) 推荐(0) 编辑