#16607: 請問如何加速?


buanyz03 (張晁瑋)

學校 : 新北市立板橋高級中學
編號 : 2629
來源 : [114.25.190.198]
最後登入時間 :
2023-09-06 15:43:50

#include <iostream>
#include <vector>
#include <algorithm>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
struct point
{
long long x,y;
};
int c_x(point a,point b)
{
return a.x<b.x;
}
int c_y(point a,point b)
{
return a.y<b.y;
}
int main()
{
vector <point> p;
int t,n;
long long sum;
point temp;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
p.clear();
for(int i=0;i<n;++i)
{
scanf("%lld%lld",&temp.x,&temp.y);
p.push_back(temp);
}
sort(p.begin(),p.end(),c_x);
temp.x=p[n/2].x;
sort(p.begin(),p.end(),c_y);
temp.y=p[n/2].y;
sum=0;
for(int i=0;i<n;++i)
{
sum+=abs(temp.x-p[i].x)+abs(temp.y-p[i].y);
}
printf("%lld\n",sum);
}
}

卡在第三筆測資一直TLE

#17584: Re:請問如何加速?


tzuchunchen1015@gmail.com (TCC)

學校 : 不指定學校
編號 : 93686
來源 : [1.173.194.102]
最後登入時間 :
2025-04-23 16:53:10

用STL的容器速度很慢

自己開個1000000+的陣列下去

再將cin,cout改寫成scanf,printf

應該就會過了(本人我也是這樣改才過)

#0: 60% AC (4ms, 356KB)

通過檢測
通過檢測

#2: 10% AC (1.2s, 8MB)

通過檢測