题解 P2026 【求一次函数解析式】
高中方式轻松解决这个模拟题。
首先我们了解斜率的简单求法:
\]
然后我们了解到让我们求解一次函数解析式(斜截式),就是说\(k\)值一定存在!
所以这个题我们可以用点斜式解决。
点斜式又是什么?
$$y-y1=k(x-x1)$$
条件:基于k值和点\((x1,y1)\)
好,这样就能求。
我们再推导一下,把点斜式化成斜截式:
\]
\]
\]
不多说,k和b都有可能是分数。
但是我们有黑科技gcd啊!这里安利递推gcd。
inline int gcd(int a,int b)
{
while (b!=0){int c=b;b=a%b;a=c;}
return a;
}
因为输入的数据都是整数,所以我们不用担心b通分的毒瘤问题。
\]
好!接下来大家都知道该怎么做了吧!
Code:
//(Mode:C++)
//Author is Jelly_Goat.
//No cheat because it's very easy to understand.
#include <bits/stdc++.h>
#define ori ={1,1}//初始化,懒得打函数
using namespace std;
struct fenshu{
int fenzi,fenmu;
fenshu a(void);
}k ori,b ori;
inline int gcd(int a,int b)
{
while (b!=0){int c=b;b=a%b;a=c;}
return a;
}
void work(int x1,int y1,int x2,int y2)
{
k.fenzi=y2-y1,k.fenmu=x2-x1;//k=Δy/Δx
int temp=gcd(k.fenzi,k.fenmu);
k.fenzi/=temp,k.fenmu/=temp;//化简k
//推导b:(y-y1)=k(x-x1) -> y=kx+(y1-k*x1) -> b=y1-k*x1
b.fenzi=k.fenmu*y1-k.fenzi*x1,b.fenmu=k.fenmu;
temp=gcd(b.fenzi,b.fenmu);
b.fenzi/=temp,b.fenmu/=temp;//化简b
printf("y=%d",&k.fenzi);
if (k.fenmu!=1){printf("/%d",&k.fenmu);}
printf("*x");
if (b.fenzi!=0)
{
printf("+%d",&b.fenzi);
if (b.fenmu!=1){printf("/%d",&b.fenmu);}
}
}
int main()
{
int x1,x2,y1,y2;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
work(x1,y1,x2,y2);
return 0;
}
然鹅一样的防作弊系统。(都懂)
Thanks for your reading! End here.
题解 P2026 【求一次函数解析式】的更多相关文章
- 洛谷——P2026 求一次函数解析式
P2026 求一次函数解析式 题目背景 做数学寒假作业的怨念…… 题目描述 给定两个整点的坐标,求它们所在直线的函数解析式(一次函数). 输入输出格式 输入格式: 输入共两行. 第一行有两个整数x1, ...
- 洛谷 P2026 求一次函数解析式
P2026 求一次函数解析式 题目背景 做数学寒假作业的怨念…… 题目描述 给定两个整点的坐标,求它们所在直线的函数解析式(一次函数). 输入输出格式 输入格式: 输入共两行. 第一行有两个整数x1, ...
- code vs1517 求一次函数解析式(数论 纯数学知识)
1517 求一次函数解析式 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 相信大家都做过练 ...
- codevs——1517 求一次函数解析式
1517 求一次函数解析式 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 相信大家都做过练习册上的这种 ...
- leetCode题解之求二叉树每层的平均值
1.题目描述 Given a non-empty binary tree, return the average value of the nodes on each level in the for ...
- leetCode题解之求二叉树最大深度
1.题目描述 Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along t ...
- 【题解】求细胞数量-C++
题目描述一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数.(1<=m,n<=100)? 输入输出格式输入格 ...
- Leetcode题解 - 双指针求n数之和
1. 两数之和 """ 双指针,题目需要返回下标,所以记录一个数字对应的下标 """ class Solution: def twoSum( ...
- 洛谷——P2067 Cytus-Holyknight
P2067 Cytus-Holyknight 题目背景 本人最初作 以此纪念伟大的ios.安卓.PSV平台音乐游戏<cytus> 后续将不断更新. -------------Chapter ...
随机推荐
- Winfrom Panel Scroll End 的实现
场景:在一个panel里面有非常多的自定义绘制的控件,在拖拉滚动条的时候,控件的画面上有残影 不知道大家遇到过这种情况没,一直做web的winform经验太少,有更好的解决办法请贡献 首先放出我的解决 ...
- Xming 多屏选项
最早接触xming是从GrADS软件弹出的那个窗口开始的.到后来发现它是一个显示图形界面的软件,设置multiwindow 选项,xshell+xming连远程服务器,屡试不爽.随着设备升级,用上了双 ...
- java学习(一) 环境搭建、hello world的demo
本程序媛搞前端的,上班偶有空闲,不妨来学习学习,不然怎么包养小白脸,走上人生巅峰? 说实话,每个语言都相通,有了javascript的基础,并且有了两三年跟java打交道的经验,简单学习下java想必 ...
- hdfs命令大全
hdfs常用命令: 第一部分:hdfs文件系统命令 第一类:文件路径增删改查系列: hdfs dfs -mkdir dir 创建文件夹 hdfs dfs -rmr dir 删除文件夹dir hdf ...
- texlive2018和texstudio的安装及汉化教程
latex是编写论文的利器,尤其是公式的编辑是word等不可比的,且公式可以支持转换为Matgtype,十分方便且学习周期短. 下文是texlive2018和texstudio的安装教程: 本文转自: ...
- 【坚持】Selenium+Python学习记录 DAY8
2018/05/ 28 [来源:菜鸟教程](http://www.runoob.com/python3/python3-examples.html) 继续敲类相关的代码 #No.1 class peo ...
- Windows下LimeSDR Mini使用说明
本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 淘宝店铺名称:开源SDR实验室 LimeSDR链接:https://item.taobao.com/item.htm?spm=a230r.1 ...
- TensorFlow --- 01初识
由于博客园对Markdown支持不够友好,阅读此文请前往云栖社区:TensorFlow --- 01初识
- VMware启动Centos时出现错误Cannot open the disk 'xxxxxxx.vmdk' or one of the snapshot disks it depends on. .
今天拔装虚拟机的硬盘的时候,没有关掉虚拟机,导致虚拟打开的时候出现:Cannot open the disk 'xxxxxxx.vmdk' or one of the snapshot disks i ...
- users命令详解
基础命令学习目录 原文链接:https://blog.csdn.net/m0_38132420/article/details/78861464 users命令用于显示当前登录系统所有的用户的用户列表 ...