生哥的hu測

2021-08-07 10:01:10 字數 2257 閱讀 2241

今天的生哥hu測,都是思路題,**不長,對於思維的提公升很有幫助

可惜沒有全力去做。。。

分析:

不用sg函式的一道博弈

覺得xz的想法非常的好

如果我們想要留下乙個點的權值(假設為x)

當且僅當這個點只有一條連邊,這是我們就可以把這條邊練連的其他點乾掉

遊戲結束,如果我們不是在這種情況下進行了與x相連的邊的刪減

這就會導致這個點的主動權到了另乙個人手裡

因為兩人的目的完全不同,所以對手一定會刪掉x來逼近目的

所以先手乾脆在葉子上操作,一步結束遊戲

生哥的解釋更為科學一些:

假設說我們有一棵樹是這樣的:

葉子節點的找法 son[x]=0

如果根節點(1)只有乙個兒子,那ta也算是一種葉子結點

這裡寫**片

#include

#include

#include

using

namespace

std;

const

int n=501;

int n;

struct node;

node way[n<<1];

int v[n];

int st[n],tot=0;

int son[n];

void add(int u,int w)

void dfs(int x,int fa,int dep)

int main()

int ans=0;

dfs(1,0,1);

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

if (son[j]==0)

ans=max(ans,v[j]); //葉子節點中的最大值

分析:

好幾個人表示是貪心

記得ta爺說過:貪心千萬不要證明,證明不出來的

生哥:這個貪心你最好要證明一下

…在環上的走法,很明顯只有3種

如果走法3用了兩次

假設第一次我們在左半邊分發a個,右半邊分發b個

第二次我們在右半邊分發c個,右半邊分發d個

則左半部分a+c,右半部分b+d

這就導致有一部分是<=k

(因為a+b+c+d=2*k)

那我們還不如帶足了k個只分給半邊,這樣的花費一定 <= 轉兩圈

所以3

操作只能使用一次

同時顯然,在轉一圈的過程中,我們盡量給距離0遠的點分發

這樣我們分發的一定是乙個序列

這樣我們就可以列舉3操作時分發的區間

剩下的區間可以貪心求處答案

統計乙個最小值就可以了

我們把乙個環通過0拆成一條直線

f[i]表示發到i的最小花費

分析:

二分答案

二分是乙個很神奇的操作

就相當於是乙個水平線

把所有數字分成了大於ta和小於ta兩部分

我們把這兩部分用01編號

這樣原序列就變成了乙個01序列

接下來就可以dp了

f[i][j]表示第i位是j需要多少1

三位三位的轉移

生哥的hu測

今天的生哥hu測,都是思路題,不長,對於思維的提公升很有幫助 可惜沒有全力去做。分析 不用sg函式的一道博弈 覺得xz的想法非常的好 如果我們想要留下乙個點的權值 假設為x 當且僅當這個點只有一條連邊,這是我們就可以把這條邊練連的其他點乾掉 遊戲結束,如果我們不是在這種情況下進行了與x相連的邊的刪減...

關於HU的時間理論

1.我們無法回到過去的時間 2.我們能夠前往未來 3.過去和現在,未來有一定的聯絡,我們可以通過該聯絡,將過去的事件,在現在對映出來,即可以重現過去,但無法回到過去,也就是無法改變過去的事情。4.無法對映未來的事情即無法 未來。5.時間與空間有關,對映過去或者是去到未來,就得從空間下手,宇宙分為兩面...

三生有幸 認識西褲哥和小偉哥

感覺自己很幸運,同時認識了西褲哥和小偉哥。他們給我的感覺是不但技術過硬,而且為人謙虛,樂於助人。對我這個菜鳥來說,對他們兩個只能望其項背。慢慢的他們就成了我的崇拜偶像,很喜歡問他們一些問題。也很喜歡聽他們講一些東西,但是這樣的機會太少了,自己懂的也小。每當這個時候我就感覺到大學四年虛度時光帶來的負罪...