CF 366E Dima and Magic Guitar(最远哈密顿距离)
2013-11-25 13:15
337 查看
题目链接:http://codeforces.com/problemset/problem/366/E
题意:给出一个n*m的数字矩阵A,每个矩阵元素的范围[1,K]。给出一个长度为s的数字串B,B的每个元素的范围[1,K]。将B中的每个元素t用A中的一个位置(i,j)代替,满足A[i][j]=B[t]。这样就得到一个长度为s的位置序列。定义相邻两个位置的距离为曼哈顿距离,定义序列的最大距离为每两个相邻元素距离最大值。求一种替换方案使得序列的最大距离最大。
思路:最后转化成两个位置集合S1,S2,使得从S1、S2中各拿出一个元素使得曼哈顿距离最大。设两个点A(x1,y1),B(x2,y2),。因为是绝对值,所以|x1-x2|+|y1-y2|就是
(x1-x2)+(y1-y2)
-(x1-x2)+(y1-y2)
(x1-x2)-(y1-y2)
-(x1-x2)-(y1-y2)
中的最大值。因此我们对于每个位置(x,y)记录x+y,x-y,-x+y,-x-y。也就是将所有点分四种保存。那么两个点距离的最大值必然在某一种中为两个数的差值。
题意:给出一个n*m的数字矩阵A,每个矩阵元素的范围[1,K]。给出一个长度为s的数字串B,B的每个元素的范围[1,K]。将B中的每个元素t用A中的一个位置(i,j)代替,满足A[i][j]=B[t]。这样就得到一个长度为s的位置序列。定义相邻两个位置的距离为曼哈顿距离,定义序列的最大距离为每两个相邻元素距离最大值。求一种替换方案使得序列的最大距离最大。
思路:最后转化成两个位置集合S1,S2,使得从S1、S2中各拿出一个元素使得曼哈顿距离最大。设两个点A(x1,y1),B(x2,y2),。因为是绝对值,所以|x1-x2|+|y1-y2|就是
(x1-x2)+(y1-y2)
-(x1-x2)+(y1-y2)
(x1-x2)-(y1-y2)
-(x1-x2)-(y1-y2)
中的最大值。因此我们对于每个位置(x,y)记录x+y,x-y,-x+y,-x-y。也就是将所有点分四种保存。那么两个点距离的最大值必然在某一种中为两个数的差值。
int n,m,K,s,a ; set<int> S[10][4]; int b[100005],c[10][10]; int main() { Rush(n) { RD(m,K,s); int i,j,k; FOR0(i,10) FOR0(j,4) S[i][j].clear(); FOR1(i,n) FOR1(j,m) { int x; RD(x); S[x][0].insert(-i-j); S[x][1].insert(-i+j); S[x][2].insert(i-j); S[x][3].insert(i+j); } clr(c,0); FOR1(i,s) { RD(b[i]); if(i>1) c[b[i]][b[i-1]]=c[b[i-1]][b[i]]=1; } int ans=0; set<int>::iterator it; FOR1(i,9) FOR1(j,9) if(c[i][j]) { FOR0(k,4) for(it=S[i][k].begin();it!=S[i][k].end();it++) { upMax(ans,abs(*it-*S[j][k].rbegin())); upMax(ans,abs(*it-*S[j][k].begin())); } } PR(ans); } }
相关文章推荐
- CF 366E - Dima and Magic Guitar 最远曼哈顿距离
- CF 366E - Dima and Magic Guitar 最远曼哈顿距离
- Codeforces 366E Dima and Magic Guitar 暴力
- cf E. Dima and Magic Guitar
- CodeForces 366 E. Dima and Magic Guitar
- 【K-D树 求最近最远距离】BZOJ 1941 [Sdoi2010]Hide and Seek
- cf C. Dima and Salad
- cf C. Dima and Containers
- CF 390B:Inna, Dima and Song
- cf-Round #214 (Div. 2)-D-Dima and Trap Graph-dfs+二分
- cf 167.div2 E.Dima and Horses
- CF10月25日比赛。(Dima and Text Messages)
- cf B. Dima and To-do List
- CF 1042 E. Vasya and Magic Matrix
- cf-366C-Dima and Salad
- CF 358C C. Dima and Containers 离线+模拟
- CF 366C Dima and Salad [天平DP]
- CF10月25日比赛。(Dima and Continuous Line)
- CF 366 C. Dima and Salad
- cf-381A-Sereja and Dima