Contest of cug 2013.6

题目: Contest - 2013校赛暨华中邀请赛

2013-6-2 cug 校赛


Unsolved: B F K

Solution: cug2013


A.Segment
题意:求一维坐标中n(<=10w)条线段中任意两条重和的最大值
思路:排序,起点相同的保留长度最长的
然后按x从小到大往右扫,mx记录当前出现的最右端点
l表示当前线段的左边,r表示右边,r=min(v[i].y,mx);
Code: cug1429.cpp


B.Overlapping Sticks
题意:二维平面中,求若干重合点的线段的对数
思路:把线段按照ax+by+c=0的形式,进行一个特殊的分类
属于一类的线段,垂直于X轴的特殊讨论,其余的按x从小到大排序扫描
Code: cug1430(wa).cpp



C.Max Sum
题意:环形求最大子序列和
思路:求两种情况的最大值
1.非环形的直接求
2.跨过了首尾元素的,用sum-最小子序列和
最小子序列,直接把元素取负,调用最大子序列即可
Code: cug1431.cpp


D.Tetrahedron Inequality
题意:求六条边能否组成正四面体
思路:http://math.stackexchange.com/questions/513071/tetrahedron-inequality
Code: cug1432.cpp


E.Enclose
题意:求用弧线圈住n个圆的长度
思路:转化成多边形往外扩一个半径的凸包的周长+一个圆周的周长
Code: cug1433.cpp


F.Min Cycle Max
题意:求n个数形成环的一个排列,满足相邻数字差的最大值要最小,且字典序最小
思路:(不知道正确否)
排序后,按照从小到大的顺序排列成  7 5 3 1 2 4 6 ...
然后最小元素,往左往右分别得到两个
 1 2 4 6 7 5 3  和  1 3 5 7 6 4 2
求得最小值是 2
倒着扫一遍,把能去掉的去掉插到前面即可保证字典序最小
Code: cug1434(wa).cpp


G.Find the minimum
题意:区间更新线段树
思路:线段树
Code: cug1435.cpp


H.A strange dream
题意:n个点,m条边,每个点都有一个值
每到达一个点的充分条件是,当前值更新为与这个点的值的lcm(必须改变)
求从1到n的路径数,最后值恰好为k的路径数%(1e9+7)
思路:A Strange Dream
Code: cug1436.cpp



I.Take Photo
题意:输入01矩阵,1表示i必须站在j的右边,求方案数
思路:状态dp
Code: cug1437.cpp



J.Leo’s Game
题意:求n个数字中,满足所有数字的最小公倍数是M的最大个数
思路:把能整除M的数字筛出来,求最小公倍数是否等于M,水题
Code: cug1438.cpp



K.Food Chain
题意:根据已知食物链关系,判断满足题目的要求
思路:模拟+一丢丢图论,不会写

Code: null



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值