牛客演算法周周練13水題

2021-10-07 15:52:35 字數 3043 閱讀 4993

powered by:ab_in 局外人

貪心演算法,最小的數當父節點,其他數均為子節點。

n =

int(

input()

)a =

list

(map

(int

,input()

.split())

)a.sort(

)print

(sum

(a)+a[0]

*(n-2)

)

依然是貪心,把獲得半價的權力給**高的即可。

#include

#pragma gcc optimize(2)

#pragma gcc optimize(3)

typedef

unsigned

long

long ull;

typedef

long

long ll;

ll a[

1001

],t,n,m,b;

using

namespace std;

namespace io

inline

voidpc(

char c)

inline ll read()

template

<

class

i>

inline

void

write

(i x)

class

flusher_

}io_flusher;

}using

namespace io;

intmain()

sort

(a+1

,a+1

+n);

ll j=

min(cnt,m)

;for

(int i=n;i>=n-j+

1;i--

) sum-

=1.0

*a[i]/2

;printf

("%.1lf\n"

,sum);}

}

洛谷原題,以前寫過,就直接把**搬過來了。

思路就是:從頭開始記下每個地毯的四個座標,然後從尾開始判定點是不是在地毯裡。

#include

using

namespace std;

const

int n=

1e5+1;

int a[n][5

],n,x,y,flag;

intmain()

}for

(int i=

1;i<=n;i++

) cin>>x>>y;

for(

int i=n;i>=

1;i--)}

if(flag==0)

cout<<

"-1";}

return0;

}

dp基礎題。

乙個點只能由它的,左上,正左,左下走來。(前一列的三個點)

所以要一列一列判斷。

則狀態轉移方程:

d p[

i][j

]=ma

x(ma

x(dp

[i−1

][j−

1],d

p[i]

[j−1

]),d

p[i+

1][j

−1])

dp[i][j]=max(max(dp[i-1][j-1],dp[i][j-1]),dp[i+1][j-1])

dp[i][

j]=m

ax(m

ax(d

p[i−

1][j

−1],

dp[i

][j−

1]),

dp[i

+1][

j−1]

)然而有些點可能無法到達,因為dp值為0,而金幣數》0,所以判斷一下:

i f(

dp[i

][j]

)dp[

i][j

]+=a

[i][

j]

;if(dp[i][j]) \ dp[i][j]+=a[i][j];

if(dp[

i][j

])dp

[i][

j]+=

a[i]

[j];

#include

#pragma gcc optimize(2)

#pragma gcc optimize(3)

#define rep(i,x,y) for (int i=(x);i<=(y);i++)

typedef

long

long ll;

ll a[

120]

[120

],n,m,dp[

120]

[120];

using

namespace std;

namespace io

inline

voidpc(

char c)

inline ll read()

template

<

class

i>

inline

void

write

(i x)

class

flusher_

}io_flusher;

}using

namespace io;

intmain()

} dp[1]

[1]=a[1]

[1];

rep(j,

2,m)

}write

(dp[n]

[m])

;return0;

}

完結。

牛客演算法周周練13

a 最小生成樹 小 a 有一張 n 個點的帶權無向圖,這張無向圖非常特別,首先第 i 個點有乙個點權 ai,之後這張無向圖是一張完全圖,且邊 u,v 的權值為 au 現在小 a 想找乙個這張圖的邊權之和最小的生成樹,需要你來幫幫他 題解 每個點都和最小那個點連線形成的樹即最小生成樹 注意 使用長整形...

牛客演算法周周練2

a 題意 求乙個數的順序和逆序之和。題解 其實就是個閹割版的高精度加法嘛。其實逆序數忽略前導零這個條件是沒有用的,因為順序數不可能有前導零,自然結果也不會有,然後注意下首位進製不取餘。include using namespace std int a 10 b 10 intmain for k j ...

牛客演算法周周練2

題目鏈結 include define sc x scanf lld x define pf printf define rep i,s,e for int i s i e i define dep i,e,s for int i e i s i using namespace std typede...