CH Round #48 - Streaming #3 (NOIP模拟赛Day1)

2 篇文章 0 订阅
1 篇文章 0 订阅
本文介绍了NOIP模拟赛Day1的三道题目,包括数三角形、4和7的选择跳跃以及反射镜问题。通过计算几何的方法解决数三角形问题,动态规划策略解决药物获取最大化问题,以及利用几何反射原理处理光线轨迹问题。
摘要由CSDN通过智能技术生成

数三角形 CH Round #48 - Streaming #3 (NOIP模拟赛Day1)

描述

什么叫三角形?这个应该是每个人都知道的。在本题中,我们不允许三角形出现退化的情况,即每条边的长度与每个角的大小也应大于0。

现在平面上有n个两两不重合的点,第i个点的坐标为(x[i],y[i])。你需要计算,以它们作为顶点,一共能构成的三角形的个数。注意,即使是两个全等的三角形,只要它们的位置是不同的,就认为是不同的三角形,详见样例。

输入格式

第一行为一个正整数n,代表点的个数。

接下来n行,每行一对非负整数x[i],y[i],代表第i个点的坐标。

在此之后可能还会有多余的输入,请无视之。

输出格式

输出一个非负整数,即一共能构成的三角形的个数。

样例输入
5
0 0
1 0
2 0
0 1
1 1
2333 3333
样例输出
9
数据范围与约定

对于20%的数据,n=3。

另有30%的数据,保证任意三个点不在同一直线上。

对于100%的数据,n≤100,保证任意两个点不重合,坐标不会超过10,000。

样例解释

假设五个点依次为A,B,C,D,E。

那么,组成的9个三角形分别为△ABD,△ABE,△ACD,△ACE,△ADE,△BCD,△BCE,△BDE,△CDE。

Solution : 首先,我们可以很直接的想到N^3的做法,但是,当N增大的时候,就要考虑另外的做法,我们可以对这些点排极角序,对于一条直线上的点,算出他们的组合,用总数减去一条直线上的组合就可以了

4和7 CH Round #48 - Streaming #3 (NOIP模拟赛Day1)

描述

萌萌哒doge突然想吃药了!

现在有一排格子,从左向右标号为0到m。doge最初在0号格子中。

一共有n堆药,第i堆药有a[i]粒,被放在b[i]格子里。

每次,萌萌哒doge可以跳到它右边4格或右边7格的位置。求它最多能吃到的药的个数。注意,doge不必跳到格子m,而是可以随时结束游戏。

输入格式

第一行为两个正整数n,m,分别代表药的堆数与格子坐标的最大值
接下来n行,每行两个正整数a[i],b[i],分别代表某堆药的粒数和位置。

输出格式

输出一个非负整数,最多能吃到的药的个数。

样例输入
3 13
100 4
10 7
1 11
样例输出
101
数据范围与约定

对于20%的数据,n=1,m≤100,000。

对于40%的数据,n≤15,m≤100,000。

对于60%的数据,m≤100,000。

对于100%的数据,n≤100,000,m≤1,000,000,000,a[i]≤10,000,1≤b[i]≤m。

样例解释

第一次跳4格,第二次跳7格,总共能吃到101粒药。

Solution : 60%暴力dp。考虑4和7的特征,4 = 2^2,7 = 2^3 - 1,也就是说,有一个三元组<+2^2,+2^3,-2^0>,当7的个数达到2个,4的个数达到1个时(也就是18),以后的数这个三元组可以等效于一个二元组<2^0,2^1>也就是说18及以后的所有数都可以由若干个4个若干个7组成。那么,对于一个位置,在它18格以前的所有位置都可以达到它,我们可以记录下最大值,然后再和18以内的范围暴力dp的结果取最值,从而得到一个O(n)的DP,常数大约在20左右。


反射镜 CH Round #48 - Streaming #3 (NOIP模拟赛Day1)

描述

注:坐标平面没有边缘,光线不会因为碰到边界而中途停下,m的意义是所有镜子坐标绝对值的最大值不会超过m。

从前有一个坐标网格(其中坐标的绝对值不会超过m)。从左到右x坐标逐渐增加,而从下到上y坐标逐渐增加。

在网格中摆放着n面镜子,第i面镜子的坐标为(x[i],y[i])。镜子均与坐标轴成45°角。所以共有两种类型的镜子:“\”型和“/”型。特殊地,原点处不会有任何镜子,也不会有某个位置有多面镜子。

镜子的两个面都能够反射光线,而中间不透光,例如,对于一个“/”型镜子,从下面射入的光线会被反射到右方向,而从左面射入的光线会被反射到上方向。

现有一条光线从原点所在格子沿x轴正方向射出,求它走过$T$格路程后所在的位置。

输入格式

第一行为三个正整数n,m,T,分别代表镜子的个数与坐标的范围。

接下来n行,每行两个整数和一个字符x[i],y[i],t[i],代表某个镜子的位置和类型。

输出格式

输出两个整数,分别代表走过T格路程后的x坐标和y坐标。

样例输入
5 2 8
0 1 \
0 2 /
1 0 /
1 1 \
1 2 \
样例输出
3 1
数据范围与约定

存在10%的数据,n=1。

存在40%的数据,n≤1,000。

存在40%的数据,m≤1,000。

存在40%的数据,T≤1,000,000。

对于100%的数据,n≤100,000,m≤1,000,000,000,T≤10^{18}。

具体地,数据范围如下表所示:

测试点编号nmT
1=1≤1,000≤100,000
2,3 ≤1,000≤100,000
4,5≤1,000 ≤100,000
6,7≤1,000≤1,000 
8=1  
9,10≤1,000  
11,12,13 ≤1,000 
14,15,16  ≤100,000
17,18,19,20   
样例解释

在8个单位时间的路线是:右上左上右下右右。

Solution : 首先分别按x坐标和y坐标各排一次序,得到对于一个镜子,4个方向离它最近的镜子是哪一个,之后就可以按照时间模拟了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值