【CH Round #48 - Streaming #3(NOIP模拟赛Day1)】 题解

本文是CH Round #48 - Streaming #3(NOIP模拟赛Day1)的比赛题解,包括数三角形、4和7以及反射镜三个问题。对于数三角形,通过暴力法判断斜率和三角形条件;4和7问题,通过排序和DP求解最大收集糖数量;反射镜问题,利用记忆化搜索解决光线反射路径问题。
摘要由CSDN通过智能技术生成

飞机票:http://www.contesthunter.org/contest/CH%20Round%20%2348%20-%20Streaming%20%233%20(NOIP%E6%A8%A1%E6%8B%9F%E8%B5%9BDay1)


数三角形

题目大意:给出n(n≤100)个点(坐标都为非负整数),计算以这些点为顶点,一共能构成三角形的个数。

做法:n很小很明显可以直接暴力n^3枚举点,每次判断三边斜率是否有两条相同,而且必须满足三角形(两边之和大于第三边)这样就可以碾过去了。


4和7

题目大意:有n(n≤100,000)堆糖放在0到m(m≤1,000,000,000)的坐标轴上,从0开始每次可以向正方向跳4步或7步,求最大收集糖的数量。

做法:首先对所有的点按照坐标排序。可以设DP方程F[i]表示前i个点能取到的最大的糖果数量,显然F[i] = F[j] + a[i]。由于>17的数都能分成若干个47的和(这个怎么的来可以自己从4、7开始叠加推出),于是枚举j,当ij的坐标差<=17时暴力判断是否能由47组成,坐标差>17F[0..j]的值取最大值计算就好,此时可以维护一个g[i]表示F[0..i]中的最大值。


反射镜.

题目大意:在坐标轴中放着n(n≤100,000)面镜子,镜子均与坐标轴成45°角。所以共有两种类型的镜子:“\”型和“/”型。其坐标值的绝对值均不超过m(m≤1,000,000,000),镜子的两个面都能够反射光线,而中间不透光,例如,对于一个“/”型镜子,从下面射入的光线会被反射到右方向,而从左面射入的光线会被反射到上方向,现有一条光线从原点所在格子沿x轴正方向射出,求它走过T格路程后所在的位置。

做法:首先处理出每个位置的镜子在四个方向上最近是那个镜子,然后模拟光线反射就行了。但是有个问题,这些镜子反射光线可能会使光线形成环,这样就会超时,所以用记忆化记录一下就可以了。




总结:第一题就不说了。看到第二题,我就头疼了,这是我比较弱的一种题目,于是便先跳过去做第三题,我打了一个部分分的暴力,发现效率很低,于是开始想优化,最终得了40分....像第二题这种类型的题目以后要克服啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值