09 2019 档案

摘要:"题目描述" 思路 一开始,觉得应该对每个格子为0的进行dfs,为了进行顺序最优的dfs,要先从可选数量少的格子进行,这样对每个格子创建一个set,存储能够填的数。 然后就是根据size大小排序,选择最小的进行dfs。 然后发现每次dfs都要进行排序,set的二维数组得设在dfs函数内,排序的时候又 阅读全文
posted @ 2019-09-30 16:19 cabbage-leaf 阅读(342) 评论(0) 推荐(0)
摘要:"题目描述" 思路 一开始看这道题目,也不是很会,谁会把统计之类的问题和bfs联系在一起,没有开始的状态,没有结束的状态,题目中连一个最短之类的词也没有出现。 然后统计嘛,题目中说了方格高度都相同,就把周围的点都看一遍和这个点高度相同的就入队,把高度相同的点都打上浏览的标记。看的过程中,既有比它小的 阅读全文
posted @ 2019-09-29 22:00 cabbage-leaf 阅读(334) 评论(0) 推荐(0)
摘要:"题目描述" 思路 一开始想先写一个bfs,目标字符串要加上一个' ',表示这是一个换行符,然后一个字母一个字母的找,每次重置一下vis数组,bfs返回的结果再加上1,表示要打印这个字母,结果第一个样例没有过。 然后就开始看题意,发现没看懂这就话的意思,”光标总是跳到下一个在该方向上与当前位置不同的 阅读全文
posted @ 2019-09-29 17:33 cabbage-leaf 阅读(222) 评论(0) 推荐(0)
摘要:"题目描述" 思路 bfs主要问题就是走重复路的问题,需要设置一个vis数组防止走重复路,怎么把一个二维数组表示成一个数,扩展来说就是怎么把状态表示成一个数,看了别人的代码,可以二进制的数来记录状态,4x4的数组状态不会超过2^(17)。 然后就是怎么走的问题,规定只能向下,下右走,而向上,向左就是 阅读全文
posted @ 2019-09-28 11:57 cabbage-leaf 阅读(120) 评论(0) 推荐(0)
摘要:bfs 阅读全文
posted @ 2019-09-27 16:22 cabbage-leaf 阅读(191) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include include include int tar[10], tmp[10], rec[10]; bool vis[40500]; int fa[40500], ed, ans, ant; char act[40500]; int jc[10] = {1 阅读全文
posted @ 2019-09-27 15:15 cabbage-leaf 阅读(179) 评论(0) 推荐(0)
摘要:"题目描述" 思路 在图上进行广度优先遍历 边权相同,后来的比先来的付出的代价要大,直接从队尾入队 边权只有1, 0两种,0的累计代价要比1的累计代价小,小于等于队列中的其他点的代价,要从对头入队,1的从队尾入队 记录一个vis数组,记录经过此点的最小代价,防止重复走 题目给的是边,我们走的是点,要 阅读全文
posted @ 2019-09-26 16:43 cabbage-leaf 阅读(149) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 阅读全文
posted @ 2019-09-25 16:29 cabbage-leaf 阅读(473) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include include using namespace std; int n, k, ans; vector v; void dfs(int x, int pre, int cnt) { if (x 阅读全文
posted @ 2019-09-25 13:16 cabbage-leaf 阅读(105) 评论(0) 推荐(0)
摘要:"题目描述" 思路 三角形两边之和大于第三边 代码 c++ include include using namespace std; struct Node { double x, y; } a, b, c, d; int p, q, w; double getTime(Node a, Node b 阅读全文
posted @ 2019-09-25 12:38 cabbage-leaf 阅读(150) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include int n; double H, h, D, l, r, midl, midr, ans, ansl, ansr; double calc(double x) { return x + D (h x) / (H x); } int main() { 阅读全文
posted @ 2019-09-25 10:11 cabbage-leaf 阅读(136) 评论(0) 推荐(0)
摘要:"题目描述" 思路 二分的是结果,使用并查集保存各个点之间是否连通 a为开始的点,b, c为目标点, 在经过了某个时刻时,a直接到不了b,a直接能到c,光通过这两个条件不能确定a间接到不了b, a可能通过c再到达b 并查集维护的就是目标点之间的连通性,不光要验证a能不能到达b,还要验证目标点内部能不 阅读全文
posted @ 2019-09-25 08:58 cabbage-leaf 阅读(154) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 阅读全文
posted @ 2019-09-24 20:53 cabbage-leaf 阅读(258) 评论(0) 推荐(0)
摘要:"题目描述" 代码 阅读全文
posted @ 2019-09-24 13:47 cabbage-leaf 阅读(113) 评论(0) 推荐(0)
摘要:"题目描述" 思路 思路 阅读全文
posted @ 2019-09-21 16:53 cabbage-leaf 阅读(153) 评论(0) 推荐(0)
摘要:more +num 从第 num 行开始显示 空格键 翻滚下一屏 enter 翻滚一行 ctrl+b 翻滚上一屏 = 显示行号 q 退出 阅读全文
posted @ 2019-09-21 15:47 cabbage-leaf 阅读(126) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include include include long long n, avg, tot, arr[1000005], ans; inline long long int read() { long long s = 0, f = 1; char ch = get 阅读全文
posted @ 2019-09-21 14:58 cabbage-leaf 阅读(108) 评论(0) 推荐(0)
摘要:1. 排一次序后就可以得到答案 2. 排一次序只能得到这次的最优选择,需要多次排序,得到全部的最优答案 阅读全文
posted @ 2019-09-21 13:05 cabbage-leaf 阅读(97) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include int n, ans, pre; bool rec[1000006]; struct Node { int a, b; } arr[1000006], tmp; void qsort(int L, int R) { int l = L, r = R; 阅读全文
posted @ 2019-09-21 12:56 cabbage-leaf 阅读(195) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include int n, ans, pre; struct Node { int a, b; } arr[1000006], tmp; inline int read() { int s = 0, f = 1; char ch = getchar(); whil 阅读全文
posted @ 2019-09-21 11:00 cabbage-leaf 阅读(185) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include include include using namespace std; int n, arr[50005], save[50005]; int tmp[50005]; long long maxx, minn; const int inf = 0x 阅读全文
posted @ 2019-09-21 10:10 cabbage-leaf 阅读(273) 评论(0) 推荐(0)
摘要:1. 变量名和等号之间不能有空格 2. 单引号字符串里面的变量不会解析 3. 双引号字符串里面的变量会解析 阅读全文
posted @ 2019-09-20 18:27 cabbage-leaf 阅读(163) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 阅读全文
posted @ 2019-09-20 16:28 cabbage-leaf 阅读(140) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include int n, na, nb, ans; struct Node { int a, b, c; } aa[1005], bb[1005], tmp; inline int read() { int s = 0, f = 1; char ch = get 阅读全文
posted @ 2019-09-20 16:02 cabbage-leaf 阅读(164) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 阅读全文
posted @ 2019-09-20 14:37 cabbage-leaf 阅读(126) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 阅读全文
posted @ 2019-09-20 11:17 cabbage-leaf 阅读(139) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include include struct Node { int a, b; } arr[1005], tmp; int ans, pre, n; inline int read() { int s = 0, f = 1; char ch = getchar(); 阅读全文
posted @ 2019-09-20 10:43 cabbage-leaf 阅读(191) 评论(0) 推荐(0)
摘要:"题目描述" 思路 Treap 模板题 代码 c++ include include include const int MAX = 110000 + 5; int n, m, rt, tot, inf = 0x7f3f3f3f, ot; char str[100]; struct Node { i 阅读全文
posted @ 2019-09-20 10:18 cabbage-leaf 阅读(141) 评论(0) 推荐(0)
摘要:"题目描述" 思路 Treap树 + 延迟标记 代码 阅读全文
posted @ 2019-09-19 23:46 cabbage-leaf 阅读(155) 评论(0) 推荐(0)
摘要:du h ./dir 阅读全文
posted @ 2019-09-19 19:11 cabbage-leaf 阅读(179) 评论(0) 推荐(0)
摘要:cat S | wc l // 统计目录下所有以S开头的文件的行数 阅读全文
posted @ 2019-09-19 19:10 cabbage-leaf 阅读(105) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include include include include const int MAX = 8e4 + 5, mod = 1e6; int n, m, inf = 0x3f3f3f3f; int ans, rt, tot; bool flag; struct N 阅读全文
posted @ 2019-09-18 22:39 cabbage-leaf 阅读(204) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include include include include define min(a, b) ((a) = 2) cnt(r) , size(r) ; else if (!lc(r) || !rc(r)) r = lc(r) + rc(r); else if ( 阅读全文
posted @ 2019-09-18 17:11 cabbage-leaf 阅读(274) 评论(0) 推荐(0)
摘要:``` 和$(ls /etc) 是两种获取命令执行结果的方式。 for file in List 的语法里面的List 就是使用使用ls /etc 的命令执行结果作为List(https://www.shiyanlou.com/questions/59195/) shell !/bin/bash f 阅读全文
posted @ 2019-09-18 10:26 cabbage-leaf 阅读(231) 评论(0) 推荐(0)
摘要:"题目描述" 思路 尽量不要直接使用getchar得到单个字符,容易出现runtime error, 可以使用scanf("%s", str), 直接判断str[0]是否是对应字符就可以了。 代码 c++ include include define lc k '9') { if (ch == ' 阅读全文
posted @ 2019-09-18 10:07 cabbage-leaf 阅读(138) 评论(0) 推荐(0)
摘要:"题目描述" 思路 使用两个标记sum, flag(fg), sum表示安装软件的子节点有多少个;flag表示对这个区间的软件进行操作,1 全部安装, 1全部卸载,0不进行操作 代码 c++ include include define lc k '9') { if (ch == ' ') f = 阅读全文
posted @ 2019-09-16 00:50 cabbage-leaf 阅读(145) 评论(0) 推荐(0)
摘要:"题目描述" 思路 树链剖分更新子树x,由于线段树节点的顺序由dfs产生,所以更新的线段树区间为[dfn[x], dfn[x] + size[x] 1] 代码 c++ include include define lc k '9') { if (ch == ' ') f = 1; ch = getc 阅读全文
posted @ 2019-09-15 21:53 cabbage-leaf 阅读(210) 评论(0) 推荐(0)
摘要:"题目描述" 思路 树链剖分模板 代码 c++ include include define lc k (b) ? a : b) define FOR(a, b) for(int i=a;i '9') { if (ch == ' ') f = 1; ch = getchar(); } while ( 阅读全文
posted @ 2019-09-15 10:55 cabbage-leaf 阅读(355) 评论(0) 推荐(0)
摘要:nohup command myout.file 2 &1 & 指定nohup.out的文件名 jobs l 查看后台命令 阅读全文
posted @ 2019-09-12 22:18 cabbage-leaf 阅读(110) 评论(0) 推荐(0)
摘要:行号的打开 :set number 行号关闭 :set nonumber 搜索 :/xxx 复制 复制一行 yy 粘贴 p 删除 删除一行 dd 阅读全文
posted @ 2019-09-12 11:25 cabbage-leaf 阅读(142) 评论(0) 推荐(0)
摘要:题目描述(https://loj.ac/problem/10136) 思路 3个节点a,b,c选择(a,b)(a,c)(b,c)公共祖先深度最大的节点,3个节点的最大距离为每个节点到公共祖先的距离和 / 2; 代码 阅读全文
posted @ 2019-09-12 09:05 cabbage-leaf 阅读(114) 评论(0) 推荐(0)
摘要:"题目描述" 思路 读入的节点+1,代表树上的节点,这样0节点可以成为根节点的父节点,方便dfs 代码 c++ include const int MAX = 4e4 + 5; int n, m, root; int head[MAX], ver[MAX '9') { if (ch == ' ') 阅读全文
posted @ 2019-09-11 22:47 cabbage-leaf 阅读(227) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 阅读全文
posted @ 2019-09-11 16:57 cabbage-leaf 阅读(218) 评论(0) 推荐(0)
摘要:"题目描述" 思路 一本通的描述比较详细 "比较好的博客" 代码 阅读全文
posted @ 2019-09-11 11:14 cabbage-leaf 阅读(185) 评论(0) 推荐(0)
摘要:"题目描述" 题目概述 思路 代码 c++ include include const int MAX = 100005; int n, m, ans; int cnt[MAX], f[MAX][21], dep[MAX]; int head[MAX], ver[MAX = 0; i) { if ( 阅读全文
posted @ 2019-09-10 20:47 cabbage-leaf 阅读(334) 评论(0) 推荐(0)
摘要:"题目描述" 思路 lca 模板题 代码 c++ include include using namespace std; const int MAX = 1e5 + 5; int n, m; int head[MAX], ver[MAX '9') ch = getchar(); while (ch 阅读全文
posted @ 2019-09-10 16:36 cabbage-leaf 阅读(105) 评论(0) 推荐(0)
摘要:"题目描述" 思路 "借鉴" 代码 c++ include define lc k '9') ch = getchar(); while (ch = '0' && ch 1; build(lc, l, mid); build(rc, mid + 1, r); sum[k] = (sum[lc] + 阅读全文
posted @ 2019-09-10 15:53 cabbage-leaf 阅读(292) 评论(0) 推荐(0)
摘要:题目描述 思路 1. 0 和 1 开方之后不会改变,对 0, 1 节点打上标记 2. 如果孩子节点都打上标记了,说明这些孩子节点的和不会改变,那么父节点也打上标记 3. 对于打上标记的点,change 的时候直接 return 代码 c++ include include int n, m; lon 阅读全文
posted @ 2019-09-10 10:17 cabbage-leaf 阅读(160) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include include long long n, m; struct { long long at[1000005], arr[1000005 1; this build(k build(k add(k, l, r, v); return; } int mi 阅读全文
posted @ 2019-09-09 22:05 cabbage-leaf 阅读(237) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include include int n, m; struct { int at[1000005]; long long int arr[1000005 1; this build(k build(k r || y 1; this change(k change( 阅读全文
posted @ 2019-09-09 20:45 cabbage-leaf 阅读(166) 评论(0) 推荐(0)
摘要:"题目描述" 思路 1. 询问的是区间[L, R],完美序列的开始下标 = L 2. 二分查找序列中满足开始下标大于L的第一个位置x 3. ST算法求解[x, R]的最大长度 y 4. x L 和 y 的最大值为结果 代码 c++ include define max(a,b) ((a) (b) ? 阅读全文
posted @ 2019-09-09 16:49 cabbage-leaf 阅读(142) 评论(0) 推荐(0)
摘要:"题目描述" 思路 代码 c++ include include // include //using namespace std; define max(a, b) ((a) (b) ? (a) : (b)) define min(a, b) ((a) (b) ? (b) : (a)) int n 阅读全文
posted @ 2019-09-09 12:58 cabbage-leaf 阅读(179) 评论(0) 推荐(0)
摘要:"题目描述" 思路 RMQ 问题 ST算法 代码 c+++ include include define max(a, b) ((a) (b) ? (a) : (b)) int n, m; int arr[100005]; int f[100005][21], log[100005]; inline 阅读全文
posted @ 2019-09-09 11:29 cabbage-leaf 阅读(294) 评论(0) 推荐(0)
摘要:一维树状数组 c++ int lowbit(int n) return n & ( n); void update (int x, int y) { for (; x update(x, y) 区间查询 = sum(x)实现的是求[1, x]的和,求[L, R]的和就是sum(R) sum(L 1) 阅读全文
posted @ 2019-09-09 10:19 cabbage-leaf 阅读(250) 评论(0) 推荐(0)
摘要:"题目描述" 思路 update是从(x,y)处往下更新,sum是求(x,y)到(0, 0)的和 lowbit(x) 表示二进制下x的最低位的1与它后面的0构成的树,那么对于奇数来说就是1 |x| 1 | 2 | 3 | 4 | 5| 6| | | | | | | | | |二进制| 1| 10 | 阅读全文
posted @ 2019-09-09 09:09 cabbage-leaf 阅读(437) 评论(0) 推荐(0)
摘要:"题目描述" 思路 因为树状数组update是会一直更新到最后的节点,查询的也是端点的情况,所以用两个树状数组来维护一段区间 每次给定一个区间(l, r)变换, 就是update(l, 1, start), update(r, 1, ed) 注意 update(r, 1, ed), 而不是updat 阅读全文
posted @ 2019-09-09 07:26 cabbage-leaf 阅读(152) 评论(0) 推荐(0)
摘要:"题目描述" 思路 用一个数组记录lowbit的值 代码 c++ include include int n, k; char st; int arr[500005], lowbit[500005]; void update(int x, int y) { while (x 阅读全文
posted @ 2019-09-08 21:02 cabbage-leaf 阅读(256) 评论(0) 推荐(0)
摘要:"题目描述" 思路 题目的意思是在[l, r]的所有整数位置都种树,每个点可以重复种,问[L, R]的树有多少种 一个树状数组start保存l,一个树状数组end保存r,保存的方式就是从update(x, 1) start 表示从l开始就可以种树了,end 表示从r就不可以种树了 sum函数 求得就 阅读全文
posted @ 2019-09-08 18:38 cabbage-leaf 阅读(179) 评论(0) 推荐(0)
摘要:"题目描述" 思路 1. 首先确定每个点是第几级 2. 然后统计第几级共有多少个点 首先,确定当前点是第几级,也就是找出这个点左下方有多少个点(不包括本身),由于给出的点是按y坐标从小到大排序,y坐标相同,x坐标从小到大排序,也就是说这个点以后的点因为y坐标过大或和当前点的y坐标相等(此时可以忽略x 阅读全文
posted @ 2019-09-08 11:03 cabbage-leaf 阅读(195) 评论(0) 推荐(0)
摘要:题目描述 这是一道模板题。 给定数列a[1], a[2], ..., a[n],你需要依次进行 q 个操作,操作有两类: 1 i x:给定 ,将 i 加上 x; 2 l r:给定 ,求 l 到 r 的和 输入格式 第一行包含 2 个正整数 ,表示数列长度和询问个数。保证 。 第二行 n 个整数 ,表 阅读全文
posted @ 2019-09-08 10:41 cabbage-leaf 阅读(661) 评论(0) 推荐(0)
摘要:"题目描述" 思路 使用哈希值表示较长串的子串的值,直接比较哈希值是否相等 代码 c++ include include using namespace std; char a[1000005], b[1000005]; unsigned int sum[1000005], sumb, bt[100 阅读全文
posted @ 2019-09-08 09:05 cabbage-leaf 阅读(220) 评论(0) 推荐(0)
摘要:"题目描述" 思路 使用字符串产生两个哈希值,一个哈希值决定链表的头,另一个哈希值决定在某个链表头的后面的某个位置。 代码 c++ include include include int n; char a[10], b[209]; int bs = 37, h1 = 90001, h2 = 900 阅读全文
posted @ 2019-09-08 08:40 cabbage-leaf 阅读(209) 评论(0) 推荐(0)