2020年2月22日

cf877D

摘要: 题意简述:矩阵中有的点不能走,你每次可从四个方向走,至少走一步,最多走k步(不能横跨那些不能走的格子),问从(sx,sy)走到(tx,ty)的最短时间是多少? 题意:利用set来加速bfs的过程,原理是一个点一旦走过就不需要再去走了,具体看代码 #include <bits/stdc++.h> us 阅读全文

posted @ 2020-02-22 22:57 欣崽 阅读(234) 评论(0) 推荐(0)

cf912D

摘要: 题意简述:往n*m的网格中放k条鱼,一个网格最多放一条鱼,然后用一个r*r的网随机去捞鱼,问怎么怎么放鱼能使得捞鱼的期望最大,输出这个期望 题解:肯定优先往中间放,这里k不大,因此有别的简单方法,否则推公式各种情况烦死人,我们对于每一行来说将中间的数加进去,然后用set来维护k次就好了 #inclu 阅读全文

posted @ 2020-02-22 22:29 欣崽 阅读(257) 评论(0) 推荐(0)

cf936B

摘要: 题意简述:给出一个有向图,问从s出发是否能找到一条长度为奇数的路径并且路径的端点出度为0,存在就输出路径,如果不存在判断图中是否存在环,存在输出Draw,否则输出lose 题解:类似于DP,将每一个点拆成两个点,d[x][0]=1表示存在一条s到x存在一条长度为奇数的路径,d[x][1]相反,然后正 阅读全文

posted @ 2020-02-22 21:29 欣崽 阅读(229) 评论(0) 推荐(0)

cf949C

摘要: 题意简述:有n个点,每一个点都有一个权值,然后有m个条件,每一个条件是a[x]!=a[y],让选择最少的点且至少选择1个,然后让这个点的权值+1,使得条件仍满足 所有数对k取模 题解:如果a[x]+1=a[y]那么x向y连边,a[y]+1=a[x]那么y向x连边,此时答案等于缩点之后出度为0的分量中 阅读全文

posted @ 2020-02-22 16:39 欣崽 阅读(294) 评论(0) 推荐(0)

cf938D

摘要: 题意简述:n个点m条边的无向图,有点权,有边权, 对于每一个点计算,d(i,j)表示点i到点j的最短路 题解:边权扩大二倍,建立源点,然后源点向每一个点x连接一条权值为a[x]的边,然后跑最短路即可 #include<bits/stdc++.h> #define forn(i, n) for (in 阅读全文

posted @ 2020-02-22 16:07 欣崽 阅读(270) 评论(0) 推荐(0)

cf959E

摘要: 题意简述:一个包含n个点的完全图,点的编号从0开始,两个点之间的权值等于两个点编号的异或值,求这个图的最小生成树 规律是 ∑ i from 0 to n-1 (i&-i) #include <iostream> using namespace std; int main() { long long 阅读全文

posted @ 2020-02-22 16:00 欣崽 阅读(225) 评论(0) 推荐(0)

cf960F

摘要: 输入给出m条边,要求找到一条最长的路径满足边按照输入的顺序出现并且权值严格递增 两种方法:第一种利用单调队列性质 第二种利用数据结构优化 #include<bits/stdc++.h> #define forn(i, n) for (int i = 0 ; i < int(n) ; i++) #de 阅读全文

posted @ 2020-02-22 15:16 欣崽 阅读(217) 评论(0) 推荐(0)

cf999E (强联通分量模板题)

摘要: 给出n个点m条边的有向图,问至少添加多少条边使得任何点都可以从s点出发可达 #include<bits/stdc++.h> #define forn(i, n) for (int i = 0 ; i < int(n) ; i++) #define fore(i, s, t) for (int i = 阅读全文

posted @ 2020-02-22 13:29 欣崽 阅读(237) 评论(0) 推荐(0)

导航