![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
歪门邪道
文章平均质量分 50
光球层上的黑子
是个菜狗
展开
-
平面最短曼哈顿距离技巧 Dist Max、Lena and Matrix、Gojou and Matrix Game 三题题解
曼哈顿距离是指对于两个点a(i,j),b(i′,j′)a(i,j),b(i',j')a(i,j),b(i′,j′),它们的曼哈顿距离是∣i−i′∣+∣j−j′∣|i-i'|+|j-j'|∣i−i′∣+∣j−j′∣,记为dis(a,b)dis(a,b)dis(a,b)我们显然可以做如下变化dis(a,b)=∣i−i′∣+∣j−j′∣=max(i−i′,i′−i)+max(j−j′.j′−j)dis(a,b)=|i-i'|+|j-j'|=\max(i-i',i'-i)+\max(j-j'.j'-j)dis(原创 2022-06-11 19:38:49 · 882 阅读 · 1 评论 -
CodeForces - 1497E1 判断完全平方数 质因数分解
题目链接https://vjudge.net/problem/CodeForces-1497E1题意给出数组,让你将他分为连续的ans段,使得每一段数组内的数字两两相乘不出现完全平方数,最小化ans。思路复杂度O(n∗logm)O(n*logm)O(n∗logm)教训/收获代码在这里插入代码片...原创 2021-03-25 22:42:12 · 227 阅读 · 0 评论 -
CodeForces 1482B Restore Modulo GCD,条件结构入门题(误)
题目链接题意给定数组,问是否可把该数组看成a[1]=s%ma[i]=a[i-1]+c%m(i>1)的数组,不可以输出-1,可以的话求出最大化的m,无最大值的话输出0思路稍微推一下式子,得出//答案为0:等差递减,等差递增//答案为-1:不等差递减,不满足最后一种情况的其他情况//有正常答案:a[i+1]-a[i] (>0时)有单个取值diff,所有a[i+1]-a[i] (>0时)+diff的最大公约数比数组任何一个数都大教训/收获出问题了自己造数据!注意边界条件!原创 2021-03-23 21:03:49 · 143 阅读 · 0 评论 -
2021年度训练联盟热身训练赛第二场 J-Lowest Common Ancestor 进制转换,LCA
题目链接https://ac.nowcoder.com/acm/contest/12794/J题意满二叉树,层序遍历给出编号,多次询问求两点公共祖先。其中点编号以十六进制串给出(1000位),输出也是十六进制思路满二叉树层序遍历的LCA没什么好说的,对于u和v,一直对u和v编号大的除二,直到相等就找到了看到十六进制,加上直接除二这个操作就别考虑十进制数了,用二进制串处理,二进制数除二就是右移,也就是说两个二进制编号的LCA就是他们最长公共前缀。至于十六进制和二进制转换,直接看代码吧复杂度O原创 2021-03-14 17:49:46 · 134 阅读 · 0 评论 -
2020多校3 1004 Tokitsukaze and Multiple
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=6794题意给出长为n的数组和m,可以任意次合并相邻元素,求最多可以同时有多少个元素模m为0思路通过前缀和相减,我们可以很方便的维护某一段区间的和,以此为启发,我们首先维护一下数组前缀和,当存在p1<p2同时p1前缀和模m和p2前缀和模m值相等时,说明p1和p2这段数组是可以通过合并达到要求的。我们预处理出前缀和,利用map维护某一前缀和模p的数字是否出现过。从左到右遍历每个元素,如果这个元素前缀和原创 2020-11-01 17:31:09 · 117 阅读 · 0 评论 -
2019CCPC哈尔滨 Exchanging Gifts 递推,map
题目链接https://vjudge.net/problem/Gym-102394E题意给定n个序列,给出方式有两种:直接给定m个数字作为序列si,或者给定j,k,使si=sj+sk。对sn任意排序,最多能使多少个位置上的数字与之前不同?思路先记录输入,vector数组存储第一种方式给定的序列。从后往前递推出每一个序列的使用次数并记录。使用unordered_map统计出现次数最多的数字,并记录序列总长度答案为min(len,2len-2cnt)教训/收获map除了建立映射以外还保证原创 2020-10-12 21:23:37 · 149 阅读 · 1 评论 -
Monument Tour 三分
题目链接https://vjudge.net/problem/Gym-102465D题意n*m矩阵,k个节点,选择一行从左到右走,当遇到同一列有节点时,要走过去再回来。求最短路径思路复杂度O(n∗logm)O(n*logm)O(n∗logm)代码原创 2020-09-27 16:44:57 · 213 阅读 · 0 评论