- 博客(13)
- 收藏
- 关注
原创 题解 UVA1599 【理想路径 Ideal Path】
*本篇题解本来写于洛谷,但是洛谷的格式审查严格(仅本人查看)故再写于csdn(再也不在洛谷发布题解了 *这一篇通过率很低所以我想写一个简单的题解来解释一下第二遍从源点的bfs是怎么回事:首先看第一遍bfs从汇点开始,得出所有点到汇点的最短距离dist第二遍bfs相较于普通bfs每次取出一个节点有所不同,第二遍bfs每次取出 同一深度的所有节点 ,对每个节点出去的颜色值取最小值,找到下一层的所有节点找下一层节点的判断条件就是到汇点的距离减一且路径颜色为第二步中找到的最小颜色以下的代码省去了所有的宏和
2021-01-13 16:54:28
275
原创 题解 UVA1595 【对称轴 Symmetry】
本篇题解本来写于洛谷,但是洛谷的格式审查严格(仅本人查看)故再写于csdn1.由于对称轴垂直于x轴因此每个点的x坐标排序去重后按照奇偶数分开讨论. 2.奇数x坐标对称轴在中间点上. 3.偶数x坐标对称轴不在任何点上是一个浮点值. 4.预存每个点的xy坐标到set中,方便按照2,3划分的坐标轴情况遍历每个点是否存在对称点.void solve(){ int T; cin >> T; while(T--){ int n;
2021-01-13 16:52:10
237
原创 UVA1587 盒子 Box 数学表达式解析(给你整的明明白白)
原理剖析初看题目题主摸不着头脑,6个矩形的关系应该满足什么样的关系才能组成一个立方体?为了理清思路让我们画一个立方体观察(阅读过程中可随时跳到末尾代码处阅览以辅助理解):得出事实:立方体有3对对立面,对立面的形状一致;三条邻接棱即可唯一描述一个立方体,如图所示标红的三条楞;接下来按照以下步骤思考:定义长边为hhh,短边为www,三对对立面分别为p1,p2,p3p_1,p_2,p_3p1,p2,p3,他们各自的h,wh,wh,w应该带上相应的下标1,2,31,2,31,2,3例如p1
2020-12-14 11:24:04
430
原创 UVA1388 Graveyard 公式由来详解
话不多说直接贴代码void solve(){ int n, m; while(cin >> n >> m){ double re = 0; uu(i, 1, n){ double pos = (double)i / n * (n+m); re += fabs(pos - floor(pos + 0.5)) / (n+m); } cout <<
2020-12-07 12:31:06
180
1
原创 1139 First Contact PAT Advanced Level
题目链接需要注意的点-0000与0000在int下是等效的故而无法据此判断id为该两个数的男孩、女孩之性别,所以需要输入字符串来判断人物性别。没了。DFS(TE)递归初始深度为0,当深度为3时判断当前节点是否为心动男、女孩。根据AB的性别相同与否分为两个模式,当AB为相同性别时4个人的性别都是相同的,否则A的朋友C、B的朋友D应为异性,据此根据递归深度的不同对下一层节点的性别稍作判断。然而DFS复杂度过高,当AB朋友很多时会超时。// #include <bits/stdc++
2020-12-01 16:54:45
344
原创 202009-4 星际旅行
202009-4 星际旅行多维情况下计算两点间的直线、曲线距离可归纳于二维情况,需要注意的几个点(设黑洞外两个点A、B,黑洞圆心O,半径r):第一部分:为了WA冲冲冲A或B为钝角则AB在黑洞外不满足条件1的情况下O到AB距离H大于r则AB在黑洞外AB连线经过黑洞则计算A到切点E(AE为黑洞切线,FB同理)、劣弧、F到切点B的和,不需要分类讨论A、B是否在黑洞上第二部分:为了TE冲冲冲不需要开数组储存计算结果,循环计算两两点曲线距离累加到答案上即可提前保存点到黑洞中心距离第三部分:为
2020-11-30 12:14:35
1553
2
原创 单链表反转-原地算法
最先想到的思路是仅遍历一遍单链表,在遍历的过程中修改指针使得目标节点的next节点指向之前的节点。为了简便我们可以首先考虑普遍(遍历在链表中部)的情况,我们有三个节点h(head),p,t(tmp),如下图所示。具体的步骤已经在图中给出,此时的局面是h已然指向前驱节点,接下来只需要把p的next指向h即可。反转的操作在步骤2,步骤3、4为了套娃。特殊的情况(遍历在第一个节点)h是没有前驱节...
2020-02-27 16:42:06
660
原创 统计二进制整数1的个数-loglogn算法
该算法在邓书解析[1-12]已经给出,解释虽然详细,但仍需要细心体会才能理解其中奥妙,本篇仅为辅助理解原作。给出源代码:round函数的输入必须是以2^c 为组,各组数值代表2^c 位中1的数目。突破口在于任何整数的二进制天然地以1bit分组每组值代表了“1”的个数。比如(5)b=0 1 0 1 。有了这个前提,一开始就可以放心地开始第一轮的round。注意掩码(mask)以当前每组数...
2020-02-27 02:19:47
1168
原创 最大子序和-线性算法,最顶的解释(maxSubsequenceSum)
问题描述给一段数组,找出一段连续子数组使得元素和最大。比如16个元素的数组A[13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7]最大子数组A[7…10],sum=43上代码int maxSubsequenceSum(int *a, int num){ int left=0, right=0, sum=0,...
2020-01-20 23:08:52
255
原创 手写四维卷积,python and C
手写四维卷积,python and C数据结构C:Python:数据结构数据:NHWC权重:OIHWC:void convOp(Blob input,Blob* output,conv_s convInfo, wtParam param){ int sh = convInfo.strideH, sw = convInfo.strideW, ph = convInfo.convPad....
2019-07-25 14:55:45
510
原创 最大子序和
最大子序和1.分治分而治之,分数组为左半段与右半段,母数组的最大子序,可能藏在三个位置:左半段,递归右半段,递归横跨左右半段分界点的一段,从分界点到左端点最大值+从分界点到右端点最大值左端点为l,右端点为r,中点center = (l+r)/2,左半部分[l,center],右半部分[center+1,r]。递归基:l==r,返回单点值。T(N) = T(N/2) + O...
2019-03-27 01:10:42
194
原创 leetcode 括号生成
生成括号合法的括号组合必然是"(“数量与”)“数量相等,因此当一个”(“生成时必然有一个”)"生成。想象手上有一把"(“但是却没有”)",在地上放置一个"(",则手中"叮"一声多出一个")",你的任务就是把手里的"("")"像牌一样打完放在地上。设n为"(“数量,m为”)"数量。当n == 0 && m == 0 时为递归基。设置初值n = N,m = 0。放置...
2019-03-27 01:09:48
221
原创 TsinghuaOj Programming Assignment #3.3 重名剔除(Deduplicate)
TsinghuaOj Programming Assignment #3.3 重名剔除(Deduplicate)重名剔除(Deduplicate)DescriptionMr. Epicure is compiling an encyclopedia of food. He had collected a long list of candidates nominated by several...
2018-11-14 02:25:38
1399
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人