hdu 6435 CSGO 曼哈頓距離性質

2021-08-25 11:57:37 字數 997 閱讀 8359

你有n把主**,m把副**。現在你要各選一把。每把**有乙個基礎能力值和k各引數。你需要使你的兩把**的基礎值之和加各個能力值的絕對值之和最大。

先只考慮能力值:如|a1-b1|+|a2-b2|+|a3-b3|約掉絕對值之後根據a1~a3和b1~b3的值,原式的每個數字的符號有2^3種可能性。

但是只有一種符號分配的方式能使原式最大。即若a1>b1,|a1-b1|>0,如果給a1加負號原式就會小於0,不會影響最後最大值的判斷。

所以列舉符號的2^k種情況,每次遍歷n+m尋找最大值相加就是最後的解

#include#define inf 0x3f3f3f3f

#define mod 1000000007

#define for(i,m,n) for(int i=m;i<=n;i++)

#define dor(i,m,n) for(int i=m;i>=n;i--)

#define ll long long

#define lan(a,b) memset(a,b,sizeof(a))

#define sqr(a) a*a

using namespace std;

ll a[100005][7];

ll b[100005][7];

int main()

for(i,1,m)

ll ans=0;

for(l,0,(1<>(j-1))&1)sum1+=a[i][j];

else sum1-=a[i][j];

//printf("a%d:sum=%d\n",i,sum1);

maxx1=max(maxx1,sum1);

//printf("maxx1=%d\n",maxx1);

}ll sum2;

for(i,1,m)

ans=max(ans,maxx1+maxx2);

}printf("%lld\n",ans);

}return 0;

}

HDU 6435 CSGO 求多維曼哈頓最遠距離

題意 有乙個能力值 s i 和k個屬性值 x i 要求從主 副 兩個集合中各挑選一把使得評分最高。評分的指二者的s值之和,及二者各項屬性值的差的絕對值的和 分析 在做這道題前,可以先考慮poj 2926 求的是5維的n個點最遠點對的距離 我們先從只有一維的情況考慮起。只需要獲得該維的最大值,最小值,...

hdu5762曼哈頓距離

考慮一種暴力,每次列舉兩兩點對之間的曼哈頓距離,並開乙個桶記錄每種距離是否出現過,如果某次列舉出現了以前出現的距離就輸 yesyes 否則就輸 nono 注意到曼哈頓距離只有 o m o m 種,根據鴿籠原理,上面的演算法在 o m o m 步之內一定會停止.所以是可以過得.一組資料的時間複雜度 o...

hdu 4311 曼哈頓距離

二 題意 給幾個點,選取其中乙個點為聚點,要求其他點到這個點的距離 x y 之和最小 三 題解 選取第乙個點為聚點,求出其他各個點到第乙個點的距離之和dx。然後x y軸分別進行操作。先對x軸進行計算,對x從小到大進行排序,然後遞推出公式通過前乙個點的dx依次求出其他點依次作聚點的dx。再對y軸排序,...