上一页 1 ··· 5 6 7 8 9 10 11 12 13 下一页
摘要: 题意:给你n个点,m条边,一个起点s,一个终点t的无向图,问在某两个点之间加一条边,不改变s到t的最短路径的值的加法有多少种,所有点一定连接; 思路:首先,默认相邻两点的权值都为1,会改变值的情况有: 从s出发,算出s的单源最短路dist,如果dist[x]+1<dist[t]; 从t出发,算出t的 阅读全文
posted @ 2018-03-22 21:04 荒岛的龟 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题意:一个有向图,无自环,无重边,让你判断这个图内的任意两点是否有路; 解题思路:首先,判断两个点是否可达一般用出入度来判断,如果在拓扑排序中同时有两个及以上入度同时为零的点,那么,这些入度的为零的点肯定不可达,因为没有路径指向它;然后就是简化图了,一个环的点肯定可达,所以缩下点,再拓扑排序下; 代 阅读全文
posted @ 2018-03-21 22:07 荒岛的龟 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题意:有n头奶牛,假如奶牛A觉得奶牛B很厉害,那么就有一条由A指向B的边,然后有个传递关系,if(A→B,B→C,那么A→C),让你求出被除了自己以外所有的奶牛都认为厉害的的奶牛个数; 解题思路:看到有逻辑顺序就想到了拓扑排序,然后想了想,按照题意,如果一个牛的出度为0,那么它至少确定了不会认为别的 阅读全文
posted @ 2018-03-21 20:48 荒岛的龟 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 题意:输出第n个能拆分成由,2,3,5,7中的一个或者多个组成的数; 解题思路:a[i+1]=a[i]*2;a[i+2]=a[i]*3;a[i+3]=a[i]*5;a[i+4]=a[i]*7;然后把重复的去掉就行了,可以用map标记,也可以用set存,看心情;注意1是第一个数,我也不知道为什么0.0 阅读全文
posted @ 2018-03-19 21:07 荒岛的龟 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 解题思路:dp[i][j]表示前i个物品中取k对所要的最小花费; 首先得对物品进行处理,因为需要当前物品减前一个物品的平方和最小; 所以先排序,因为排序的相邻两个的差的平方一定最小; 然后转移方程:dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+w); 阅读全文
posted @ 2018-03-14 22:14 荒岛的龟 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 解题思路:用dp做的,dp[i][j]表示在i时刻,j点的最大馅饼。a[i][j]表示在i这个时刻j点同时掉落的馅饼; 每个点除了0和10之外,都有三种状态; 1、没有移动,这样值就为dp[i][j]=max(dp[i][j],dp[i-1][j]+a[i][j]); 2、从左边移动来的,dp[i] 阅读全文
posted @ 2018-03-14 20:57 荒岛的龟 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题意:给你n和k,问你n最少花费多少代价能得到k; 有两种变换:1、n++或者n--; 2、n=n*2; 两种代价每次的花费都是1; 思路:一维的bfs,每次入队三个点,一个是n+1,一个是n-1,一个是n*2的点; 阅读全文
posted @ 2018-03-10 18:46 荒岛的龟 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 纯裸题。。写着方便理解。。。 题意:判断一个无向图是否存在欧拉回路。。。 解题思路:并查集判断一下是否联通,然后再判断一下点的度数是否为偶数就行了; 阅读全文
posted @ 2018-02-16 22:51 荒岛的龟 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 题意:首先告诉你,一个数字从1开始有两种变换方式:1.当前数字的值加1 2.当前的数字值乘2; 思路:首先把数组里的数字需要的变换次数算出来,然后用前缀和解决; 代码: 阅读全文
posted @ 2018-01-24 19:03 荒岛的龟 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题意:给你四个数,求出a^b是否小于c^d,是的话输出<,否则输出>; 思路:因为数据很大,所以我们需要降低数据的规模,比如用一个log10()函数,这就能解决了,注意,要用scanf输入; 代码: 阅读全文
posted @ 2018-01-24 18:58 荒岛的龟 阅读(130) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 下一页