hdu 4311(枚举)
来源:互联网 发布:基本款斜挎包 知乎 编辑:程序博客网 时间:2024/06/06 19:45
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4311
思路:只会最简单的暴力枚举,枚举n/2的附近点即可。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 using namespace std; 7 #define MAXN 100010 8 typedef long long ll; 9 #define inf (1ll)<<6010 int n;11 struct Node{12 int x,y;13 }node[MAXN];14 15 int cmp(const Node &p,const Node &q){16 if(p.x!=q.x)return p.x<q.x;17 return p.y<q.y;18 }19 20 ll Solve(int k){21 ll ans=0;22 for(int i=1;i<=n;i++){23 ans+=abs(node[k].x-node[i].x);24 ans+=abs(node[k].y-node[i].y);25 }26 return ans;27 }28 29 30 int main(){31 int _case;32 // freopen("1.txt","r",stdin);33 scanf("%d",&_case);34 while(_case--){35 scanf("%d",&n);36 for(int i=1;i<=n;i++){37 scanf("%d%d",&node[i].x,&node[i].y);38 }39 sort(node+1,node+1+n,cmp);40 ll sum=inf;41 int st=(n/2-333<1?1:n/2-333);42 int ed=(n/2+333>n?n:n/2+333);43 for(int i=st;i<=ed;i++){44 ll ans=Solve(i);45 sum=min(ans,sum);46 }47 printf("%I64d\n",sum);48 }49 return 0;50 }
0 0
- hdu 4311(枚举)
- hdu 1172(模拟、枚举)
- hdu 3118(二进制枚举)
- hdu 4968(暴力枚举)
- HDU-#4451 Dressing(枚举)
- HDU 5339 Untitled(枚举)
- HDU-5610 Array(枚举)
- (枚举)HDU 5522 Numbers
- HDU 4463 Outlets (枚举)
- HDU 6053 TrickGCD(枚举)
- HDU 4007:Dave (枚举)
- hdu 1733(枚举+最大流)
- HDU 1172 猜数字(枚举)
- HDU 4431 Mahjong(枚举,模拟)
- hdu - 3925 - Substring(枚举匹配)
- HDU 1407 枚举 (第一次使用goto)
- hdu 2566统计硬币(枚举)
- hdu 4431 Mahjong (模拟,枚举+dfs)
- hdu 3861(缩点+最小路径覆盖)
- 关于tomcat服务器新学到的一些东西
- hdu 3335(最小路径覆盖)
- hdu 4313(类似于kruskal)
- hdu 4296(贪心)
- hdu 4311(枚举)
- hdu 2831(贪心)
- hdu 2819(二分匹配)
- hdu 2354(bfs求最短路)
- hdu 4324(dfs)
- hdu 2376(求树上任意两点之间距离之和的平均值)
- MFC编程之全局唯一标识符(GUID,Globally Unique Identifier)
- hdu 2444(二分图的判断以及求最大匹配)
- hdu 3665(最短路)