攜程程式設計大賽 (預賽第二場)

2021-06-21 12:07:46 字數 1427 閱讀 4824

a:和食物鏈做法一樣,帶權並查集

b:dp,01揹包背出所有能組成邊情況,在用這些情況去計算面積保留最大值

c:每個點從後往前搜,搜到合適就輸出,搜不到就輸出255 255 255

d:博弈,如果成對成對出現後手勝,否則先手勝

a:

#include #include const int n = 10005;

int t, n, m, parent[n], rank[n];

int find(int x)

int main()

int ans = 0;

while (m--)

else

}else }}

printf("%d\n", ans);

}return 0;

}

b:

#include #include #include #include using namespace std;

#define inf 0x3f3f3f3f

const int n = 805;

int n, num[n], dp[n][n], sum;

double cal(int a, int b, int c)

int main()

memset(dp, 0, sizeof(dp));

dp[0][0] = 1;

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

if (k - num[i] >= 0) }}

}double ans = -inf;

for (int i = 0; i <= sum / 2; i++) }}

if (ans < 0) printf("-1\n");

else printf("%d\n", (int)(ans * 100));

}return 0;

}

c:

#include #include const int n = 1005;

int n, m;

struct bit

} b[n];

int main()

}if (i == -1) printf("255 255 255\n");}}

return 0;

}

d:

#include #include const int n = 15;

int n, num, vis[105];

bool judge()

int main()

if (judge()) printf("win\n");

else printf("lose\n");

}return 0;

}

堅持.....

攜程程式設計大賽 (預賽第二場)第一題 剪刀石頭布

problem description 現有m個人一起玩剪刀石頭布,以1 m編號,每人出一種,出過不再改變,但是我們並不知道它到底是哪一種。其中石頭贏剪刀,剪刀贏布,布贏石頭,一樣則平 裁判用兩種說法對這m個人所構成的輸贏關係進行描述 一 1 a b 表示第a個人和第b個人出的一樣。二 2 a b ...

2014攜程第二場1004 奪旗 Nim變形

小時候玩過一種小遊戲,奪旗。遊戲規則 共有n組旗子,每組旗子數量已知,兩個玩家輪流拔旗,每次只能選 某 一組,拔掉一定數量的旗子,至少需要拔乙個,拔掉旗子之後,還可以將該組旗子中餘下的任意多個旗子中 任選幾個放到其它的任意一組或幾組裡。一堆旗子被拔空後就不能再往此處插旗了。先無法拔旗的人為輸者。假設...

程式設計之美初賽第二場

problem a 一邊輸入邊一邊維護殘留網路,然後跑isap。小資料過了,大資料tle。據說可以bfs預處理 層次網路。可以過。view code include include include include using namespace std const int inf 10000000 ...