上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 29 下一页
摘要: 题目链接:http://poj.org/problem?id=1050 和序列中无长度限制的最大子段和相同,如果当前的sum>0,那么它还有一定的价值,所以继续往上累加;如果当前sum<0,即sum不仅没有价值,反而会使后面的和更小,所以将sum重置为0为最优。 矩阵中维护每一列上的前缀和,枚举所选 阅读全文
posted @ 2020-09-12 19:49 dfydn 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.com.cn/problem/P1016 贪心的策略是: 从起点/其中一个加油站出发,所能到达的所有加油站中,如果有比当前加油站价格便宜的,则从当前加油站加定量油正好跑到那个最近的价格便宜的加油站;如果都比当前加油站贵,则加满油并跑到价格最低的一个。 再 阅读全文
posted @ 2020-09-05 19:19 dfydn 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.com.cn/problem/P1005 会发现每一行之间没有影响,可以做n次区间DP。 设dp[i][j]表示区间[i,j]的取分最大值。如果从小区间向大区间转移,即 dp[i][j]=max(dp[i+1][j]+a[i],dp[i][j-1]+a[ 阅读全文
posted @ 2020-09-05 19:15 dfydn 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.com.cn/problem/P1541 设dp[i][j][k][q],表示1用了i个,2用了j个,3用了k个,4用了q个。那么此时的pos可以表示出来,每次取max。 AC代码 递推: 1 #include<cstdio> 2 #include<io 阅读全文
posted @ 2020-09-02 19:00 dfydn 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.com.cn/problem/P1352 设dp[i][0/1],dp[i][0]表示不选第i个职工的最大值,dp[i][1]表示选第i个职工的最大值。 转移: 如果不选第i个职工,那么他的下属可选可不选,即dp[i][0]+=max(dp[j][0], 阅读全文
posted @ 2020-09-01 22:32 dfydn 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.com.cn/problem/P3758 在不用矩阵优化之前,可以写递推/记忆化: 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 using namespace std; 5 阅读全文
posted @ 2020-08-31 22:55 dfydn 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.com.cn/problem/P2661 (最大环:https://www.luogu.com.cn/problem/P5145) 用拓扑排序,将能在拓扑队列中的所有点删掉,即这些点不能在环中,判环。 然后找出在环中的点,进行DFS,搜一遍环看它的sum 阅读全文
posted @ 2020-08-29 22:33 dfydn 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.com.cn/problem/P3593 首先找规律,发现:只有当原矩阵中每一行每一列的元素在转换成现矩阵后,仍在同一列、同一行便可以实现。 分别记录原来每个元素的位置及现在的位置。判断位置是否符合规律即可。 注意:数据为[-1e6,1e6],所以N要大 阅读全文
posted @ 2020-08-29 21:43 dfydn 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.com.cn/problem/P5145 用拓扑排序,将能在拓扑队列中的所有点删掉,即这些点不能在环中,判环。 然后找出在环中的点,进行DFS,搜一遍环看它的sum,取max AC代码: 1 #include<cstdio> 2 #include<ios 阅读全文
posted @ 2020-08-29 21:39 dfydn 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.luogu.com.cn/problem/P4015 建立源点s-->0,汇点t-->m+n+1,然后s连向i,流量为a[i],费用为0;j(i+m)连向t,流量为b[j],费用为0。 第一遍建图求最小流量。清空后再重建图,求最大流量(cost全部取反),和prio 阅读全文
posted @ 2020-08-19 20:33 dfydn 阅读(123) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 29 下一页