UVa 855 - Lunch in Grid City

题目:字一个由垂直的街道构成的城市里,居住着很多朋友(房子都在交叉路口);

现在他们想办一个聚会,问在那个地方办可以使得所有人走的路径和最小。

分析:中位数。本题中的距离为哈密尔特距离dist(<x1,y2>,<x2,y2>)= |x1-x2|+|y1-y2|。

设地点定在<x,y>,则有sumdist = sum(|x-xi|+|y-yi|)= sum(|x-xi|)+sum(y-yi);

对于式子Σ|x-xi|的最小值,为取xi的中位数,即x = x[n/2],同理y = y[n/2]。

说明:冲进UVa450了╮(╯▽╰)╭。

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>

using namespace std;

int x[50005];
int y[50005];

int main()
{
	int t,s,a,f;
	while (~scanf("%d",&t))
	while (t --) {
		scanf("%d%d%d",&s,&a,&f);
		for (int i = 0; i < f; ++ i)
			scanf("%d%d",&x[i],&y[i]);
		sort(x, x+f);
		sort(y, y+f);
		printf("(Street: %d, Avenue: %d)\n", x[(f-1)/2], y[(f-1)/2]);
	}
    return 0;
}
时间: 2024-08-27 23:02:50

UVa 855 - Lunch in Grid City的相关文章

UVA - 10913Walking on a Grid(记忆化搜索)

题目:Walking on a Grid 题目大意:给出N * N的矩阵,每个格子里都有一个值,现在要求从(1,1)走到(n, n),只能往下,左,右这三个方向走,并且要求最多只能取k个负数,求这样的要求下能得到的走过格子的值之和最大. 解题思路:记忆化搜索,但是这里要四维的,因为要记录方向,为了防止走回头的路,并且取了几个负数也要记录.然后就是dfs了.状态转移方程:dp[x][y][d][k] = dp[x + dir[i][0]][y + dir[i][1]][i][k1] + G[x][

UVa 11916 (离散对数) Emoogle Grid

因为题目要求同列相邻两格不同色,所以列与列之间不影响,可以逐列染色. 如果一个格子的上面相邻的格子,已经被染色则染这个格子的时候,共有k-1中选择. 反过来,如果一个格子位于第一列,或者上面相邻的格子是不能被染色的格子,则共有k中选择. 虽然,矩阵的行数不定,但至少为所有不能被染色格子行标的最大值m. 分别检验一下染m行和m+1行的方案数(mod 100000007)是否为r 否则的话,后面每染一行方案数都会乘p = (k-1)n,假设前面计算出来的m+1行方案数为cnt 下面的任务就是求解 p

c#大圣之路笔记——c# DataGrid checkbox 操作

1 ///html 2 3 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="xOEMStoreNominationForCAM.aspx.cs" EnableEventValidation="false" Inherits="PRCSales_external.Store.xOEMStoreNominationForCAM" %>

2014 ACM-ICPC Vietnam National First Round

Contest Link easy: ABDGIJ medium-easy: E medium: H medium-hard: CF A. Cool number 各数位之和不大,枚举即可. E. Binary Search Tree 考虑 DP,\(f[u]\) 表示以 \(u\) 为根,极大合法连通块 size,但是这样合并不了,不知道 \(u\) 的儿子的子树会不会和 \(u\) 冲突.注意到 \(u\) 的子树,影响到的点只有,从 \(u\) 往根走,第一次左拐遇到的点,和第一次右拐遇到

UVA之1330 - City Game

[题目] Bob is a strategy game programming specialist. In his new city building game the gaming environment is as follows: a city is built up by areas, in which there are streets, trees, factories and buildings. There is still some space in the area tha

uva 11605 - Lights inside a 3d Grid(概率)

option=com_onlinejudge&Itemid=8&page=show_problem&problem=2652" style="">题目链接:uva 11605 - Lights inside a 3d Grid 题目大意:给定一个三维坐标系大小,每一个位置有一个灯.初始状态为关.每次随机选中两个点,以这两点为对角线的长方体内全部灯转变状态.操作K次.问说平均情况下.最后会有多少栈灯亮着. 解题思路:枚举坐标系上的点.计算单个点亮着

uva 10671 - Grid Speed(dp)

题目链接:uva 10671 - Grid Speed 题目大意:给出N,表示在一个N*N的网格中,每段路长L,现在给出h,v的限制速度,以及起始位置sx,sy,终止位置ex,ey,时间范围st,et,车只走最短路,问说在范围内最快到达和耗油量最小的情况下时间和耗油量. 解题思路:dp[x][y][t]表示在x,y这一点,时间为t的耗油量最小为dp[x][y][t],vis[x][y][t]表示该情况是否可达.dx,dy表示由起点向终点移动的方向.因为时间为L?60v, 因为v是5的倍数,并且小

uva 12508 - Triangles in the Grid(几何+计数)

题目链接:uva 12508 - Triangles in the Grid 题目大意:给出n,m,A和B,要求计算在(n+1)?(m+1)的矩阵上,可以找出多少个三角形,面积在AB之间. 解题思路:首先枚举矩阵,然后计算有多少个三角形以该矩阵为外接矩阵,并且要满足体积在AB之间.然后对于每个矩阵,要确定在大的范围内可以确定几个. 枚举矩阵的内接三角形可以分为三类: 1.三角型的两点在一条矩阵边上的顶点,另一点在该边的对边上(不包括顶点) 2.以对角线为三角形的一边 这样可以枚举x,然后求出l和

UVA 11605 - Lights inside a 3d Grid(概率+数学)

UVA 11605 - Lights inside a 3d Grid 题目链接 题意:给定一个NxMxP的三维网格,每个格子上一盏灯,现在每次随机选择两点,把这两点构成立方体中间那一块开关灯状态转换,问K步之后网格中亮灯的期望 思路:概率问题,把x,y,z轴分开考虑,算出每一个点xi,yi,zi分别能被选到的情况数,然后根据乘法原理相乘起来除以总情况就能算出一点的概率,然后问题就是K次了,对于K次,每次开到的概率为P的情况下,总情况为∑k1Pi(1?P)k?ii为奇数,那么根据组合公式很容易化