随笔分类 - 好题
摘要:传送门:https://ac.nowcoder.com/acm/contest/11160#question A 小G的sum 题目大意:1-n每个数的最小约数和最大约数之和 题解:这不就是1和它本身么..等差数列求个和 (开long long保平安) B小G的GCD 题目大意:小G给你两个数n,k
阅读全文
摘要:传送门 题目大意:N*N的矩阵,a[i][j]=i*i+100000*i+j*j-100000*j+i*j,求矩阵中第K小。 N<=5*10^4 题解: 打个表,发现每一列从上往下单调递增。 在大范围内二分搜索,二分第k小为x,然后再二分找矩阵中有多少个比x小的数。 代码:
阅读全文
摘要:Problem 1 Graph (graph.cpp/c/pas) 【题目描述】 给出 N 个点,M 条边的有向图,对于每个点 v,求 A(v) 表示从点 v 出发,能到达的编号最大的点。 【输入格式】 第 1 行,2 个整数 N,M。 接下来 M 行,每行 2 个整数 Ui,Vi,表示边 ⟨Ui,
阅读全文
摘要:传送门 题目大意: n头牛,上山时间为u(i),下山为d(i). 要求每一时刻最多只有一头牛上山,一头牛下山。 问每头牛都上下山后花费最少时间。 题解:贪心 推了推样例,发现上山时间一定,那找个下山最快 的当最后一头山上的牛。 #include<iostream> #include<cstdio>
阅读全文
摘要:传送门 题目大意:有个n*m的格子图,要求'x'点要被染成黑色 有个a*b的印章,'x'是可以染色的印章上的点。 要求用印章去染色格子 (1)印章不可以旋转。 (2)不能把墨水印到纸外面。 (3)纸上的同一个格子不可以印多次。 题解:模拟 从题目中可以看出,一定要让印章的左上角对应目前n*m方 格中
阅读全文
摘要:传送门 题目大意: n头牛,其中最高身高为h,给出r对关系(x,y) 表示x能看到y,当且仅当y>=x并且x和y中间的牛都比 他们矮的时候,求每头牛的最高身高. 题解:贪心+差分 将每头牛一开始都设为最高高度。 每一对关系(x,y),我们将[x+1,y-1]这个区间的身高变为 min(x,y)-1.
阅读全文
摘要:题目大意: 一棵有根的有点权的树。 每次可以取某个叶子结点到根的路径的点权和。 并把取过的清0.可以取k次,求取到的最大权值。 题解: 贪心+dfs序+线段树 明显每次取叶子到根的路径权值和最大的, 把叶子节点到根的权值建在线段树上。 每次把路径上节点清0。 假如把p节点清0,在p子树中的叶子节点的
阅读全文
摘要:题解: 贪心+dp 30% N<=5 5!枚举一下 20% 高度没有的时候,高度花费就不存在了,将ci排序, 从小到大挨个跳。另外,20% 准备跳楼没有花费,那么跳 楼的高度一定是从小到大,或者是从大到小。所以按照hi从 小到大排序,那么跳楼一定是排序后连续的一段。枚举第一 栋楼从哪开始跳。对于10
阅读全文
摘要:传送门 题目大意:棋盘有骑士有王,让所有点跳到一个点,求所有棋子跳的步数和,和最小。 题解:bfs+枚举 王的人生: 1):自己走到聚集点 2):某个骑士来到王这里,两个棋子一起到聚集点 3):王走几步,遇到骑士,再一起到聚集点 枚举聚集点O(nm),枚举去王那里的骑士O(nm*num),枚举 相遇
阅读全文
摘要:题目大意:01矩阵,1表示黑色,0表示白色,求将白色染成黑色最少的次数 使黑色成为一整个联通块。 题解: 搜索bfs 90... dfs判断连通 #include<iostream> #include<cstdio> #include<cstring> #include<queue> using n
阅读全文
摘要:题解:搜索+模拟 剪枝: 最优性剪枝:x从小到大,y从小到大,第一次搜到的就是字典序最小 的最优解。 最优性剪枝:把一个格子和左边格子交换,和左边格子和右边格 子交换是等价的,显然让左边格子和右边交换更优。 可行性剪枝:如果当前格子某个颜色个数为1或者2return 一定消不去。 最优性剪枝:相同颜
阅读全文
摘要:传送门 题目大意:一个字符串,将[]内的字符提前。 题解:链表,数组元素高效交换 cur表示目前元素插入下标为cur的元素后面。 所以,假设目前把下标为i的元素插到cur后面。 那么,next[i]=next[cur],为cur后面的元素成为i后面的元素 next[cur]=i,cur后面的元素就是
阅读全文
摘要:T1叉叉 题目描述 现在有一个字符串,每个字母出现的次数均为偶数。接下来我们把第一次出现的字母a和第二次出现的a连一条线,第三次出现的和四次出现的字母a连一条线,第五次出现的和六次出现的字母a连一条线...对其他25个字母也做同样的操作。 现在我们想知道有多少对连线交叉。交叉的定义为一个连线的端点在
阅读全文
摘要:传送门 题目大意:点被破坏,t[i]为第i个点修好的时间,且t[1]<t[2]<t[3].. 若干询问,按时间排序,询问第t时刻,u,v的最短路径长度。 题解:floyed 根据时间加入点去松弛其他点 代码: #include <cstdio> #include <cstring> #include
阅读全文
摘要:传送门 题目大意:A能揭发B,B能揭发C..某些人可以被收买,如果收买A,那么A,B,C..的情报都可以得到。 求能否得到所有情报,如果可以最少花费多少钱去收买。 题解:tajian缩点 dfs/bfs从能收买的人遍历图,如果全部都能遍历,那么可以得 到所有的情报。然后tarjan缩点,并记录缩的每
阅读全文
摘要:题目大意:一棵树,从一个点出发遍历完所有的点,再回到起点。 没到一个点和一条边都会有话费。 题解:Krusakl重新赋值边权为边权*2+点权 代码: #include<iostream> #include<cstdio> #include<algorithm> #define maxn 100002
阅读全文
摘要:T1 洛谷p3384树链剖分模板 传送门 题目大意:1 区间加 2 区间和 3子树加 4子树和 代码: #include<cstdio> #include<iostream> using namespace std; const int maxn=500005; typedef long long
阅读全文
摘要:传送门 题目大意:一棵树,节点一开始有颜色并都相同。有两种操作a--b路径上所有点染成c, 求a-b路径上有多少个颜色连续的序列。 题解:树链剖分 线段树需要记录区间个数sum,区间左右端点的颜色lc,rc,还有懒标记。 其他需要注意的就是端点了。 如:用线段树统计区间[l,r]有多少连续的颜色序列
阅读全文
摘要:题目大意:n个字符串,m个操作,可以插入字符串,也可以询问某T个字符串的最长后缀 题解:Trie+lca Trie树的插入与查询操作。把字符串反转就相当于求公共前缀。 lca的深度就是公共前缀的长度。 代码: //biology include<iostream> #include<cstring>
阅读全文
摘要:1047: [HAOI2007]理想的正方形 Description 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中 的最大值和最小值的差最小。 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中 的最大值和最小值的差最小。
阅读全文

浙公网安备 33010602011771号