比值排序 Kill the monster

2022-05-04 02:06:11 字數 894 閱讀 1126

\(n\)個怪獸,每個怪獸有\(hp\)血量和\(atk\)攻擊值,每一秒英雄都會受到所有存活怪獸的攻擊,英雄攻擊每個怪獸的傷害等於攻擊當前怪獸的次數,第一次攻擊第i個怪獸的傷害為\(1\),第二次為\(2\),計算英雄殺光所有怪獸後承受的最小攻擊

\(t:10^\)

\(n:(1,10^)\)

所有測試資料的\(n\)的和\(<10^\)

\(1\leq hp,atk \leq 10^\)

總體思想:先搞死傷害高的

\(n\)個怪獸每個怪獸最大都是\(10^\),總和會爆int,使用long long

將每個怪獸的存活時間計算出,計算出它的平均傷害

按照平均傷害為第一關鍵字,攻擊值為第二關鍵字從大到小排序

比值排序有精度誤差 ,可以改成這樣: $\frac > \frac = a\times d > b\times c $

#pragma gcc optimize(3,"ofast","inline")

#include #define ll long long

using namespace std;

const int n=1e5+10;

struct monstermon[n];

inline ll alive(ll x)

}return tim;

}inline bool cmp(struct monster a,struct monster b)

int main()

ll hurt=0;

sort(mon+1,mon+n+1,cmp);

for (int i = 1; i <=n ; ++i)

cout<<"case #"<}

return 0;

}

比值排序 奎奎發紅包

n 個人,每個人有乙個親密值 v 和等待時間 t 每個人的花費是前面所有人包括自己的等待時間和乘親密值,求所有人花費的最小值 0 n 100000 0 leq v t leq 10000 考慮有兩個人 i,j 的情況 展開後分別是 去掉相同項 v t v t 後為 如果 v t v t 即 frac...

Enum列舉型別比值

在編碼時,兩個enum例項,直接用 就可以比較它們的值了,而不是比較這兩個object的位址。這顯然和通常的object不一樣。而且,在jdk7之後,列舉還能用在switch case開關語句中。enum不是primitive型別,卻可以用 比較,這是為什麼呢?enum本身可以是多例項的,關鍵在於,...

12 奇妙的比值

明明喜歡鑽研各種各樣的數學問題。一天,明明對數的因子產生了興趣,他想把乙個數的所有因子都找出來,然後把它們相加再去除以這個數,這樣會得到乙個比值。明明想看看不同的數的該比值會有什麼不同,以便做研究。例如6這個數,它一共有4個因子,分別是 1 2 3 6,把他們相加然後再除以6,即1 2 3 6 12...