rainyroad

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2019年2月19日

摘要: 发现现在的博客都是相互抄啊,也看不懂博客上在讲啥。 链式前向星是用来存储图的的一种结构。链式前向星最关键的一点在我看来是逆序思维。把拥有一个起点的全部用head数组加结构体里的next链接起来,这些边的存储顺序不一定是连续的,这是和前向星的区别。此外head[u]存储的是以u为起点的最后一条被输入进 阅读全文
posted @ 2019-02-19 17:15 rainyroad 阅读(131) 评论(0) 推荐(0) 编辑

2019年2月18日

摘要: 题意:给定一棵树,从中选出一些节点,使得不成父子关系的节点对数最多。问这个最大值是多少。 思路:首先既然是给定一颗树,先要选择合适的数据结构,来保存这颗树。由于这颗树只关心根节点在哪里,所以只需要用一个fa数组来保存每个点的根节点,此外设初始化为0,所以根节点的fa[root]为0,所以从任意一个结 阅读全文
posted @ 2019-02-18 20:35 rainyroad 阅读(202) 评论(0) 推荐(0) 编辑

2019年2月3日

摘要: 题意:有N个数,每两个数之间的大小关系要通过询问来得知,但是每个数之间的大小关系不具有传递性,比如 a<b , b< c不一定有a<c。 现在问你能否在10000次询问内把这N个数排成一列,使得相邻两个数,左边比右边小。 思路:把前 i - 1个数字排好序后,第 i 个数字应该插入到什么位置,则二分 阅读全文
posted @ 2019-02-03 04:31 rainyroad 阅读(299) 评论(0) 推荐(0) 编辑

摘要: A.题意:给定个数为N的数列,从中挑一些不小于L的连续子段,求这些子段当中的数平均值最大是多少? 思路:二分平均值转化为判定。我们直接去求这个>=L的子段当中的最大平均值比较难求。所以我们可以用二分的方法枚举mid,然后在判定这个mid是否合法。 判定方法为,是否存在一个长度大于L的连续子段它的平均 阅读全文
posted @ 2019-02-03 03:59 rainyroad 阅读(133) 评论(0) 推荐(0) 编辑

2019年1月30日

摘要: 冬令营在秦皇岛自闭了七天,很多题目看了都没有思路,或者是不知道怎么敲代码。我发现图论的题,自己连怎么建树都给忘了,想了半天。还有很多自己从未接触过的算法。在说说课堂上课的情况,大部分时间都是全程懵逼的,自己好菜啊,上课都听不懂。现在来剖析一下出现这些情况的原因。1.自己刷的题太窄了,题目类型覆盖面不 阅读全文
posted @ 2019-01-30 07:43 rainyroad 阅读(195) 评论(0) 推荐(0) 编辑

2019年1月27日

摘要: #include #include #define maxn 200007 const int mod=1e9+7; typedef long long ll; using namespace std; ll dp[maxn][3]; int n,l,r; int main() { int x,y,z; cin>>n>>l>>r; x=r/3-(l-1)/3,y=(r+2... 阅读全文
posted @ 2019-01-27 22:53 rainyroad 阅读(143) 评论(0) 推荐(0) 编辑

2019年1月25日

摘要: 题意:输入数字n表示字符串中元素个数,字符串中只含有RGB三个字符,现在要求任意两个相同的字符他们的下标之差能整除3。 思路:任意两个相同的字符的下标能整除3,也就是任意三个为一组的字符串当中的字符不能相同,那么只要某一组字符确定了,那么字符串中所有字符也就确定了,我们不妨来枚举前三个字符可能的排列 阅读全文
posted @ 2019-01-25 23:41 rainyroad 阅读(128) 评论(0) 推荐(0) 编辑

2019年1月19日

摘要: 题意:给你1~n个数从中任意选m个数,然后输出所有可能结果 思路:和上题一样,只不过由于多了一个限制,就是最多只能选m个数,所以多了一个状态条件,就是已选数字的个数sum, 递归边界也变了,只要是列举够m个数,就可以输出了。当列举到第n个数的时候,所有可能结果都列举完了,就可以返回不再列举了。 下面 阅读全文
posted @ 2019-01-19 22:41 rainyroad 阅读(120) 评论(0) 推荐(0) 编辑

摘要: 常见位运算操作:x>>j&1,判断x二进制下从右往左第j个数是不是1. 如果要枚举32个状态,可以把1<<32,每一位代表一个状态 以两道递归题为例。 题目1:给你1~n个数,从中选取任意多的数,然后输出所有可能的结果 思路分析:每一个数都面临选与不选两种可能性,所以可以用一个二进制下为n位的数来保 阅读全文
posted @ 2019-01-19 22:37 rainyroad 阅读(127) 评论(0) 推荐(0) 编辑

2019年1月18日

摘要: 题意:给你包含n个元素的数组和k种元素,要求k种元素要用完,并且每种颜色至少用一次,n个元素,如果某几个元素的值相同,这些个元素也不能染成同一种元素。 思路:如果元素个数n小于k或者值相同的元素的个数大于k,那么一定无解,输出-1。用一个num[a[i]]记录每种相同值的元素出现次数,若大于k,无解 阅读全文
posted @ 2019-01-18 20:36 rainyroad 阅读(158) 评论(0) 推荐(0) 编辑