摘要:
题意:给n张牌,让你取出不包括两端的n-2张,每次取出时会获得相当于该牌和相邻两牌点数成绩的分数,要求最终分数最小 设f[i][j]为抽光区间[i,j]所获得的最小分数,然后 f[i][j]=min{f[i][k-1]+f[k+1][j]+val[i-1]*val[k]*val[j+1]},i<=k 阅读全文
摘要:
题意:给n堆石子,每次合并相邻两堆,花费是这两堆的石子个数之和(1和n相邻),求全部合并,最小总花费 若不要求相邻,可以贪心地合并最小的两堆。然而要求相邻就有反例 为了方便,我们可以把n个数再复制一遍,放到第n个数后,就不用考虑环的问题了 我们设f[i][j]为合并区间[i,j]所需要的最小花费,然 阅读全文
摘要:
tarjan缩点后,第一问答案显然是入度为零的点得个数第二问:考虑到 没有入度或出度为0的点 的图强连通, 所以答案就是max{入度为零的个数,出度为零的个数} (把出度为零的连到入度为零的点,然后剩下为零的随便连一连就可以) 阅读全文
摘要:
求(m*10^k+x)%n即可 阅读全文
摘要:
tarjan缩点,然后按照拓扑序,做1号点能到达的点的答案具体做法是对每个点记一个min[i],max[i],vis[i]和ans[i]做拓扑序的时候,假设在从u点开始做,有边u到v,如果vis[u]=1,则则 vis[v]=1(初始时vis[bel[1]]=1); 更新在v点及以前买进的最小进价: 阅读全文
摘要:
缩完点后对每次询问做dijkstra即可 阅读全文
摘要:
题意:给一个有向图,问要从0号点能到达所有点所需要经过路径的最小权值和是多少,然而,若两点强联通,则这两点互相到达不需要花费。保证0号点能到达所有点 tarjan缩点以后直接取每个点入边中花费最小的即可。 阅读全文