百度之星 初賽B

2021-08-22 19:13:07 字數 1194 閱讀 2510

a :傳送門:點我

求聯通塊個數,對於簡單圖而言,就是c=v-e,其中c就是聯通塊個數,v是頂點數,e是邊數

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

const int max_n = 2e5 + 10;

int n, m, k;

vectorg[max_n];

int vis[max_n];

int degree[max_n];

void dfs(int v, int p)

}int main()

int a, b;

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

int cnt = 0;

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

if (!vis[i])

int ans = 0;

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

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

}return 0;

}

d p1m2 傳送門:點我

二分答案,會超時,加乙個字首

#include #include using namespace std;

const int max_n = 3e5 + 10;

typedef long long ll;

int x[max_n];

int n;

ll sum[max_n];

bool cmp(int a,int b)

int check(int x)*/

}cnt=cnt-((ll)(n-i+1)*x-sum[i]);

if(cnt>0)

else if(cnt==0)

else return -1;

}int main()

sort(x+1,x+n+1,cmp);//求乙個字尾和

sum[n]=x[n];

for(int i=n-1;i>=1;i--)

int ans=-1;

while (l <= r)

else

r = mid-1;

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

}return 0;

}

2017百度之星初賽B場總結

a場因為不可抗力因素 沒能參加,b場還好算是磕磕碰碰地吃著低保過去了,真的菜呀 可以說還是比較一目了然的簽到題,由於這些點的橫縱座標都必須嚴格遞增,那麼我們最多能取到的點就是mi n n,m 個 方案數就相當於是在 max n,m 中選 min n,m 個的方案數,那麼答案就是c max n,m m...

2017百度之星初賽(B) 1001Chess

hdu 6114 題意 n行m列的矩陣,裡面盡可能的放最多的車,並且使得,車不相互攻擊 不同在一行或一列 同時要滿足,行數大的,列數也要大。思路 由於盡可能放最多的車。假設n大於m那麼最多可以放m輛車,那麼就從n中選m列出來放好車就行。所以答案是c n,m 主要是儲存一波c n,m 的打表模板。in...

2023年百度之星程式設計大賽初賽B

圓環 時間限制 1000ms 描述乙個圓環上有n個位置,這n個位置按順時針依次標號為1,2,n。初始時圓環的每個位置上都有乙個1至n之間的整數,且每個整數只出現一次。任何時刻,你可以將圓環上的數全部逆時針旋轉乙個位置,即第i個位置上的數變為原來第i 1個位置上的數,第n個位置上的數變為原來第1個位置...