HDU 2083 简易版之最短距离
2012-01-13 21:26
387 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2083
思路:因为数据比较小,直接暴搜。
其实这是道水题,但wa了4次,觉得有必要贴出来,以前总是把min=999999;这次就被完虐了。。。。,下面贴两段代码进行比较。两段代码的差异就在于min不同,因为数据的sum可能都大于min,所以就wa了。
反思:如果能计算极值还是计算出极值比较保险。
AC代码:
思路:因为数据比较小,直接暴搜。
其实这是道水题,但wa了4次,觉得有必要贴出来,以前总是把min=999999;这次就被完虐了。。。。,下面贴两段代码进行比较。两段代码的差异就在于min不同,因为数据的sum可能都大于min,所以就wa了。
反思:如果能计算极值还是计算出极值比较保险。
AC代码:
#include<stdio.h> #include<math.h> #include<algorithm> using namespace std; int main() { int s,n,i,j,sum,min,a[1001]; scanf("%d",&s); while(s--) { min=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } sort(a,a+n); for(i=1;i<n;i++) { min=min+abs(a[i]-a[0]); } for(j=1;j<n;j++) { sum=0; for(i=0;i<n;i++) { if(i!=j) sum=sum+abs(a[i]-a[j]); } if(sum<=min) min=sum; } printf("%d\n",min); } return 0; }错误代码:
#include<stdio.h> #include<math.h> #include<algorithm> using namespace std; int main() { int s,n,i,j,sum,min,a[1001]; scanf("%d",&s); while(s--) { min=999999; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(j=1;j<n;j++) { sum=0; for(i=0;i<n;i++) { if(i!=j) sum=sum+abs(a[i]-a[j]); } if(sum<=min) min=sum; } printf("%d\n",min); } return 0; }
相关文章推荐
- HDU 2083 简易版之最短距离(水)
- HDU 2083 简易版之最短距离
- Hdu 2083 简易版之最短距离
- HDU 2083 简易版之最短距离
- HDU 2083 简易版之最短距离
- hdu 2083 简易版之最短距离
- hdu 2083 简易版之最短距离
- HDU 2083 简易版之最短距离
- hdu 2083 简易版之最短距离
- HDOJ(HDU) 2083 简易版之最短距离(中位数)
- hdu 2083 简易版之最短距离
- HDOJ(HDU) 2083 简易版之最短距离(中位数)
- HDU 2083 简易版之最短距离
- hdu - 2083 - 简易版之最短距离
- HDU:2083 简易版之最短距离(水)
- HDU ACM 11 2083 简易版之最短距离
- 简易版之最短距离 HDU - 2083
- HDU 2083 简易版之最短距离
- hdu 2083 简易版之最短距离
- HDU 2083 简易版之最短距离