CSP複賽龍虎鬥

2021-10-24 20:54:51 字數 2151 閱讀 6411

題目描述

軒軒和凱凱正在玩一款叫《龍虎鬥》的遊戲,遊戲的棋盤是一條線段,線段上有 nn 個兵營(自左至右編號 1 \sim n1∼n),相鄰編號的兵營之間相隔 1 厘公尺,即棋盤為長度為 n−1 厘公尺的線段。i 號兵營裡有 ci 位工兵。

軒軒在左側,代表「龍」;凱凱在右側,代表「虎」。 他們以 mm 號兵營作為分界, 靠左的工兵屬於龍勢力,靠右的工兵屬於虎勢力,而第 mm 號兵營中的工兵很糾結,他們不屬於任何一方。

乙個兵營的氣勢為:該兵營中的工兵數\times× 該兵營到 mm 號兵營的距離;參與遊戲 一方的勢力定義為:屬於這一方所有兵營的氣勢之和。

下面圖 2 為 n = 6,m = 4n=6,m=4 的示例,其中紅色為龍方,黃色為虎方。

遊戲過程中,某一刻天降神兵,共有 s1位工兵突然出現在了 p1號兵營。作為軒軒和凱凱的朋友,你知道如果龍虎雙方氣勢差距太懸殊,軒軒和凱凱就不願意繼續玩下去了。為了讓遊戲繼續,你需要選擇乙個兵營 p2 ,並將你手裡的s2位工兵全部派往 兵營 p2,使得雙方氣勢差距盡可能小。

注意:你手中的工兵落在哪個兵營,就和該兵營中其他工兵有相同的勢力歸屬(如果落在 m 號兵營,則不屬於任何勢力)。

輸入格式

輸入檔案的第一行包含乙個正整數n,代表兵營的數量。

接下來的一行包含 n個正整數,相鄰兩數之間以乙個空格分隔,第 i 個正整數代 表編號為 ii 的兵營中起始時的工兵數量 。

接下來的一行包含四個正整數,相鄰兩數間以乙個空格分隔。

輸出格式

輸出檔案有一行,包含乙個正整數,表示你選擇的兵營編號。如果存在多個編號同時滿足最優,取最小的編號。

#include

#define maxlen 256 * 256 * 2

// - 資料範圍 , 不定

#define maxint 256 * 256 * 256

// - 資料範圍 , 不定

using

namespace std;

long

long

distance

(long

long p,

long

long m)

// - 計算點之間的距離

long

long num[maxlen]=;

// - 數量

long

long momentum[maxlen]=;

// - 氣勢

voidc(

long

long pointer,

long

long m)

// 計算氣勢

intmain()

cin >> m >> p1 >> s1 >> s2;

// ---

// - 將天降神兵存入陣列

if(p1 >

0)num[p1 -1]

+= s1;

else

return0;

// - 將氣勢計算並存入陣列

for(

long

long i =

0; i < n; i ++

)// - 計算龍、虎陣營各自的氣勢

long _min = maxint, ans =0;

for(

long

long i =

0; i < m -

1; i ++

)for

(long

long i = m; i < n; i ++

)// - 遍歷我手中的神兵放置的位置

for(

long

long i =

0; i < n;

++ i)

// - 將陣列返回遍歷前

if(i < m -

1)x -

= s2 *

distance

(i +

1, m)

;else

if(i >= m) k -

= s2 *

distance

(i +

1, m)

; num[i]

-= s2;

}// - 輸出

cout << ans << endl;

return0;

}

龍虎鬥(待填充)

noip2019普及組t2龍虎鬥 這不是篇閱讀題嗎?先看題軒軒和凱凱正在玩一款叫 龍虎鬥 的遊戲,遊戲的棋盤是一條線段,線段上有 個兵營 自左至右編號 1 相鄰編號的兵營之間相隔 1 厘公尺,即棋盤為長度為?1 厘公尺的線段。號兵營裡有 c?位工兵。下面圖 1 為 6 的示例 軒軒在左側,代表 龍 ...

題解 P5016 龍虎鬥

首先祝各位大佬noip有個好成績吧 當時比賽有個大資料,蒟蒻我暴力居然過了,好激動 這題一定要注意開long long 那個大資料就是我開long long才過的 還有剛開始應設定答案為m 見解析 include includeusing namespace std long long f1,f2,...

洛谷P5016龍虎鬥

哎呀,最近有點懈怠了 沒辦法,初三是真的忙 我盡量 哭泣 懂的都懂,這道題是基本的列舉模擬練習 現在讓我們來看看題 題目簡述 軒軒和凱凱正在玩一款叫 龍虎鬥 的遊戲,遊戲的棋盤是一條線段,線段上有 n個兵營 自左至右編號 1 n 相鄰編號的兵營之間相隔 1厘公尺,即棋盤為長度為 n 1 厘公尺的線段...