最短距离问题
c++吧
全部回复
仅看楼主
level 12
QQ懒羊羊QQ
楼主
X轴上面有n(0<n<1000)个点,-10000<x<10000.....在x轴上面找一个点,使其到其他点的距离之和最小。
我想问的是如何根据这n个点来确定要找的点的范围,我用的是for(i=-10000;i<=10000;i++)
老师说不行,如何缩小范围
2011年06月14日 12点06分
1
level 12
QQ懒羊羊QQ
楼主
不懂。。。我测试的是30个点 是不是在15~16个数之间啊
2011年06月14日 12点06分
4
level 12
QQ懒羊羊QQ
楼主
我取了30个点,n=30.。。。。。。。。。。不想从-10000~10000来循环 要径最大可能缩小范围
2011年06月14日 12点06分
6
level 12
QQ懒羊羊QQ
楼主
我还没学神马离散。。
2011年06月14日 12点06分
7
level 12
QQ懒羊羊QQ
楼主
2011年06月14日 12点06分
10
level 12
QQ懒羊羊QQ
楼主
原题如上
2011年06月14日 12点06分
11
level 12
QQ懒羊羊QQ
楼主
用分而治之 单独求x y 坐标
2011年06月14日 12点06分
12
level 12
QQ懒羊羊QQ
楼主
用n^2暴力就行
bu dong
2011年06月14日 12点06分
16
level 12
QQ懒羊羊QQ
楼主
那是错的吧
2011年06月14日 12点06分
18
level 12
QQ懒羊羊QQ
楼主
把2维转化成2个一维的
2011年06月14日 12点06分
19
level 12
QQ懒羊羊QQ
楼主
x y 都独立的
2011年06月14日 12点06分
20
level 12
QQ懒羊羊QQ
楼主
不懂暴力为何物。。。。。。。long i=0,j=0;
long n=100000000;
long c=100000000;
for(i=-10000;i<=10000;i++)
{
long m=0;
for(j=0;j<num;j++)
{m+=abs(i-A[j]);}
if(n>m)
{n=m;xx=i;}
}
for(i=-10000;i<=10000;i++)
{
long m=0;
for(j=0;j<num;j++)
{m+=abs(i-B[j]);}
if(c>m)
{c=m;yy=i;}}
answer=(n+c);
AfxMessageBox("计算完毕");
2011年06月14日 12点06分
22
level 12
QQ懒羊羊QQ
楼主
2011年06月14日 12点06分
24
level 12
QQ懒羊羊QQ
楼主
求教啊
2011年06月14日 13点06分
28
level 12
QQ懒羊羊QQ
楼主
嗯
2011年06月14日 13点06分
30
level 12
QQ懒羊羊QQ
楼主
我懂。。。可是。。。
2011年06月14日 13点06分
37
level 12
QQ懒羊羊QQ
楼主
100 300
0 0
120 580
-300 800
-600 -700
500 200
100 -1000
1000 250
01500 2800
2000 2000
210 -1000
-1000 800
300 600
2000 4000
1000 -600
0-6000 1000
-3000 3000
-1500 2000
-1500 -1500
-2000 -500
200 6000
500 8000
5000 7000
-5000 2000
-4000 3000
-6000 6000
9000 9000
-9000 9000
6500 -5000
3500 2000
2011年06月14日 13点06分
42
level 12
QQ懒羊羊QQ
楼主
大帝!!
2011年06月14日 14点06分
52
level 12
QQ懒羊羊QQ
楼主
看不懂。。你是来证明是中值的吧
2011年06月14日 14点06分
53
level 12
QQ懒羊羊QQ
楼主
说说看。
2011年06月14日 14点06分
56
1