爆0求助!!!!!!!!!!!!!
查看原帖
爆0求助!!!!!!!!!!!!!
602624
___njr___楼主2022/12/18 13:09

思路:

化简得:

eidi=piqipiqi+2e_id_i=p_iq_i-p_i-q_i+2
m=nieidi2=pi+qim=n_i-e_id_i-2=p_i+q_i
代入qi=mipi,\text{代入}q_i=m_i-p_i,
eidi=nimi+2=(mipi)pimi+2=mipipi2+2e_id_i=n_i-m_i+2=(m_i-p_i)p_i-m_i+2=m_ip_i-p_i^2+2
eidi=mipi+pi2+mi2-e_id_i=-m_ip_i+p_i^2+m_i-2
0=pi2+(mi)pi+(mi+eidi2)0=p_i^2+(-m_i)p_i+(m_i+e_id_i-2)
0=pi2+mipi+n0=p_i^2+m_ip_i+n

ai=1,a_i=1,
bi=m,b_i=m,
ci=n.c_i=n.
pi=bi± bi  4ni 2aip_i=\dfrac{-b_i\pm\sqrt{\ b_i\ -\ 4n_i\ }}{2a_i}
       ⁣=mi± mi2  4ni 2\ \ \ \ \ \ \!=\dfrac{m_i\pm\sqrt{\ m_i^2\ -\ 4n_i\ }}{2}

WACode

#include <bits/stdc++.h>
using namespace std;
 #ifdef check
 #undef check
 #endif
 #define check(p) (n==(m-p)*p)
 #ifdef Whole
 #undef Whole
 #endif
 #define Whole(a) ( ceil(a) == floor(a) )
 int p,n,e,d,i,m;
 inline void Quit();
 int main()
 {
 	int q;
 	scanf("%d",&q);
 	while(q--)Quit();
 	return 0;
 }
 inline void Quit() {
 	scanf("%d%d%d",&n,&d,&e);
 	m=n-e*d+2;//m=p+q
 	double p1 = ( m + sqrt ( m * m - 4.0 * n ) ) / 2 ;
 	double p2 = ( m - sqrt ( m * m - 4.0 * n ) ) / 2 ;
 	if ( Whole(p1) )p = p1;
 	else if ( Whole(p2) )p=p2;
 	else {
 	    printf("NO\n");
 	    return;
 	}
 	printf ( "%d %d\n" , p , m - p ) ;
 }
2022/12/18 13:09
加载中...