- 博客(171)
- 收藏
- 关注
原创 APUE笔记(1):配置APUE环境
本人用的是CentOS6.5版本的linux写这个环境配置是因为自己这一天被这个环境配置给搞的很难受首先,我们在linux下找一个文件夹,存放APUE3的包:cd /home/srcwgethttp://www.apuebook.com/src.3e.tar.gz然后解压tar -zxv -f src.3e.tar.gz进入apue.3e文件夹cd /home/...
2019-04-12 17:53:48 548
原创 个人对指针的一些理解
#include<stdio.h>int main(){ int a = 10; int *p = &a; int **pp = &p; int ***ppp=&pp; printf("地址:&a=%d &p=%d &
2019-01-29 12:22:04 297
原创 codeforces 523D 优先队列
题意: 给你N个任务单和k个机器,每个任务单有两个变量开始的时间,完成所需要的时间,问你最优去做的话,每个订单的结束时间是?题解: 题目保证了数据是递增排序的,那么我们就不用sort了,直接做。然后这里有个小套路:因为题目可以有k个机器,那我们可以先用k个0进去一个优先队列以达到模拟k个优先队列的作用,然后计算他们的完成时间,再放回去优先队列。这道题就做完...
2018-08-22 10:21:32 340
原创 HDU6395 Sequence 矩阵快速幂+整除分块
题意: 给你式子,让你求F[n]是多少,一看就知道要用到矩阵快速幂,但是这道题恶心就在于p/n这个东西,是动态变化的,不是一个常数,但是我们可以想办法令他变成常数,怎么搞呢?用到一个叫整除分块的小玩意来搞这个,可以达到根号n复杂度。然后相同p/n的区间就作为一个常数去搞就可以了,还有一点应该注意的就是p/(p/l)有可能比n还要大,导致出现错误,所以要写成r=min(n,p/(...
2018-08-15 10:13:51 456
原创 2018多校第五场1002 Beautiful Now
题意: 给你一个n和k,表示n内的数字可以交换k次,然后让你找到他的最小和最大值输出。题解: BFS暴搜就好了,但是要处理一下剪枝,不然会超时或者超内存(我也不知道为什么会出现超内存的。。),代码写的丑。。请laoda们别吐槽。。。#include<stdio.h>#include<math.h>#include<stri...
2018-08-08 09:46:54 248
原创 zoj3954 模拟题
题意: 给你t组数据,n组7段显示器的代码,问你能不能通过标准码转换成这n组7段显示器的代码。题解: 直接模拟就行了。#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>using namespace std;const int MAXN=1...
2018-06-19 18:59:04 306
原创 Codeforces-959D Mahmoud and Ehab and another array construction task 素数筛+质因数分解
题意: 给一个数组a,求大于或者等于数组a的字典序的数组b,其中b满足数组内任意数互质,bi>=2。并且是所有满足条件中的字典序最小的一个。题解: 这道构造题首先要考虑的就是如果a数组内的数互质的话,就不需要构造出b数组,直接输出a数组就可以了。那么我们怎么判断整个数组内的数是否互质呢?不能单单的左右判断就完事(意思就是假如,2,3,4判断是否互质,2和3不互质,3和4...
2018-06-14 20:14:59 274
原创 HDU4825 01字典树模板题
题解: 第一次知道字典树还能这样用,果然还是做题太少了。。ORZ,感觉很多异或的题都可以用字典树去解决#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int MAXN=100000+7;struct node{ int next[2...
2018-06-02 20:31:08 387
原创 HDU6059 01字典树
题解: 参考大佬的思路和代码,悟出一些自己不懂的东西。 很多异或题都有可能用到01字典树,因为它的时间复杂度为O(nlogAi). 我们先了解一下数组,比如用cnt[30][2]来表示已插入字典树中的数字中每一位的0/1有多少个,num[]数组表示的是第k个数的每一位。 我们先将a[]数组里的数逐个变成二进制倒放进去字典树中并遍历a[k],从高位到低位查找字典树里面第一个与a[k]的第x位...
2018-06-02 20:01:21 302
原创 HDU 5316 区间合并
题意: 给你n个数字的序列,有两种操作。第一种操作是修改某个位置的值,第二种操作是询问l,r内美丽子序列的最大和。所谓美丽子序列,就是指按顺序选出一些数,这些数中任意相邻的两个数的原位置编号必须满足奇偶相间(即一奇一偶)。题解: 这道题要用到线段树的区间合并,修改操作简单,难的是怎么区间合并,我们可以设置四个变量,oo,jj,oj,jo,分别是以偶数下标开始偶数下标结束,以奇数...
2018-05-28 20:59:11 267
原创 HDU6103 尺取法
题意:给出字符串s,寻找其两个长度相同且不重叠的子串,满足两个子串上每位的ascil差的绝对值之和不大于m,且长度最长。题解: 感觉自己是真的可以坐嘴炮选手了。。就算知道这是尺取法也只能嘴炮了,写法是参照小泽的代码写的。 我们枚举中点,然后再跑尺取法,那么复杂度就是O(n^2)了,有两个点,第一个是怎么写尺取法,这个看代码就好了,第二个就是不能重叠,所以就会出现aba,结果长度为1,而...
2018-05-23 20:15:11 230
原创 Educational Codeforces Round 43 (Rated for Div. 2) A-C题
A题: 判断是否有1就好了有1就输出1,然后输出有多少个0.#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int main(){ int n; char s[105]; while(~scanf("%d",&n)) { scanf(
2018-05-01 08:56:03 222
原创 小Z的袜子 莫队算法模板
题解: 这道题是莫队算法入门题之一,根据组合公式和每次都是只拿2个可知Cn2那么我们化简可以得到Cn2=n*(n-1)/2,那么我们可以在每次修改的时候减去之前的影响,再加上现在的影响就可以得到答案了,具体怎么写,看我代码吧,还有就是这道题要开LL,不然会教你做人。。。 题外话: 这道题别人轻易就过了,而我跳了很多坑。。。因为自己有点懒所以在关于l分块的写法上跟网上的有点不同,
2018-04-13 19:10:13 260
原创 codeforces 86D Powerful array 莫队算法
题意: 给你n个数字,m个区间,要你算出每个区间内si*Ksi*ksi总和。 题解: 莫队算法模板题,每移动一次的时候减去之前的影响再加上现在的影响就可以了,具体看代码。#include<stdio.h> #include<string.h>#include<math.h>#include<algorithm>using namespace std;#define L
2018-04-12 18:50:03 199
原创 ZOJ 4016 Mergeable Stack 链表
题解: 题目说起来是栈的样子,然而是模拟链表的做法,这道题可以用STL的list(这个是我在比赛之后学的。。蛋疼,手撸又撸不出来),也可以像我朋友一样C语言手撸出来个链表:https://www.cnblogs.com/jaydenouyang/p/8747352.html ORZ。#include<stdio.h>#include<string.h>#include<algorit
2018-04-11 13:06:29 270
原创 Wannafly 模拟赛A Laptop 树状数组
题解: 树状数组+二维偏序。要同时满足i.a>j.a,i.b>j.b才算完虐,然后这道题不想求逆序数那样可以求出多对逆序,这道题只能求出多少个被完虐。所以我们排完第一个序列之后就给编号,然后排序第二个序列,再离散化,然后就进入像计算逆序数那样计算了,但是这里有点不同,因为是要同时满足i.a>j.a,i.b>j.b才算完虐,所以我们从后面开始算,并且如果满足放进去的个数-getsum(e[i
2018-04-04 21:09:17 202
原创 POJ2299 离散化+树状数组求逆序数
题意: 要你求逆序数。 题解: 因为999,999,999比500,000要大,树状数组开不了,所以我们要进行离散化操作,然后再用树状数组就可以算出结果了。 这个博客描述的很详细: https://blog.csdn.net/guhaiteng/article/details/52138756 我是看这篇博客树状数组入门的: https://zm12.sm-tc.cn/
2018-04-04 19:17:40 252
原创 HDU 1394 树状数组求逆序数
题意: 给你n个数,每次将其第一个元素放后面,要你算出这期间所产生的最小逆序数。 题解: 首先用树状数组求出原序列所产生的逆序数,然后根据性质算出公式sum+=(n-a[i]-1)-a[i];具体结合代码更好理解。#include<stdio.h>#include<string.h>#include<algorithm> using namespace std;cons
2018-04-04 19:09:32 326
原创 HDU3626 水题
题意: 给你n对数x,y,要你输出比第i对数小的x,y,如果有相同的x就输出最小的y。 题解: 1000个数据直接暴力,只是这PE的方式让人恶心,放在上面过了,下面PE到死。#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define INF 0x3f3f3f3fco
2018-03-29 20:16:37 244
原创 HDU3625 第一类斯特林数
一开始看到这道题我以为是要用排列组合的做法去做,可是想着想着发现不对劲,然后我又又又学到一个新的东西:第一类斯特林数。 下面是两个我学第一类斯特林数的博客: https://www.cnblogs.com/nanke/archive/2011/09/07/2170290.html https://blog.csdn.net/liusuangeng/article/details/4345611
2018-03-28 20:13:38 259
原创 CodeForces - 820D 思维好题
感谢Joovodalao的解释,让我理解了一下这道题的p数组更新。 题意: 给你n个数,每次可以向前移动一次数组,就相当于1,2,3,4,5 移动一次变成5,1,2,3,4一样,现在要你算出1到n的a[i]-i的最小和。 题解: 我要说的基本在我的代码里了,详细的请边看代码边看注释,这是一道非常不错的题目,这道题的关键是数组p[i]表示的是有多少个数需要向右边移动i步到达目
2018-03-14 18:17:37 878
原创 HDU5923 东北赛B题 并查集
题意:题解: 这道题我一开始就用并查集和dfs去做,发现超时了,就我那渣渣的优化水平,怎么都优化不了,所以去看了别人的博客,发现还可以这样做。。听说是用到了可持续化的思想…这玩意不太懂啊,ORZ。。。 做法就是将每个点到根节点的链路上的并查集关系存储起来,然后再在询问的时候将k个并查集关系合并起来,这样就不用每次询问一个数的时候都并查集一次,从而达到优化。 至于怎么看,请看我的...
2018-03-13 21:39:31 230
原创 CF421 820B 几何
题意: 给你个n正多边形,要你求一个接近k的角度。 题外话: 一开始的思路只是想到固定一个点,或者两个点,再去找其他点,后面的没想出来,也感觉到了自己深受百度而变得不爱想的毒害,只能怪自己,这道题的思路还是小泽告诉我的。 题解: 先用公式(n-2)*180.0/n算出正多边形的内角是多少,再算出内角最多可以划分成多少份,最多可以划分成n-2份,然后再固定两个点:1...
2018-03-07 18:57:09 192
原创 CF 420 821B Okabe and Banana Trees
题解: 这道题我看的是别人的解释, https://www.cnblogs.com/shingen/p/7105280.html#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define LL long longint main(){ LL m,b;
2018-03-05 22:10:07 274
原创 CF420 div2 821C Okabe and Boxes
题意: 给你2*n个操作,分别是在栈顶部加一个数,删除栈顶的一个数,删除的顺序是1到n,你可以在任何一次操作后对栈中序列进行重排,问你最小需要多少次重排。 题解: 扯一下犊子,看到这玩意一下子想到栈,但是我想用两个变量去做,结果发现失败了。。。回到了栈发现是真的简单,MD。。还有就是不会发生以下情况,4,2,1,删除三次,导致出现124这种不对的情况,题目的数据是不会出现这种
2018-03-05 21:18:29 275
原创 CF420 div2 821A Okabe and Future Gadget Laboratory
题意: 给你一个n*n矩阵,要你判断不是1的数能不能有同一行 + 同一列的一个数得到。 题解: A题很简单,暴力就可以过了。#include<stdio.h> #include<string.h>#include<algorithm>using namespace std;int n,m;int a[55][55];bool check(int x,int y){
2018-03-05 21:05:48 278
原创 春节回来发一下牢骚,开始战斗!
回家过来一趟春节,回来之后啥都忘记了,果然ACM这玩意拼的是平时积累,一旦松懈就没救了。回来之后我也下定决心了,争取每天一套CF,哪怕是百度的都的弄懂,不希望一天天就这样过去了,结果回首啥都不会。好了,不说了,我收拾一下就要战斗了!!
2018-03-05 21:01:36 224
原创 HDU1950 LIS二分模板题
题解: 今天学了个时间复杂度为O(nlogn)的LIS模板,听说这道题就是个模板题我就去做,然后过了。 下面是我学的博客: http://blog.csdn.net/shuangde800/article/details/7474903 http://blog.csdn.net/zhangyx_xyz/article/details/50949957
2018-01-31 16:46:25 366
原创 kuangbin专题十六 FZU1901 考察next数组的理解
题意: 读题读了半天,还是没弄懂题意,终于在看到多个博客之后终于明白了这破题意。。ORZ,它的意思就是字面意思,但是我不理解啊卧槽!! 应该是出输出满足S[i]==S[i+p](i+p不能超过len,i可以取不使(i+p)超过len的值)的p。 题解: 看了三位dalao的博客做出来的,实际上相当于没做….. http://blog.csdn.net/che
2018-01-31 16:40:37 330
原创 kuangbin专题十二 HDU1257 LST 最长上升子序列模板题
题意: 中文题。 题解: 其实就是个最长上升子序列模板题。下面是两种写法,等会去想一下贪心怎么做的,和O(nlogn)的写法。 这个O(n^2)的写法给你们解释一下: 第一种是人人为我的思路 (j帮助i)。就是确定子序列终点,把其前面每一个小于它的值的位置的状态数组用来更新它本身。 而第二种是我为人人的思路(就是i帮助j) 。就是确定子序列起点,把
2018-01-30 18:21:34 393
原创 kuangbin专题十二 DP专题 HDU1024 最大m子序列和
题意: 给你n个数,然后让你在里面找到m个子序列,让这m个子序列的和最大。其中可以不要一些数,但是这些子序列里面的数必须是连续的。 题解: 这道题是我做kuangbin大神的专题的第一道题,当然就被吓到不敢去做,今天用了快一天的时间把这道题给理解了,以下是我看的博客: http://blog.sina.com.cn/s/blog_677a3eb30100jxqa.ht
2018-01-29 18:56:57 368
原创 kuangbin专题十七 ZOJ3228 AC自动机不可重叠计算
题意: 给你一个长串和n个短串,两种询问,可以覆盖(0)或者不可以覆盖(1) ,问出现次数。比如ababa 如果可以覆盖的话 aba出现次数是2 不可以覆盖的话出现次数是1 。 题解: 感恩我做了这道题,让我知道我以前的模板有点问题,ORZ,0的时候的话就是个AC自动机的模板,难就难在1的询问,1的询问的话就用一个变量在存放第一次出现这个短的串是在长串的什么位置,下次再出现
2018-01-27 19:57:36 369
原创 kuangbin专题十七 HDU2243 (经典好题) AC自动机+矩阵快速幂
题意:题解: 这道题跟POJ2278相似,POJ2278求的是不包含,这道题求的是包含,那么我们就算出总和减去不包含的数量就可以得出包含的数量了。思路是从博客上学到的,但是laoda的代码,可能是我太垃圾了,看着不太理解的了,所以还是自己折腾弄了一下午,终于弄出来了,折腾一下午的原因是flag和fail看错。 。。MD。。 以下是给我思路和公式的博客: http://w
2018-01-26 16:05:37 335
原创 kuangbin 专题十七 POJ2778(经典好题) AC自动机+矩阵快速幂
题意: 给出患病的DNA序列,问序列长度为n的,且不包含患病的DNA序列有多少种。 题解: 这道题我是看别人做出来的,怎么说呢,开拓了视野,也让我知道AC自动还能这样操作,也让我更深入了解了矩阵的强大。 比如A(i,j)表示的是i->j,如果A*A表示的就是i到j要走两步。具体怎么回事可以看看这位博主: http://blog.csdn.net/wt_cnyali/art
2018-01-26 10:52:20 583
原创 kuangbin专题十七 HDU3065 AC自动机
题意: 中文题。 题解: AC模板题,这道模板题在里面加个数组ans表示病毒的数量就可以了。 题外话: 这道题让我发现了我还是未能很好的理解AC自动机里的fail指针的指向,起初我看到会出现重叠的,我就想着像KMP重叠那样做,匹配到了就指向该节点的失配指针所指向的地方,然后就不断的指向自身,导致爆炸了。。这句话说的有点不对,怎么说呢,我找了挺多的博客的,感觉这位大
2018-01-25 16:55:30 443
原创 kuangbin专题十七 HDU2896 病毒侵袭(AC自动机模板题)
题意: 中文题。 题解: 这道题有点狗血的就是它的特征码不单单是小写字母。。。所以要写成128,囊括所有的ASCII码才行。。 因为它要你计算多个网站分别中了几个病毒,那么我们可以在模板上加个vis数组表示的是该病毒是否已经出现过了,出现过的话就不用再加上去了。#include#include#include#includeusing namespa
2018-01-25 15:53:01 382 1
原创 kuangbin专题十七 HDU2222 AC自动机模板题
题解: AC自动机模板题,下面是我学习的两个博客: http://blog.csdn.net/creatorx/article/details/71100840 http://blog.csdn.net/niushuai666/article/details/7002823#reply 在学习AC自动机之前最好先学习一下字典树和KMP,前者用来搭建AC自动机的
2018-01-25 14:55:15 297
原创 HDU1075 不错的字典树题
题意: 给你多条英语对应火星文,然后在下面输入一堆火星文,要你翻译成英文,如果一些火星文没有对应的英文的话就输出原火星文就可以了,有就输出英文。 题解: 一看到这道题就想到了map容器,奈何挺久没用过了,导致我很难下手,还是去看了别人怎么写的记忆才慢慢复苏,怎么说呢,STL是个神器,但是我用不习惯。。。ORZ,既然这道题是一道字典树的题目的话,咱们就用字典树的做法去做吧。
2018-01-24 18:46:51 269
原创 回望过去,感觉现在的自己十分功利
在学校也学了快大半个月了,连续的学习让我感觉自己自身的知识量飞速(对比自己以前两个星期一个算法,现在三天就一个,甚至更快)在增长,可是我莫名有种自己曾经为之自豪的东西丢了,是什么呢?说不出来,但是今天我好像知道了,那就是那种‘卡’题的毅力,我说的卡题不是那种啥都想不出来,而是自己有点想法却觉得很麻烦而放弃却做的心态,我也不知道为什么,感觉自己越来越功利了,当年从一个宁死不百度,就是头铁想自己想出来的
2018-01-24 15:08:12 326
原创 HDU1298 非常好的题 字典树+DFS
题意: 模拟手机打字的猜想功能,根据概率,每按一个按键,输出可能性最高的串。先给定N个单词,以及频率,就是每个单词中字母的频率,比如:“hell,3”和“hello ,4”,则前缀相同时,h的频率为4+3=7。 题解: https://www.cnblogs.com/A-way/archive/2012/11/22/2783176.html 这是我这道题看的博客。
2018-01-24 14:39:42 478
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人