上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 27 下一页
摘要: #include<iostream> using namespace std; const int N = 20; string g[N]; int n; int maxv; int st[N]; void dfs(const string &s, int len, int u){ for(int 阅读全文
posted @ 2020-10-14 16:59 yys_c 阅读(74) 评论(0) 推荐(0) 编辑
摘要: $f(i, j)$表示走到第j个点,走过的路径情况是i的所有走法的集合,存储最短距离属性。 $f(i, j) = min {f(i, j), f(i - { j }, k)}, k = 0, 1, ..., n - 1$其中k是当前路径i下走到j的上一个点。 #include<iostream> # 阅读全文
posted @ 2020-10-14 13:38 yys_c 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 这题预处理比较蛋疼,因为可能出现陨石攻击区域重合和同一个格子多个陨石的情况,要先看一下这个位置是否被其他陨石影响,如果已经被影响,就应该取两者时间的较小值,随后更新当前这个陨石的影响范围,注意:如果这个陨石影响的区域中如果存在已经被其他陨石影响的情况,就取两者最小值,否则设置为当前陨石的时间 #in 阅读全文
posted @ 2020-10-14 11:22 yys_c 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 凡是存在边的两个点,设它们的边权为0,其他不存在边的两点之间的距离按照欧拉距离来算,这样只要求一遍最小生成树就可以得到加边的最小值。 复杂度:\(O(n^2)\) #include<iostream> #include<cstring> #include<cstdio> #include<cmath 阅读全文
posted @ 2020-10-13 20:10 yys_c 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题意:求从1到[2, n]中每一个点的最短路$k_i$,再求从[2, n]的每一个点出发到1的最短路$p_i$, 求所有$k, p$的和。 堆优化dijkstra \(O(nmlogn)\):40pts #include<iostream> #include<cstring> #include<qu 阅读全文
posted @ 2020-10-13 16:53 yys_c 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 历程 裸dijkstra \(O(QN^2)\),TLE 堆优化dijkstra \(O(QMlogN)\),TLE floyd \(O(QN^3)\),TLE floyd第一次优化 $O(QN^3) $, TLE floyd第二次优化 \(O(N^3)\), WA floyd第二次优化改写 \(O 阅读全文
posted @ 2020-10-13 14:19 yys_c 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 对于一个值x,如果能够满足牛之间的最短距离>= x,则所有小于等于x的值t均能够满足存在一种安排方法能够使奶牛之间的最短距离大于等于t。所以可以二分找最短距离的最大值。 复杂度:\(O(nlog(1e9))\) #include<iostream> #include<algorithm> using 阅读全文
posted @ 2020-10-12 18:13 yys_c 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 实数二分题,二分+贪心check 如果存在一种使用方法使得使用时间$\ge x$,那么所有小于等于x的时间t都能够满足条件。所以可以通过二分得到使用时间的最大值。 复杂度:\(O(nlog(T))\) #include<iostream> using namespace std; const int 阅读全文
posted @ 2020-10-12 17:09 yys_c 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 二段性:对于一个值x,如果能够通过添加不超过k个木棒使得最大距离小于等于x,那么所有大于x的值t都能够通过添加不超过k个木棍使得最大间距小于等于t. 复杂度:\(O(nlog(L))\) 还是类似的二分+贪心 #include<iostream> using namespace std; const 阅读全文
posted @ 2020-10-12 16:16 yys_c 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 坑点: 月利率可能大于1,二分范围要定在1~5 需要还的钱,随每个月的利息和还钱数变化 #include<iostream> using namespace std; double m, n; int k; int check(double v){ double sum = m; for(int i 阅读全文
posted @ 2020-10-12 12:19 yys_c 阅读(66) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 27 下一页