摘要: 题意:给一棵树,每个结点的子树下的结点都是它的统治对象,问有多少个统治对象数目为k的结点?思路:每个结点都设一个cnt来记数,只要将每个结点往上回溯,直到树根,经过的每个结点都将计数器加1。最后再扫一遍,将cnt等于k的结点统计一下。#include #define LL long long#def... 阅读全文
posted @ 2015-07-28 19:38 xcw0754 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题意: 一个画家画出一张,有3种颜色的笔,R、G、B。R看成'\',B看成'/',G看成这两种的重叠(即叉形)。给的是一个矩阵,矩阵中只有4种符号,除了3种颜色还有'.',代表没有涂色。问最小耗费多少笔即可画成这副图?思路: 最小耗费就是斜着的可以一笔搞定,但是如果中间隔着'.'或者其他一种形状... 阅读全文
posted @ 2015-07-28 19:33 xcw0754 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题意:从1~1000,000的每个自然数质因子分解,不同因子的个数作为其f 值,比如12=2*2*3,则f(12)=2。将100万个数转成他们的f值后变成新的序列seq。接下来T个例子,每个例子一个询问区间seq[L,R]。问该子序列中任意两个不同下标的数,他们的GCD值最大为多少?思路:(1)质因... 阅读全文
posted @ 2015-07-28 19:24 xcw0754 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个单链表,每k个节点就将这k个节点反置,若节点数不是k的倍数,则后面不够k个的这一小段链表不必反置。思路:递归法。每次递归就将k个节点反置,将k个之后的链表头递归下去解决。利用原来的函数接口即可,不用重新定义。 1 /** 2 * Definition for singly-linked... 阅读全文
posted @ 2015-07-28 10:39 xcw0754 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个单链表,若其有环,返回环的开始处指针,若无环返回NULL。思路: (1)依然用两个指针的追赶来判断是否有环。在确定有环了之后,指针1跑的路程是指针2的一半,而且他们曾经跑过一段重叠的路(即1跑过,2也跑过),就是那段(环开始处,相遇处),那么指针2开始到环开始处的距离与head到指针相... 阅读全文
posted @ 2015-07-28 10:03 xcw0754 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个单链表,判断其是否出现环!思路:搞两个指针,每次,一个走两步,另一个走一步。若有环,他们会相遇,若无环,走两步的指针必定会先遇到NULL。 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * ... 阅读全文
posted @ 2015-07-28 09:24 xcw0754 阅读(140) 评论(0) 推荐(0) 编辑