摘要: 题意 一个大小为 $n m$ 的棋盘,知道每一列放了多少棋子,求有多少摆放方案满足要求。 $n,m\leq 50$ . 分析 如果是求是否有方案的话可以考虑网络流,行列连边,列容量为 $b_j$,行容量为 $m$ 。 考虑转化成一个最小割问题,假设$S\rightarrow row$ 有 $i$ 条 阅读全文
posted @ 2018-10-22 21:53 fwat 阅读(192) 评论(0) 推荐(0)
摘要: 题意 给你长度为 $n$ 的两个排列 $A,B$ 组成的序列,求最少的交换相邻数字的次数使得 $A,B$ 分别有序。 $n\leq 2000$ . 分析 如果只有一个排列时最少交换次数为逆序对数,方案可从小到大枚举数字 $a_i$,并向左移动直到前面的数有序且没有比 $a_i$大的数为止。 发现当前 阅读全文
posted @ 2018-10-22 16:47 fwat 阅读(249) 评论(0) 推荐(0)
摘要: 题意 "题目链接" 分析 直接背包之后可以 $O(n)$ 去除一个物品的影响。 注意特判 $[p==1]$ 的情况。 总时间复杂度为 $O(n^2)$ 。 代码 ~~~cpp include using namespace std; define go(u) for(int i=head[u],v= 阅读全文
posted @ 2018-10-22 12:49 fwat 阅读(126) 评论(0) 推荐(0)
摘要: 题意 给定一个 $n$ 点 $m$ 边的边权非负的有向图,边有字符,求以每个点为开头的最长路字典序最小的路径 $hash$ 值。 $n,m\leq 10^6$ 分析 首先建反图拓扑排序后入度不为0的点的答案为 $inf$ 。 在 $dep$ 相同时,怎么比较两种转移的优劣?注意到建完反图之后可以通过 阅读全文
posted @ 2018-10-22 08:49 fwat 阅读(237) 评论(0) 推荐(0)