摘要:
题目传送门 考试的时候又想到了小凯的疑惑,真是中毒不浅... 设每一个数都可以被分成若干个$k$和$k+1$的和。数$x$能够被分成若干个$k$和$k+1$的和的充要条件是:$x%k<=floor(x/k)$ 又因为$k$一定小于这个数列中最小的那个数,可以轻易想到的一个朴素的方法就是从$1$到$A 阅读全文
摘要:
直接上$bfs$,每一个状态记录下当前字符串的样子,空格的位置,和走到这个状态的答案。 用空格的位置转移,只有$50pts$ 考虑到题目一个性质:$W$只往右走,$B$只往左走,就可以过了。 1 #include<cstdio> 2 #include<algorithm> 3 #include<ve 阅读全文
摘要:
定义 对一个有向无环图(Directed Acyclic Graph简称DAG)$G$进行拓扑排序,是将$G$中所有顶点排成一个线性序列,使得图中任意一对顶点$u$和$v$,若边$(u,v)∈E(G)$,则$u$在线性序列中出现在$v$之前。 实现步骤 在有向图中选一个没有前驱的顶点并且输出 删除所 阅读全文
摘要:
题意居然还读了好久... 读完题目之后大概就知道拓扑排序了。用拓扑可以求出一些字母之间的关系,谁先,谁后。但是这个关系不是唯一确定的,所以就会产生多种方案(题目还要求按字典序输出所有的方案) 输出方案要麻烦一些,最刚开始还没有想到。可以用一个$dfs$,当这个点的入度变为$0$之后,就输出,递归到下 阅读全文