摘要: 只需要进行拓扑排序求一下路径总数就可以 但是我在求第二问的时候被坑了,因为我是求完之后枚举判断f[i]也就是到这个点的路径是否为0来判断是否到达 但是忽略了一种极端情况,也就是当次数是模数的整数倍的时候,答案经过取余后等于0,但这其实是已经到达了的 太坑了,刚开始真的没想到。 #include<io 阅读全文
posted @ 2020-04-08 22:45 朝暮不思 阅读(157) 评论(0) 推荐(0)
摘要: 这道题我们发现数据范围并不大,而且最重要的一点是,可以看的出区间dp的影子,也就是说长区间的最大值,完全可以通过两个小区间合并而来 因此我们考虑先暴力枚举每个区间的lis。之后进行区间dp计算 有几个注意点是,初始化的时候,只需要初始化长度至少为1的情况,在区间dp内部,有一步赋值操作 这一步的意义 阅读全文
posted @ 2020-04-08 22:38 朝暮不思 阅读(223) 评论(0) 推荐(0)
摘要: 依旧是数位dp问题,这里只需要预处理dp数组为前i位,当前位填j的合法方案有多少种, 然后套数位dp的板子就行 #include<iostream> #include<vector> using namespace std; const int N=10; int f[N][10]; int n,m 阅读全文
posted @ 2020-04-08 15:38 朝暮不思 阅读(110) 评论(0) 推荐(0)
摘要: y总的数位dp板子有点东西的,没有用记忆化搜索这东西。这题还是套板子,因为是模数,所以我们还是考虑建立状态为f[][][],表示前i个,最高位填j,模为k的值 #include<iostream> #include<vector> #include<algorithm> #include<cstri 阅读全文
posted @ 2020-04-08 15:08 朝暮不思 阅读(214) 评论(0) 推荐(0)