摘要:
代码如下 cpp include using namespace std; const int maxn=1e5+10; int n,a[maxn],b[maxn],cnt[10],mx; void read_and_parse(){ scanf("%d",&n); for(int i=1;i=1; 阅读全文
摘要:
题目大意:给定一棵 N 个节点的内向树森林,求该内向树森林的最小环的大小(按边计算)。 题解:先删链,再计算环的大小,统计答案即可。 代码如下 cpp include using namespace std; const int maxn=2e5+10; int n,ans,to[maxn],ind 阅读全文
摘要:
题目大意:给定一个 N 个节点的内向树森林,求从每个顶点出发能够到达的最多不重复顶点的个数是多少。 题解:内向树森林是由一个或若干个环加若干条链构成。可以先按照类似于拓扑排序的规则进行删链,再对环上的点计算答案,最后计算链上的答案即可。 代码如下 cpp include using namespac 阅读全文
摘要:
题目大意:给定一个 N 个点无向图的一棵生成树和另外 M 条边,第一次去掉生成树中的一条边,第二次去掉另外 M 条边中的一条边,求有多少种情况可以使得给定的无向图不连通。 题解:首先考虑该生成树,若新增加一条边,则会在树上形成一个环,这时若删除的树边在环上,则只有将环切断才能使得图不连通;若删除的树 阅读全文
摘要:
代码如下 cpp include using namespace std; const int maxn=5e5+10; inline int read(){ int x=0,f=1;char ch; do{ch=getchar();if(ch==' ')f= 1;}while(!isdigit(c 阅读全文
摘要:
题目大意:给定一个字符串和一个字符串集合,问从集合中选出若干个串组成给定母串的不同方案数。 题解:有些类似于背包问题。状态很好表示,为:$dp[i]$ 表示母串前 i 个字符的不同方案数,因此,有状态转移方程为:$$dp[i]=\sum dp[j],s[j+1...i]=s_0,s_0\in set 阅读全文