#16607: 請問如何加速?


buanyz03 (張晁瑋)

學校 : 新北市立板橋高級中學
編號 : 2629
來源 : [114.25.190.198]
最後登入時間 :
2023-09-06 15:43:50
b582. 一個窩 -- 嘉義高中104資料學科能力競賽 | From: [203.69.87.1] | 發表日期 : 2019-01-21 11:17

#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
來源 : [140.112.217.20]
最後登入時間 :
2023-12-27 11:15:30
b582. 一個窩 -- 嘉義高中104資料學科能力競賽 | From: [219.85.137.162] | 發表日期 : 2019-04-24 20:37

用STL的容器速度很慢

自己開個1000000+的陣列下去

再將cin,cout改寫成scanf,printf

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

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

通過檢測
通過檢測

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

通過檢測
 
ZeroJudge Forum