題意:
給出乙個n*m的地圖,圖中有n*n個人,每行都有且只有n個人,每個人都只可以左右移動,現給出這n個人的位置,問如何移動這些人使得他們構成乙個n*n的方陣且花費最小。
思路:
首先明確一點,構成方陣之後每個人的相對位置一定不變,這樣是最優的。這樣大家就知道咋做了吧。
**:
#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
int n,m;
int num;
const int maxn = 205;
vectorv[maxn];
int main()
for(int i = 1; i <= n; i++)
int ans = 1000000000;
for(int j = 1; j <= m; j++)
}ans = min(ans, sum);
} printf("%d\n",ans);
} return 0;
}
UVALive 6835 簡單推導
題意是乙個球,在重力加速度為1的環境下,無能量損失,從起點彈到重點.中間有n張網,告訴你每張網和起點的距離和高度,限制碰撞的最大次數,求出最小的出射速度.題面給了一大堆公式然而並沒有什麼卵用,直接根據輸入說明yy題意.首先需要發現對於給定長度從一端到另一端需要的最小的速度是出射方向為45度的速度,高...
UVALive 3177 長城守衛
題意 有n 1 n 100 000 個人圍成乙個圈,其中第i個人想要r i 1 r i 100 000 個禮物 求要使任意相鄰的兩個人沒有相同禮物的最小總禮物數 sample input 52 2 2 2 2 sample outpu 5分析 n為偶數時很簡單 ans max r i r i 1 n...
uvalive 3708 墓地雕塑
加入新的雕塑之後,很明顯,坑的位置很固定,假設圈長為一的話每個坑都距離1 n m 所以呢原有的雕塑距離為1 n 這時候只需要保持乙個位置不變,其餘的都就近靠就可以了,這樣一定是距離最近的演算法 include include include include using namespace std i...