Codeforces Round #544 (Div. 3)(solve 7/7)

题目链接:http://codeforces.com/contest/1133

A 题:Middle of the Contest

题意:给你个起点和终点,让你输出他们的中间点

思想: 模拟,考虑下小时差奇偶,讨论下即可。

B 题:Preparation for International Women's Day

题意: n个数,问你有多少对能够是k的倍数。

思想:%k之后讨论即可

C 题 :Balanced Team

题意: 给你n个数,问你最大的一个子集保证子集中最大和最小差值不超过5,问你子集大小。

思想:排序之后l ,r 双指针即可。

D 题 :Zero Quantity Maximization

题意:给你n个ai,bi,问你满足 问你产生的数组C中0的个数最多是多少。

思想:可以ci=0的前提下  d = -bi/ai 转变成求 d 出现的次数最多,对于ai bi GCD 求后放map即可

E题:K Balanced Teams

题意 : n个人分成k组,问你每一组最少1个人的情况下而且一个组之内最大和最小值的差值不超过5,问k组最多有多少人

思想 : DP  dp[i][j]代表从1-i中已经用了j个分组的人数

dp[i][j] = max(dp[i-1][j],dp[pos][j-1]+i-pos+1)   pos 就是lower_bound(a+1,a+1+n)-a-1 出来的位置下标

代码连接 : http://codeforces.com/contest/1133/submission/51073082

F1题 Spanning Tree with Maximum Degree

题意:给你一个无向图,让你求一颗生成树,根节点的度最大。

思想 : 直接找度最大的点,然后dfs输出树即可。

F2题 Spanning Tree with One Fixed Degree

题意: 给你一个无向图,然后问你1那个点最后的度为k然后这图变成一颗生成树可不可行,可行输出任何一种方案

思想:刚开始判断1的那个点是否度为k 小于k 肯定no, 如果大于k我们思考去掉一些连接1的边是否可以构成生成树。

我们先将1出去,其他的点并查集求出来联通块,然后在让1和原来跟它连接的点去连接,看看最少1需要和几个联通块建边,如果建边的数量还是大于k也是No,如果小于等于的就是yes,因为本来就大于k 现在虽然小于k了 说明有一部分连接1的自我成块了,只需要从里面抽出来一部分即可。跟1连接的节点中存在的块<=k,先将这些点都连接上,然后再去遍历除去这些之后原本和1连接的点,只要在连接k-块数即可,然后遍历所有节点加入联通块即可。

代码连接 : http://codeforces.com/contest/1133/submission/51074870

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值