2018计蒜之道-贝壳找房性价比
题意
贝壳找房有一个性价比比较的系统,对于两个房源a,b,a的价格为papa p_apa万元,面积sasa s_asa平方米,b的价格为pbpb p_bpb万元,面积为sbsb s_bsb平方米。他们的绝对性价比差定义成为 $ \frac{|p_a - p_b|}{|s_a - s_b|}KaTeX parse error: Expected ‘EOF’, got ‘#’ at position 44: …使得它们的绝对性价比差最大。
#̲###输入格式
输入第一行一个…s_i$, pipi p_ipi,分别表示第 i 个房源的面积为 sisi s_isi 平方米,价格为 pipi p_ipi 万元。
数据保证 1≤T≤50,2≤n≤105105 10^5105,∣si∣,∣pi∣≤108108 10^8108,并且 没有任何两个房源的面积和价格都一样。
输出格式
对于每组数据输出一行,如果该组数据的答案趋向于无穷大,输出 −1,否则,输出最大的绝对性价比差。(所有输出误差在 10−610−6 10^{−6}10−6 以内都可以被接受)。
样例输入
2
4
1 3
4 5
7 8
3 6
2
4 10
4 11
样例输出
1.500000
-1
题解
会有T个数据组块
每个数据组块有n个数据组
每个数据组有2个数据
以这个思路可以让T和n都以数组存储,两个数据以结构体存储为pi,si
代码
TT是指向T的指针 ,Tn是指向n的指针 ,Tn是指向结构体的指针 ,
动态malloc建立数组结构
out用来输出 p用来存储最大结果
指针aout 和 指针 Tp用来使指针指向开始位置
当分母相同时直接跳出两次循环
#include<stdio.h>
#include<malloc.h>
#include<math.h>
#define TMAX 50
#define TMIN 1
#define NMAX 100000
#define NMIN 2
#define PMAX 100000000
#define PMIN -100000000
typedef struct s{
int si;
int pi;
}HOUSE,*PHOUSE;
int main(){
int T,n;
scanf("%d",&T);
if(T>TMAX)
T = TMAX;
else if(T<TMIN)
T = TMIN;
double *out = (double*)malloc(sizeof(double)*T);
double *aout = out;
HOUSE ***TT =(PHOUSE**)malloc(sizeof(PHOUSE) * T);
HOUSE **Tp;
for(int i=0;i<T;i++){
scanf("%d",&n);
if(n<NMIN)
n=NMIN;
else if(n>NMAX)
n=NMAX;
HOUSE **Tn = (PHOUSE*)malloc(sizeof(PHOUSE)*n);
*TT = Tn;
Tp =Tn;
for(int j=0;j<n;j++){
HOUSE *TH = (PHOUSE)malloc(sizeof(HOUSE));
scanf("%d",&TH->si);
if(TH->pi>PMAX)
TH->pi = PMAX;
else if(TH->pi<PMIN)
TH->pi = PMIN;
scanf("%d",&TH->pi);
if(TH->si>PMAX)
TH->si = PMAX;
else if(TH->si<PMIN)
TH->si = PMIN;
*Tn = TH;
Tn++;
}
Tn = Tp;
double p = -1;
for(int oi = 0;oi<n-1;oi++){
for(int oj = oi+1;oj<n;oj++){
if((Tn[oi])->si == (Tn[oj])->si){
p = -1;
goto loop;
}
if(p < (double)(abs((Tn[oi])->pi-(Tn[oj])->pi))/(double)(abs((Tn[oi])->si-(Tn[oj])->si)))
p = (double)(abs((Tn[oi])->pi-(Tn[oj])->pi))/(double)(abs((Tn[oi])->si-(Tn[oj])->si));
}
}
loop:
*out = p;
out++;
TT++;
}
out = aout;
for(int i1=0;i1<T;i1++,out++)
printf("%f\n",*out);
return 0;
}
ps
这个代码在计蒜客上运行1001ms,他的标准时1000ms差1ms啊绝望
纯按题意来的没有用数学方法
有野指针没改嘻嘻
作者:霸王王艾达
来源:CSDN
版权声明:本文为博主原创文章,转载请附上博文链接!