- 博客(144)
- 收藏
- 关注
原创 【active contours without edges】level set水平集方法实现图像分割 论文详解+代码实现
基于level set(水平集方法)导的图像分割。区别于传统active contour活动轮廓,主要是根据图像的强度,利用数学方法进行迭代。
2021-12-27 11:45:20
3415
原创 【LuoguP1133 教主的花园】动态规划
link主要是写起来比较麻烦,思路很简答。可以先把第一个的状态定下来,然后向后更新,统计答案。第一个元素(j, k)所确定的以外的状态设为负无穷。注意,由于n为偶数, 奇偶性相同的土地同时位于波峰(波谷)#include <cstdio>#include <iostream>#include <algorithm>#include <cctype>#include <cmath>#include <vector>#i.
2021-05-14 21:50:52
175
原创 Coderforces #Div2 715 A~E 题解
A#include <cstdio>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <cctype>#include <cmath>#include <cstring>#include <stack>#include <tuple>#include <
2021-04-17 12:09:05
196
原创 CF1452D. Radio Towers
link#include <cstdio>#include <iostream>#include <algorithm>#include <algorithm>#include <vector>#include <queue>#include <cctype>#include <cmath>#include <cstring>#include <stack>#inc.
2021-04-08 17:24:23
115
原创 高精度(vector实现)
写了几个高精度,不得不说stl是真好用#include <cstdio>#include <iostream>#include <algorithm>#include <algorithm>#include <vector>#include <queue>#include <cctype>#include <cmath>#include <cstring>#include <
2021-04-06 10:38:57
235
原创 【P4720】 扩展卢卡斯
要注意的点还是很多的比如求n! mod (p^k)时, 对剩余不足一周期的部分(即计算remain时)i可能很大, remain * i很容易爆long long,注意要取模。#include <algorithm>#include <iostream>using namespace std;using ll = long long;ll gcd(ll a, ll b){ return b == 0? a: gcd(b, a % b);}ll exgcd(
2021-04-06 00:27:18
127
原创 【P1439】最长公共子序列
link一个很巧妙的映射关系,由于LCS的下标是递增的。于是转化成了求LIScode#include <cstdio>#include <iostream>#include <algorithm>#include <algorithm>#include <vector>#include <queue>#include <cctype>#include <cmath>#include <.
2021-04-03 10:10:36
69
原创 【AcWing482】 合唱队形 LIS问题
code很经典的二分求法,复习一下#include <cstdio>#include <iostream>#include <algorithm>#include <algorithm>#include <vector>#include <queue>#include <cctype>#include <cmath>#include <cstring>#define forn(i
2021-04-03 09:47:53
91
原创 【AcWing291】棋盘类压状dp
linkcode#include <cstdio>#include <iostream>#include <algorithm>#include <algorithm>#include <vector>#include <queue>#include <cctype>#include <cmath>#include <cstring>#define forn(i, n) for.
2021-04-02 21:22:06
100
原创 LuoguP4777 【模板】扩展中国剩余定理(EXCRT)
实际上是用递归推的,感觉和中国剩余定理的关系不大。变量很多,注意各个变量的含义#include <iostream>#include <cctype>#include <cstring>#include <cstdio>#include <vector>#include <set>#include <algorithm>#include <map>#include <unordered_
2021-03-29 15:10:34
108
原创 【LuoguP1495】中国剩余定理CRT模板
code用扩欧求逆原是要求互质的,因为这时候满足ax + by = gcd(a, b) = 1才有 ax = 1(mod b)。#include <iostream>#include <cctype>#include <cstring>#include <cstdio>#include <vector>#include <set>#include <algorithm>#include <map&g
2021-03-29 12:36:17
104
原创 First element at least X - 2
code#include <iostream>#include <cctype>#include <cstring>#include <cstdio>#include <vector>#include <set>#include <algorithm>#define forn(i, n) for (int i = 0; i < int(n); i++)using namespace std;usi
2021-03-24 23:11:33
157
原创 【CFcourse】First element at least X
link同上次一样,不同的是这次维护的是最大值。code#include <iostream>#include <cctype>#include <cstring>#include <cstdio>#include <vector>#include <set>#include <algorithm>#define forn(i, n) for (int i = 0; i < int(n); i++
2021-03-24 11:16:48
147
原创 【CFcourse】A. Segment with the Maximum Sum
In this problem, you need to write a segment tree to find the segment with the maximum sum.linkcode#include <iostream>#include <cctype>#include <cstring>#include <cstdio>#include <vector>#include <set>#include
2021-03-24 10:28:26
233
原创 C. Number of Minimums on a Segment
link同时维护线段树区间最小值和最小值的数量code#include <iostream>#include <cctype>#include <cstring>#include <cstdio>#include <vector>#include <set>#include <algorithm>#define forn(i, n) for (int i = 0; i < int(n); i++.
2021-03-24 00:21:06
190
原创 【LuoguP1776】 宝物筛选 多重背包 二进制优化
link时间复杂度变为O(wlogk) k为背包的总数code#include <cstdio>#include <iostream>#include <algorithm>#include <cctype>#include <cmath>#include <unordered_map>using namespace std;using ll = long long;const int N = 3e5 + 10;
2021-03-20 16:13:48
71
原创 【LuoguP1993】 小 K 的农场 差分约束
linkcode#include <iostream>#include <cstdio>#include <queue>#include <algorithm>#include <cstring>using namespace std;const int N = 5005;int dis[N], cnt[N], vis[N];int head[N];struct edge{ int to, nxt, val;}e[.
2021-03-20 09:39:58
84
原创 LuoguP2922 [USACO08DEC]Secret Message G 01Trie
code/*LuoguP2992同时维护01字典树每个节点经过的次数以及用f[N]对结尾标记 */#include <iostream>#include <algorithm>#include <cstdio>using namespace std;inline int read(){ int x = 0, op = 1; char ch = getchar(); while (!isdigit(ch)){ if (ch == '-
2021-03-20 08:56:10
107
原创 【CF706D】 Vasiliy‘s Multiset
link从高位到低位建立01字典树,支持插入,删除和最大异或路径的查询。code要提前insert一个0,防止出现类似于一开始query ? 1的情况#include <cstdio>#include <iostream>#include <algorithm>#include <cctype>using namespace std;inline int read(){ int x = 0, op = 1; char ch = .
2021-03-19 22:46:11
132
原创 CF1499D【D. The Number of Pairs】
linkcode还是要提前做一下记忆优化,要不然会T#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <vector>#include <algorithm>#include <set>#include <map>#define fr(i, n) for (int i = 0; i .
2021-03-19 19:21:33
99
原创 【CF1494】B. Berland Crossword
link突然发现这题有点意思,直接枚举,时间复杂度是O(1)dogecode#include <iostream>#include <cstdio>#include <algorithm>#include <cctype>#include <cstring>using namespace std;inline int read(){ int x = 0, op = 1; char ch = getchar(); .
2021-03-18 14:19:03
112
原创 【LuoguP4551】 最长异或路径 01Trie
linkcode#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <vector>#include <cctype>#include <map>using namespace std;inline int read(){ int x = 0, op = 1; char ch = .
2021-03-18 10:38:15
60
原创 【CF1401C】 Mere Array
linkcode#include <cstdio>#include <iostream>#include <algorithm>#include <map>#include <cctype>#include <cstring>using namespace std;const int N = 1e5 + 10;inline int read(){ int x = 0; char ch = getchar.
2021-03-16 07:12:42
102
原创 P1082 [NOIP2012 提高组] 同余方程
codeax + by = m方程有解的必要条件是m % gcd(a, b) = 0。又因为 ax + by = 1有解,所以可以推出gcd(a, b) = 1,于是可以用扩展欧几里得求得x。#include <cstdio>#include <iostream>#include <algorithm>using namespace std;void exgcd(int a, int b, int&x, int &y){ if (
2021-03-10 14:40:27
71
原创 【LuoguP3811】P3811 乘法逆元
code#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int N = 3e6 + 100;int inv[N], n, p;void solve(int num){ inv[1] = 1; for (int i = 2; i <= num; ++i) { inv[i] = (long long)(p
2021-03-10 14:01:05
91
原创 leetcode429 N叉树层序遍历
和二叉树层序遍历方法大同小异。/*// Definition for a Node.class Node { public int val; public List<Node> children; public Node() {} public Node(int _val) { val = _val; } public Node(int _val, List<Node> _children) {
2021-03-07 09:13:38
79
原创 leetcode107 树的层序遍历
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { *
2021-03-07 09:11:02
75
原创 leetcode404
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { int res = 0; public int sumOfLeftLeaves(TreeNode root
2021-03-07 09:09:02
223
原创 leetcode199二叉树的右视图 dfs
link传送门可见通过dfs来遍历二叉树获得其中的信息是很高效的。codeclass Solution { List<Integer> res = new LinkedList<>(); int maxdep = 0; public List<Integer> rightSideView(TreeNode root) { if (root == null) return res; dfs(root, 1
2021-03-07 00:24:04
65
原创 leetcode213 打家劫舍 II
要打劫元素构成了一个环,也就是说在满足不取相邻的数的前提下,第一个和最后一个不能同时取到。于是我们分别去掉第一个和最后一个数,进行两次动态规划,结果最大的就是答案。class Solution { public int rob(int[] nums) { if(nums.length == 1) return nums[0]; return Math.max(func(Arrays.copyOfRange(nums, 1, nums.length)),
2021-03-05 18:15:38
79
原创 LuoguP3796 【模板】AC自动机(加强版)
link链接code#include <iostream>#include <queue>#include <cstdio>#include <cstring>#include <algorithm>const int N = 1e6 + 10;using namespace std;struct Ans{ int num, pos;}ans[N];bool cmp(Ans a, Ans b){ if
2021-03-02 07:58:16
87
原创 LuoguP5960 【模板】差分约束算法
link链接分析一下是粗略的证明先假设这样的解是存在的,对未知数Xi,假设一共有k组差分约束,则容易推出Xi <= min{ , , ,}而通过建边用spfa得到的结果显然是满足这个条件的。为了维护图的连通性,需要加入超级源点对于存在负环的情况,SPFA可以判断,此时负环的意义就是Xi <= Xi + 某负数,很显然不会存在符合差分约束的解。code#include <cstdio>#include <iostream>#include <a
2021-03-01 20:39:16
167
原创 LuoguP2580字典树
link链接codetag[num] == 1表示从根节点到编号为num的节点所表示的字符串曾经出现过。为了判断是否重复,可以对已经重复的tag值修改为2.#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int N = 500010;int m, n, tr[N][26], tag[N];int cnt = 1;int main(
2021-03-01 19:28:41
104
原创 【CF1478C】Nezzar and Symmetric Array
code#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <cstring>using namespace std;typedef long long ll;int n;void sol
2021-01-29 10:46:28
277
2
原创 P3375 【模板】KMP字符串匹配
code#include <cstdio>#include <algorithm>#include <cstring>#include <cctype>#include <vector>#include <iostream>#include <map>#include <set>using namespace std;inline int read(){ int x = 0, op
2021-01-25 13:03:25
116
原创 【CF1462D】 Add to Neighbour and Remove
code#include <cstdio>#include <algorithm>#include <cstring>#include <cctype>#include <vector>#include <iostream>#include <map>using namespace std;inline int read(){ int x = 0, op = 1; char ch = getcha
2021-01-24 18:19:24
160
原创 P1823 [COI2007] Patrik 音乐会的等待 单调栈
单调栈链接栈底维护的是目前身高最高的人,因为在此人前的人因为此人的存在不能与后来的人联系了,所以如果遇到身高高的人就不断让比他身高矮的人出栈即可。不过我们还要留意身高相同的情况。由于要考虑重复的情况,用单调队列时将高度相同的人挤掉(统计答案)之后还要再加上去,这种情况遇到所有人身高相同的时候就退化成了O(n^2)的算法了,T了三个点。#include <cstdio>#include <algorithm>#include <cstring>#include
2021-01-22 21:13:36
242
原创 【P2947】 [USACO09MAR]Look Up S单调栈
链接code#include <cstdio>#include <algorithm>#include <cstring>#include <cctype>#include <vector>#include <iostream>#include <map>using namespace std;inline int read(){ int x = 0, op = 1; char ch = ge.
2021-01-22 19:20:34
269
原创 【P1496】 火烧赤壁 离散化 +差分
code#include <iostream>#include <cctype>#include <cstdio>#include <algorithm>#include <vector>#include <cstring>using namespace std;inline int read(){ int x = 0, op = 1; char ch = getchar(); while (!isdi
2021-01-22 16:59:58
188
原创 【LuoguP1955】 [NOI2015] 程序自动分析
链接传送门用并查集检验合理性,由于数据较大,需要做一下离散化。#include <iostream>#include <cctype>#include <cstdio>#include <algorithm>#include <vector>#include <cstring>using namespace std;inline int read(){ int x = 0, op = 1; char ch
2021-01-22 16:27:12
132
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人