摘要: 目录: 16.91B.Queue(树状数组/线段树) 17.431C.K-Tree(树形DP+容斥) 18.1084D. The Fair Nut and the Best Path(树形DP) 19.1187C. Vasya And Array(构造) 20.768B. Code For 1(分治 阅读全文
posted @ 2020-03-01 16:23 overrate_wsj 阅读(444) 评论(0) 推荐(0) 编辑
摘要: P2341 [USACO03NOV][HAOI2006]受欢迎的牛 G /【模板】强连通分量 思路: 题目中问的是有多少牛受到所有牛的欢迎,因为本题具有传递性,则在图中,每个强连通分量中的奶牛都是互相喜欢的。所以,只要跑一遍Tarjan,图变成DAG有向无环图。 因为每一头奶牛都需要得到其他牛的欢迎 阅读全文
posted @ 2020-02-27 17:36 overrate_wsj 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 目录: 1.1093D. Beautiful Graph(DFS染色) 2.514C - Watto and Mechanism(Tire) 3.69E.Subsegments(STL) 4.25C. Roads in Berland(最短路松弛操作) 5.128B. String Problem 阅读全文
posted @ 2020-02-27 17:20 overrate_wsj 阅读(285) 评论(0) 推荐(0) 编辑
摘要: A. Add Odd or Subtract Even 思路: 相同直接为0,如果两数相差为偶数就为2,奇数就为1 #include<iostream> #include<algorithm> using namespace std; int main(){ int kk; scanf("%d",& 阅读全文
posted @ 2020-02-25 17:17 overrate_wsj 阅读(389) 评论(1) 推荐(1) 编辑
摘要: P1005 矩阵取数游戏(区间DP+高精度) 题意: 有一个n×m的矩阵,对于第i行,每次取走边缘的值A[i][j],增加这一行的得分x,求n行的最大得分总和 思路: 求n行最大得分和,每一行取数又不会影响到其他行,那么只要确保每一行得分最大,管好自家孩子就行了。(这个在动规中叫最优子结构) 每次取 阅读全文
posted @ 2020-02-24 16:48 overrate_wsj 阅读(213) 评论(0) 推荐(0) 编辑
摘要: A - Beginner(模拟) #include<iostream> #include<algorithm> #include<vector> using namespace std; typedef long long ll; int main() { ll n,r; cin>>n>>r; if 阅读全文
posted @ 2020-02-22 22:11 overrate_wsj 阅读(254) 评论(2) 推荐(0) 编辑
摘要: P1064金明的预算方案(有依赖的背包问题) 题意: 金明有n元钱,每个物件有对应的价值与重要程度,金明希望购物物品的价值乘上重要程度和最大,请求出最大和,现在有些物品为一些其他物品的附属品,如果要买归类为附件的物品,必须先买该附件所属的主件 思路: 带有附件的背包问题,它属于01背包的变式。 即然 阅读全文
posted @ 2020-02-22 14:22 overrate_wsj 阅读(206) 评论(0) 推荐(0) 编辑
摘要: P1004方格取数(四维DP模板题) 题意: 一个矩阵,A从左上角走到右下角,B从右下角走到最下角问AB走过的路径和最大是多少,一个点只能被计算一次 思路: 定义dp[i][j][k][l]为A走到(i , j) B走到 (k , l) 的最大值 那么状态转移方程就为dp[i][j][k][l]=m 阅读全文
posted @ 2020-02-20 13:33 overrate_wsj 阅读(434) 评论(0) 推荐(0) 编辑
摘要: P3808【模板】AC自动机(简单版) 题意: 本题就是一个最裸的AC自动机模板,问有多少个模式串在文本串中出现,直接套板子即可 #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<qu 阅读全文
posted @ 2020-02-19 00:23 overrate_wsj 阅读(651) 评论(0) 推荐(0) 编辑
摘要: A. Cow and Haybales 思路: 在任何时候,最理想的做法是将最近的一堆草垛从桩1移到左侧。 因此,每天,我们都可以从左到右遍历一堆桩,并将我们看到的第一个草垛移近。 如果某个时候所有干草捆都堆放在第1堆中,我们可以早点停下来 #include<cstdio> #include<cst 阅读全文
posted @ 2020-02-18 13:56 overrate_wsj 阅读(300) 评论(1) 推荐(0) 编辑