摘要: 传送门 解题思路 因为是求区间的不同种类数,所以我们用树状数组(貌似并没有什么直接联系) (...表示到) 还是和原来一样,用s[i]来表示a[i-lowbit(i)]...a[i]的种类数。 因为有一个类似于去重的操作,所以就有一个数组记录一下is[i]表示编号为i的贝壳上一次出现的地方,每一次更 阅读全文
posted @ 2019-07-01 23:01 尹昱钦 阅读(201) 评论(0) 推荐(1) 编辑
摘要: c/c++中获取字符串长度。有以下函数:size()、sizeof() 、strlen()、str.length();一、数组或字符串的长度:sizeof()、strlen()1、sizeof():返回所占总空间的字节数(1)、对于整型字符型数组(2)、对于整型或字符型指针2、strlen():返回 阅读全文
posted @ 2019-06-29 22:48 尹昱钦 阅读(1102) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-06-29 10:57 尹昱钦 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 【update】2019/6/22 满血复活!!qwq 今天是博客挂掉第十三天,昨天—— 管理员大人回信了!! 终于帮我找回来了设置!! 感谢管理员大人!! 博客园挂掉的十二天我会铭记在心!! 【update】2019/6/14 纪念博客挂掉第五天!! 据说前几天管理员就给我回信了,说 “这个恢复很 阅读全文
posted @ 2019-06-09 21:28 尹昱钦 阅读(146) 评论(2) 推荐(1) 编辑
摘要: 题目链接 https://www.luogu.org/problemnew/show/P1589 解题思路 用结构体存下每一段泥泞路的左端点和右端点,然后用sort根据左端点排序,采用贪心的思想,从左往右遇到未覆盖的点ans++,然后去覆盖l的长度,这时现在覆盖到的位置就是max(下一段区间的左端点 阅读全文
posted @ 2019-06-07 02:49 尹昱钦 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 题目链接 https://www.luogu.org/problemnew/show/P3368 树状数组 最基础的用法:https://www.cnblogs.com/yinyuqin/p/10961243.html 在这里实现的是区间加,单点查询。 一说到区间加,我们就会想到差分序列,关于差分序 阅读全文
posted @ 2019-06-01 23:12 尹昱钦 阅读(186) 评论(2) 推荐(0) 编辑
摘要: 前缀和序列 所谓前缀和数组,就是从第一个元素到当前元素的和。假设这个前缀和数组为d[],原数组为a[],那么d[ i ] = a[ 1 ]+a[ 2 ]+a[ 3 ]+...+a[ i-1 ]+a[ i ]。在实际应用中,可以直接d[ i ]=d[ i-1 ]+a[ i ]。 它主要用于查询一段区间 阅读全文
posted @ 2019-06-01 22:49 尹昱钦 阅读(966) 评论(0) 推荐(0) 编辑
摘要: 题目链接 https://www.luogu.org/problemnew/show/P3374 树状数组 树状数组最基本的就是求区间和。 维护: 空间复杂度:O(n) 时间复杂度(区间和,单点修改): 修改:O(logn) 查询:O(logn) 用c[i]表示(i-lowbit[i]+1,i)区间 阅读全文
posted @ 2019-06-01 22:18 尹昱钦 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 【 2019/5/31】 在这五月的最后一天,我入了坑——参加这次青岛市的比赛。 先是登上洛谷,打了个卡,中平——忌:重构代码——心中不安。。。 早上十点就去了食堂——sbl(带队老师)没钱了,不请客…… 路上的司机态度真是不好啊QWQ,说个话也不能。。。 做了几个小时的车,终于到了(有点恶心)。 阅读全文
posted @ 2019-05-31 20:35 尹昱钦 阅读(394) 评论(0) 推荐(1) 编辑
摘要: 原理 0x的意思其实是十六进制,后面加的数其实就是一个十六进制数。 在十六进制中,我们知道a代表10,b代表11,c代表12,d代表13,e代表14,f代表15。 所以3f3f3f3f这个数用十进制数表示其实就是1061109567,是int中的一个比较大的数。而且在程序中,经常要相加,而这个数*2 阅读全文
posted @ 2019-05-25 23:14 尹昱钦 阅读(1231) 评论(0) 推荐(1) 编辑
摘要: 初始化数组可不必使用n重for循环。 原理 memset具有初始化数组的功能,能够初始化数组中的每一个值。 它是将数组中的每一个数的二进制的每一个字节初始化的。 比如初始化int类型的a数组:memset(a,1,sizeof(a)); 得到的其实是0001 0001 0001 0001。 关于0x 阅读全文
posted @ 2019-05-25 23:07 尹昱钦 阅读(3138) 评论(1) 推荐(0) 编辑
摘要: 题目 给定n个点的带权有向图,求从1到n的路径中边权之和最小的路径。 dijkstra实现方法 用dist[i]表示i这个点到原点的最短距离,一开始初始化为无穷大,然后将原点设为0。 用ok[i]表示i这个点是否已经确定了最短路,一开始将原点设为已经找到。 然后每一次枚举每一个点,找到与原点最近且没 阅读全文
posted @ 2019-05-24 21:30 尹昱钦 阅读(198) 评论(0) 推荐(1) 编辑
摘要: 题目链接 https://www.luogu.org/problemnew/show/P1339 最短路 解题思路 dijkstra直接过 注意: 双向边 memset ma数组要在读入之前 AC代码 阅读全文
posted @ 2019-05-24 20:57 尹昱钦 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 题目链接 https://www.luogu.org/problemnew/show/P3388 模板题 解题思路 什么是割点? 怎样求割点? dfn :即时间戳,一张图的dfs序(dfs遍历时出现的顺序) 树边:连向孩子的边 反向边:连向祖先的边 low :即一个点能到达的时间戳最小的边(反向边只 阅读全文
posted @ 2019-05-24 19:59 尹昱钦 阅读(418) 评论(0) 推荐(2) 编辑
摘要: 题目链接 https://www.luogu.org/problemnew/show/P1025 解题思路 一道简单的dfs题,但是需要剪枝,否则会TLE。 我们用dfs(a,u,num)来表示上一个数为a,已经搜索完了a个数,现在的和是num。 1 #include<iostream> 2 usi 阅读全文
posted @ 2019-05-17 20:59 尹昱钦 阅读(387) 评论(0) 推荐(1) 编辑