![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Source -- IOI
Object_S
Java C++
展开
-
[IOI2008]Island
题目地址 思路: 无向基环树森林求直径和。 对于每颗基环树,它对答案的贡献只有可能经过环或不经过,分类讨论即可。 首先处理出每个点往下的最大深度,顺便进行树形DP,再用单调队列获取经过环时的答案即可。 最终树形DP与单调队列的结果取max即可。 (注意内存,数组需要使用技巧二次利用) (该代码内存超限) #pragma GCC diagnostic error "-s...原创 2019-07-07 01:16:35 · 264 阅读 · 0 评论 -
P2746 [USACO5.3]校园网Network of Schools
题目地址 简述: 缩点后进行条件判定. 易错点: 首先,可以进行缩点. 子任务1:缩点后入度为零的强连通分量必须要有新软件. 子任务2:要求加边后形成一个强连通图。可以考虑到缩点后的DAG上每个点都必须同时具有入度和出度,就可以将没有入度的点的数量记为p,没有出度的点的数量记为q;由于没有出度的点可以直接连接没有入度的点,答案即为max(p,q). #include<cstd...原创 2019-07-22 13:26:16 · 98 阅读 · 0 评论 -
AW283 多边形
题目地址 易错点: 由于需要在一开始减少一条边且相邻输入数据在图上相邻,需要将输入的运算符复制一倍后向左平移一个单位. 乘法的状态转移需要注意负负得正,也就是说,最大值可以由两个最小值推导出来。因此,需要保存最小值,也就是使用f[l][r][0/1]分别保存最大/最小值。而最小值也有可能由多种情况推导出来,因此如果拿不准可以四种情况都尝试进行转移. 输出答案时不能直接输出f[1][n]...原创 2019-08-06 01:58:12 · 190 阅读 · 0 评论