pascal题目的思路和源程序火力交汇点[题目描述]给定n 条直线,直线的方程为:y=kx+b .求这些直线之间共有多少个不同的交点.[输入格式]nk1 b1k2 b2.kn bn第一行一个数n,表示直线数量接下来n 行,每
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 22:00:51
![pascal题目的思路和源程序火力交汇点[题目描述]给定n 条直线,直线的方程为:y=kx+b .求这些直线之间共有多少个不同的交点.[输入格式]nk1 b1k2 b2.kn bn第一行一个数n,表示直线数量接下来n 行,每](/uploads/image/z/2796235-43-5.jpg?t=pascal%E9%A2%98%E7%9B%AE%E7%9A%84%E6%80%9D%E8%B7%AF%E5%92%8C%E6%BA%90%E7%A8%8B%E5%BA%8F%E7%81%AB%E5%8A%9B%E4%BA%A4%E6%B1%87%E7%82%B9%5B%E9%A2%98%E7%9B%AE%E6%8F%8F%E8%BF%B0%5D%E7%BB%99%E5%AE%9An+%E6%9D%A1%E7%9B%B4%E7%BA%BF%2C%E7%9B%B4%E7%BA%BF%E7%9A%84%E6%96%B9%E7%A8%8B%E4%B8%BA%EF%BC%9Ay%3Dkx%2Bb+.%E6%B1%82%E8%BF%99%E4%BA%9B%E7%9B%B4%E7%BA%BF%E4%B9%8B%E9%97%B4%E5%85%B1%E6%9C%89%E5%A4%9A%E5%B0%91%E4%B8%AA%E4%B8%8D%E5%90%8C%E7%9A%84%E4%BA%A4%E7%82%B9.%5B%E8%BE%93%E5%85%A5%E6%A0%BC%E5%BC%8F%5Dnk1+b1k2+b2.kn+bn%E7%AC%AC%E4%B8%80%E8%A1%8C%E4%B8%80%E4%B8%AA%E6%95%B0n%2C%E8%A1%A8%E7%A4%BA%E7%9B%B4%E7%BA%BF%E6%95%B0%E9%87%8F%E6%8E%A5%E4%B8%8B%E6%9D%A5n+%E8%A1%8C%2C%E6%AF%8F)
pascal题目的思路和源程序火力交汇点[题目描述]给定n 条直线,直线的方程为:y=kx+b .求这些直线之间共有多少个不同的交点.[输入格式]nk1 b1k2 b2.kn bn第一行一个数n,表示直线数量接下来n 行,每
pascal题目的思路和源程序
火力交汇点
[题目描述]
给定n 条直线,直线的方程为:y=kx+b .求这些直线之间共有多少个不同的交点.
[输入格式]
n
k1 b1
k2 b2
.
kn bn
第一行一个数n,表示直线数量
接下来n 行,每行描述一条直线
[输出格式]
一个数,交点的个数
若交点不存在请输出No Fire Point.(结尾有小点哦)
[样例输入]
2
1 0
-1 2
[样例输出]
1
[数据规模]
对所有数据k,b
pascal题目的思路和源程序火力交汇点[题目描述]给定n 条直线,直线的方程为:y=kx+b .求这些直线之间共有多少个不同的交点.[输入格式]nk1 b1k2 b2.kn bn第一行一个数n,表示直线数量接下来n 行,每
第一题暴力判断两两之间交点,然后将这些交点排序,排完序判重(很坐标差的平方与纵坐标差的平方加起来是否小于0.00001)就行了
第二题(a+b)^n,用二项式定理,第k项为 c(k,n)*a^k*b^(n-k)就行了
前两题没啥难的,这也不会就练练编程能力,排序、指针是第一题要点,指针不想编可以用多个数组代替;第二题纯粹模拟,有兴趣可以看看快速幂(你以后会用到,但这题用不到)
第三题一个数,转换成2进制,mod8192后,那些14位(2^14=8192)以上的位没用,因此实际有用的数不超过8192(重复的数不如不取).
那么n只有8192,用dp[i]表示到i最少用几个数,dp[0]=0,其他dp[i]=100000000;然后用之前那不超过8192个数来更新dp[i],实际复杂度o(8192^2),用队列优化更快(没必要)
ak~
如果还要源程序就问我要,但劝你自己码一遍,我可以帮你改