摘要:
1124需要想那么一点点吧 一个连通块中肯定不需要伸进手不拿的情况 不是一个肯定会需要这种情况 然后注意一点 sum=0的时候 就输出0就可以了 不要再减一了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 vectored[510]; 9 int a[510][55],vis[510],de[510];10 void dfs(int u)11 {12 int i;13 for(i = 0 ; i < (int)ed[u].size() ; i... 阅读全文
摘要:
1742最小的是找联通块数 最大的找环 一个环算一个 其它的数各算一个 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 100010 9 int fa[N],vis[N];10 int minz,maxz,de[N],f[N],pp[N];11 void dfs(int u,int v)12 {13 de[u] = v;14 vis[u] = 1;15 f[v] = u;16 int i;17 if(... 阅读全文
摘要:
这题纠结好久了 看一神代码 想了N久才明白它的意思dp[i][j]表示放了i个数后和为J的方式有多少种而在算阶层总数的时候 会重一部分 而重的那一部分恰好为小于等于P的长度 所以就直接省了乘长度这一部分 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define LL long long 9 int a[55];10 LL dp[55][55];11 double pp[55];12 int main()13 {14 int i,j,k,n,p;1... 阅读全文