SGU106 The equation

2024-06-11 13:32
文章标签 equation sgu106

本文主要是介绍SGU106 The equation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="font-size:14px;">题意:给出直线ax+by+c=0的参数a, b, c,求直线在 x ∈[x1, x2],y ∈[y1, y2] 上有多少整点。</span></span>

题解:首先特判a或b等于零的情况。若a,b非零,欧几里得搞出一组解,然后算出delta_x, delta_y(通解式子),按直线的斜率>0或<0分类。然后求出x的最小合法取值(即对应的y也合法),然后在x的可滑动区间和y的可滑动区间之间求一个最小值就好了。

写这题的时候开始代码还能看,后来一次又一次地被细节坑,然后为了AC代码就越来越乱了。。


#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define LL long long
#define f1(y) ((c-b*(y)) / a) //已知y对应的x
#define f2(x) ((c-a*(x)) / b) //已知x对应的y

这篇关于SGU106 The equation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1051307

相关文章

河南省第七届ACM【Turing equation】

【Description】 The fight goes on,whether to store  numbers starting withtheir most significant digit or their least  significant digit. Sometimes  this  isalso called  the  "Endian War". The battlegro

SGU 106. The equation 扩展欧几里德

求解的个数 对应ax+by=c 根据裴蜀定理c%gcd(a, b) == 0有解 假设d = gcd(a, b) 用扩展欧几里德求出方程aax+bb*y=cc 的解x0 y0 那么原方程的一个解就是x0*c/d和y0*c/d 通解为  x = x0+i*b/d y = y0+i*a/d 分别讲x1 x2 带入得到i 满足最小的左区间 y1 y2一样 #include <cstd

里卡提方程(Riccati Equation)例子

里卡提方程(Riccati Equation) 里卡提方程(Riccati Equation)在人形机器人控制中有重要的应用,特别是在最优控制和估计问题中。里卡提方程主要用于求解线性二次型调节器(LQR, Linear Quadratic Regulator)和卡尔曼滤波器(Kalman Filter)。这些方法有助于提高机器人控制的稳定性和性能。 里卡提方程简介 离散时间里卡提方程的一般形

fzu 2102 Solve equation(水题)

题目连接:fzu 2102 Solve equation 题目大意:给出数a,b和进制bas,a和b都是bas进制的数,现在要计算十进制数k和d ,使得a = k * b + d。 解题思路:将a和b转换成十进制数,然后k = a / b, d =a - (a/b) * b. #include <stdio.h>#include <string.h>const int

SGU 106 The equation(拓展欧几里得)

通解形式 然后利用x,y去求出范围,就能得到解的个数 注意特判a和b都为0的情况 代码: #include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;typedef long long ll;ll a, b, c;double a1, a2, b1

HDU 2199 Can you solve this equation? NYOJ 503 解方程

题目链接~~> 做题感悟:这个题太坑(也许暗示着对二分还没掌握好),调精度调了半上午才调出来。 解题思路:在[ 0 , 100 ] 这个区间里函数是单调递增的所以与二分有一点的差别(个人感觉),只要在 F( 0 ) ~ F( 100 ) 之间的值都有解不断二分即可,也不用加 0.000001 ,其实加也可以. 总结一下 pow ( x , y ) :

Twice Equation(递推+java大数)

问题 L: Twice Equation 题目描述 For given L, find the smallest n no smaller than L for which there exists an positive integer m for which 2m(m + 1) = n(n + 1). 输入 This problem contains multiple

【RL】Bellman Equation (贝尔曼等式)

Lecture2: Bellman Equation State value 考虑grid-world的单步过程: S t → A t R t + 1 , S t + 1 S_t \xrightarrow[]{A_t} R_{t + 1}, S_{t + 1} St​At​ ​Rt+1​,St+1​ t t t, t + 1 t + 1 t+1:时间戳 S t S_t St​:时间

quadratic equation (余数)

quadratic equation Time Limit: 2000 ms Memory Limit: 131072 KiB Submit Statistic Discuss Problem Description With given integers a,b,c, you are asked to judge whether the following statem