ybt1107题解和方法总结】的更多相关文章

今天花了三个小时的时间刷了些基础题,虽说是简单题,但是有一些还是有点难度的 比如ybt1107,我死嗑了半个小时. [题目描述] 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,……,L,都种有一棵树. 由于马路上有一些区域要用来建地铁.这些区域用它们在数轴上的起始点和终止点表示.已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分.现在要把这些区域中的…
深度优先搜索 人生经验 1. 需要输出所有解.并由于元素集有重复元素,要求返回的结果需要去重的情况,可考虑使用值对应数量的map,然后分别考虑依次取不同数量该值的可能. LeetCode39 题目:给定一堆数,每个数可以用无限多次,问凑出目标数target的结果集,要求不能重复. 题解:爆搜,设计为dfs(cur, target),cur为当前用第i个数,这个数用0到target / candidates[cur]个. LeetCode 216 题目:给定数字1到9,从中选 k 个数,返回所有方…
plahte 给定一些矩形和一些有颜色的点,求每个矩形上有多少种颜色的点,保证矩形只有包含和不相交两种关系,规模 \(10^5\). 把每个矩形看成一个点,用扫描线建出森林,同时也顺便处理点. 然后做一个树上的集合转移,把儿子集合的元素并到父亲集合去.这个问题有树状数组的做法,但我试了一下轻重链剖分,写起来还是挺友好的.注意这里的重儿子选择标准不是节点个数,而是节点上颜色个数,这样复杂度算起来才是正确的.(一个log跑起来比两个log的标算慢我也是很服气) san 给出一个长度小于等于 \(20…
先讲1007,有m个人,n种石头,将n种石头分给m个人,每两个人之间要么是朋友关系,要么是敌人关系,朋友的话他们必须有一种相同颜色的石头,敌人的话他们必须所有石头的颜色都不相同.另外,一个人可以不拥有任何一种石头.求m个人的所有关系是不是都能用n种石头表示出来.比赛当时找的关系是n种石头可以表示n+1个人的关系.但是一直WA,因为考虑不周. 我们考虑这样的一种情况,我们把人分为左边和右边两部分,每边的人里面都互相为敌人,同时左边的任意一个人和右边的任意一个人都是朋友.举个例子,左边有3人,右边两…
1001,官方题解是直接dp,首先dp[i]表示到i位置的种类数,它首先应该等于dp[i-1],(假设m是B串的长度)同时,如果(i-m+1)这个位置开始到i这个位置的这一串是和B串相同的,那么dp[i]还应该加上dp[i-m],因为从i-m+1开始可以被替换成另外一种意思.详细的见代码吧.我们当时使用dfs来做的,实际上换汤不换药,思想是一样的(不过dfs的话是从前往后算的).代码如下: #include <bits/stdc++.h> using namespace std; + ; ;…
题目链接: https://loj.ac/problem/136 思路: 在我的这篇博客中已经讲到什么是最短瓶颈路,同时给出了一个用Kruskal求最短瓶颈路的一个简洁易懂的方法,然而这道题目可以看作求所有点对的最短瓶颈路,显然那篇博客题解的方法不太管用,于是改进后有了这个算法: 我们还是先用Kruskal求出最小生成树,同时记录最小生成树中个点与哪些点相连.然后我们把这个最小生成树转化为有根树来进行DFS处理.若正在处理的点编号为\(u\),它的一个后继点(即将DFS)编号\(v\),已经DF…
前言 比赛网址:http://47.110.12.131:9016/contest/3 总体来说,这次比赛是有一定区分度的, \(\text{ACM}\) 赛制也挺有意思的. 题解 A. 云之彼端,约定的地方 考点: 无(签到题) 解法: 本题是拓扑学中的欧拉公式的结论题. 我们发现 \(V=E-F+2\) ,于是便得到了答案. 代码: #include <bits/stdc++.h> using namespace std; int main() { int e,f; scanf("…
总体来说很有一定区分度的(主要分为 4 题.2 题.1 题几档),ACM 赛制也挺有意思的,征求一下大家对这场比赛的意见吧,可以在这个帖子下回复,我都会看的. 简要题解:( A. 云之彼端,约定的地方 解法: 本题是拓扑学中的欧拉公式的结论题. 我们发现 \(V=E-F+2\) ,于是便得到了答案. 代码: #include <bits/stdc++.h> using namespace std; int main() { int e,f; scanf("%d%d",&am…
看不懂题解以及别人说的集合最多只有一个点..... 然后试了下题解的方法http://blog.sina.com.cn/s/blog_6bddecdc0102uzka.html 首先是无源汇有上下界最大流:就是最大流基础上,无源汇,每条边的流量有上下界. 这题是给一个图,V<=200,E<=5000,每条边有destroy[i][j]和build[i][j].选一个非空点集S,令T为S的补集.若max{∑D[s][t]-D[t][s]-B[t][s]}<=0输出happy否则输出unha…
这题可以用后缀数组,KMP方法做 后缀数组做法开始想不出来,看的题解,方法是枚举串长len的约数k,看lcp(suffix(0), suffix(k))的长度是否为n- k ,若为真则len / k即为结果. 若lcp(suffix(0), suffix(k))的长度为n- k,则将串每k位分成一段,则第1段与第2段可匹配,又可推得第2段与第3段可匹配……一直递归下去,可知每k位都是相同的,画图可看出匹配过程类似于蛇形. 用倍增算法超时,用dc3算法2.5秒勉强过. #include<cstdi…