摘要: 之前是紫书上看的,这个是算法进阶指南上的,感觉这个思路更加清晰容易,这个是用邻接表存有向图,如果a在b的前面那么a->b同时b的入度加一。拓扑排序就是先找入度为0的点,然后在广度优先遍历与这个点相邻的点,将它减去与x相邻的这个入度1之后看看是否为零,为零的话可取,最后判断数组a中是否有n个点,如果小 阅读全文
posted @ 2018-11-22 15:58 paranoid。 阅读(160) 评论(0) 推荐(0) 编辑
摘要: #include using namespace std; int main() { int n; scanf("%d", &n); for(int i=1; i<(1<<n); i++) { for(int j=0; j<=n; j++) { if(i&(1<<j)) pr... 阅读全文
posted @ 2018-11-22 15:49 paranoid。 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题目意思是给你一个n长度的数字串为a,让你构造一个n长度的数字串b值都为1-5满足以下条件: 正常的dfs暴力构造会超时,我试过了。。 可以开一个二维数组dp[i][j]用来表示b的第i个数字为j是否可行,标记为1或0; 因为第i个数字的大小只会影响第i+1个数字,每次确定i都根据第i-1的数字来判 阅读全文
posted @ 2018-11-22 08:49 paranoid。 阅读(238) 评论(0) 推荐(0) 编辑