自嗨測試賽4

2022-06-27 03:51:10 字數 3548 閱讀 4186

在出題組,沒啥參考價值。出題的時候3個題乙個都不會

題目大意 : 每個點規定是兒子的值的min或max,k個葉子結點的值可以是1到k,每個數只能用一次,求根節點的最大值

show code

#include #include using namespace std;

const int n = 3e5 + 5;

int read(int x = 0, int f = 1, char c = getchar())

struct edge e[n];

int h[n], edc;

void add(int x, int y) ; h[x] = edc;

}bool v[n];

int n, m;

int dfs(int x)

int main()

題目大意 : 給乙個二維畫布,在畫布上規定區間找到面積最大的圖案

show code

#include #include using namespace std;

const int n = 505;

int read(int x = 0, int f = 1, char c = getchar())

char c[n];

int n, m, q;

struct node

int cal(int i, int j, int k, int l)

}s[4], f[n/2];

int main()

s[0].init(); s[1].init(); s[2].init(); s[3].init();

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

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

for (int k = 1, lim = min(n - i, m - j) + 1 >> 1; k <= lim && s[0].cal(i, j, k, k) == k * k; ++k)

if (s[1].cal(i, j + k, k, k) == k * k && s[2].cal(i + k, j, k, k) == k * k && s[3].cal(i + k, j + k, k, k) == k * k)

f[k].s[i][j]++, k = lim;

for (int k = min(n, m) >> 1; k >= 1; --k) f[k].init();

while (q--)

printf("%d\n", 4 * l * l);

}return 0;

}

題目大意 : 問能否在兩行裡放一棵樹,滿足樹邊不相交

show code

#include #include using namespace std;

const int n = 1e5 + 5;

int read(int x = 0, int f = 1, char c = getchar())

struct edge e[n*2];

int h[n], edc, d[n];

void add(int x, int y) ; h[x] = edc; d[x]++;

}bool v[n], g;

int n, a[n], cnt;

bool dfs(int x, int fa, int k)

void solve()

void dfs(int x, int fa)

int main()

for (int i = 1; i <= n && !g; ++i) dfs(i, 0);

puts(g ? "yes" : "no");

}return 0;

}

show code
#include #include using namespace std;

const int n = 1e5 + 5;

int read(int x = 0, int f = 1, char c = getchar())

struct edge e[n*2];

int h[n], edc, d[n];

void add(int x, int y) ; h[x] = edc; d[x]++;

}bool g;

int n;

bool solve(int x, int fa, int k)

return 0;

}else

}int main()

if (n == 1) g = 1;

for (int x = 1; x <= n && !g; ++x) }}

}}puts(g ? "yes" : "no");

}return 0;

}

如果將乙個點看作是在主幹上的點,周圍連著1個或2個不能放在第二行的點,那麼可以將這1個或兩個點放在主幹上,在多就放不下了,所以周圍有3個及以上不能放在第二行的點的話,這顆樹就不能在遊戲裡實現

判斷連出去的鏈會不會分叉,可以從葉子節點開始,將度數小於等於2的點刪去,這樣刪去的點那一邊連出去的鏈就一定不會分叉了(列舉點的時候就不列舉刪去的點了)

最後有個問題就是,如果有乙個點周圍有兩個放不下的,然後就把這三個都放在主幹上,這樣就能放下。可是如果有很多個點都需要放在主幹上,那會不會衝突呢,畢竟放在主幹上的只能是一條鏈

對於這個問題,就是如果衝突,就是說這些點不再一條鏈上,連出來的圖形中有分叉點,可是想一下分叉點一定至少有三條路,這三個點一定都不能放在第二行,所以不會出現衝突

show code

#include #include using namespace std;

const int n = 1e5 + 5;

int read(int x = 0, int f = 1, char c = getchar())

struct edge e[n*2];

int h[n], edc, d[n];

void add(int x, int y) ; h[x] = edc; d[x]++;

}bool v[n], g;

int n, c[n];

void dfs(int x, int fa)

int main()

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

if (d[i] == 1) dfs(i, 0);

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

for (int i = h[x]; i; i = e[i].n)

c[x] += v[e[i].t];

for (int x = 1; x <= n && g; ++x)

if (cnt > 2) g = 0;

}puts(g ? "yes" : "no");

}return 0;

}

你自嗨型的年度計畫能嗨到年底嗎?

時光飛逝,枯燥無味的開場白。畢業後的日子,上班 賺錢 其實也就這點追求了。從大學步入社會,又恰逢本命年,人也長大了一歲。好像人一長大,就會把很多東西給弄丟。比如那些簡單卻能讓自己充實開心的東西,還有那些曾經一起結伴同行的人。元旦放假回來,公司也沒什麼事情,以前年初總會寫一些自嗨型的年度計畫,到了年末...

智慧型手錶ROM 一場自嗨?

近期幾家創業公司都推出了第三方智慧型手錶rom,他們瞄準的是可穿戴這個大風口 巨頭們都在做智慧型手錶,而android wear在國內處於爆發前夜。這些rom最直接的影響是讓水貨android wear手錶在國內變得可用,而長期的野心是押注智慧型手錶會成為下乙個智慧型手錶或平板電腦,而他們可以成為下...

自嗨的最高境界是做個播客

09年開始,從天津 twitter 圈發源,聚出了乙個很好玩的小群體,這個群體的特點是每個人從事的行業都不太一樣,接觸的人和事也都不同。所以當這個小群體從線上走到線下之後,大家發現每次吃飯聊天都能學到不少知識,從此每週固定的飯局活動到今天都沒有停下來的意思。從11年開始重度的聽播客,所以自己做個播客...