- 博客(62)
- 收藏
- 关注
原创 关于WebGoC的一些代码与指令
功能:取一点的颜色和透明度,返回一个整数(透明度+RGB,4个字节)。说明:colorId是颜色编号,dx和dy是与笔位置的横纵坐标的偏移量,最后一个参数表示颜色rgb的欧式距离阈值,用来判定颜色是否相等。如果要知道RGB的值,可以解析返回结果,但边界颜色确实是有误差的。功能:以当前笔的位置作为开始点,对一片相同颜色区域染色。注:WebGoC现有老版本(https://v1.51goc.com)和新版本(https://top.51goc.com)样例:下面程序是打靶小游戏,使用点击到的颜色判断给分。
2026-06-04 18:18:40
1474
原创 【C++题解】118883.书架
该问题要求在满足特定条件下,找出放置n本书所需的最少书架层数。条件包括:首层不超过H本,相邻层差不超过1本,且总书数恰好为n。通过二分查找确定最小层数k,使得前k层的书本数总和≥n。计算时分为两种情况:当k≤H时,书本数呈等差数列递减;当k>H时,书本数先递增后递减。最终输出满足条件的最小层数k。算法时间复杂度为O(log n),适用于大范围数据(n,H≤1e18)。
2026-07-30 16:03:35
744
原创 【题解】WebGoC 100088.抽签
摘要:该编程题目要求实现一个图形化程序,处理n个随机数(20≤n≤25,数值范围[20,600])。首先去除重复数字(保留首次出现的),然后按原顺序以数字值为高度绘制宽20的矩形(间距10),矩形颜色由降序排序后的序号%16决定。最后在最大值上方画1号色实心圆(半径10),最小值上方画3号色实心圆。输入为n和n个整数,输出对应图形,如样例所示当出现重复值时跳过后续相同数字。
2026-07-26 10:46:10
300
原创 【C++题解】644.珠宝
题目摘要:Elly有一排N颗珍珠,每颗颜色为M种之一。要求将同颜色珍珠相邻排列,颜色顺序不限。求最少需要移动多少颗珍珠才能实现分组。移动定义为取出珍珠并插入任意位置。输入为珍珠数量N、颜色数M及颜色序列,输出最少移动次数。例如,输入11颗珍珠4种颜色(序列2,4,1,1,1,3,2,1,4,2,2),最优解需移动3颗珍珠。算法使用动态规划,计算最长无需移动的连续同色子序列,最终结果为N减该长度。
2026-07-25 09:20:39
274
原创 【C++题解】118881.好区间
摘要:题目要求统计全排列中以第一个元素为起点的"好区间"数量。好区间指排序后构成连续整数序列的区间。解法是遍历所有可能区间,维护当前区间的最大值和最小值,若其差加1等于区间长度则计数。例如,输入[3,1,2,5,4]输出3个,输入[1,2,3,4,5]或[5,4,3,2,1]均输出5个。算法时间复杂度为O(n),适用于1≤n≤1e5的数据规模。
2026-07-24 10:22:33
280
原创 【题解】WebGoC 118869.项链
本文摘要:题目描述了一个魔法转换问题,给定目标项链和k条初始项链,判断每条初始项链能否通过若干次颜色交换操作转换为目标项链。每次操作可将所有颜色x珠子变为y,同时所有y变为x。关键在于统计每条项链的颜色频率分布,若初始项链与目标项链的频率分布(颜色出现次数)相同,则可通过操作转换,否则不能。解决方案是分别计算目标项链和初始项链的颜色频率分布并进行排序比较,输出对应的图形标记(√或×)。算法通过冒泡排序处理频率分布,确保在O(n^2)时间内完成比较。
2026-07-23 10:11:59
1206
原创 【C++题解】118878.任务分配
摘要:该问题要求将任务A和B分配给N名员工,使得完成时间最短。可以分配给同一员工(时间相加)或不同员工(时间取较大值)。解决方案包括:1. 记录每个任务的最快两名员工;2. 计算同一员工完成的最短时间;3. 若最快员工不同则直接取最大值,若相同则考虑次优组合。最终取两种方案的最小值。时间复杂度为O(N),适用于N≤3×10^5的情况。
2026-07-23 10:05:23
315
原创 【C++题解】100102.回文串
摘要:给定一个长度为N的小写字母字符串,可通过两种操作将其变为回文串:1) 花费A元旋转首字符到最后;2) 花费B元修改任意字符。求最小代价。解法是枚举所有可能的旋转次数k,对每个k计算旋转代价k*A和使当前字符串对称所需修改代价,取所有情况的最小值。示例1中旋转1次花费1元,修改1个字母花费2元,总代价3元;示例2因N=8需大额修改。数据范围N≤5000,A,B≤1e9。
2026-07-22 09:48:05
267
原创 【C++题解】100097.方格稿纸
【摘要】题目描述桐桐在n×m方格稿纸上统计魔幻方阵数量,定义为满足以下条件的k×k区域:1)黑白格子数差≤1;2)k≥2。给定格子颜色(0白1黑),需计算所有符合条件的方阵数。使用二维前缀和数组pre快速计算区域和,遍历所有可能的k和起始位置,验证条件后累加结果。示例输入5×5矩阵输出9,与图示一致。算法时间复杂度O(nm*min(n,m)),适用于n,m≤300的数据规模。
2026-07-21 10:33:39
321
原创 【C++题解】100095.三倍子串
题目要求统计给定正整数n的所有子串中能被3整除的数量。通过分析数字性质可知,一个数能被3整除当且仅当其各位数字之和能被3整除。利用前缀和模3的余数统计,当两个位置的前缀和余数相同时,它们之间的子串即为3的倍数。算法时间复杂度为O(n),适用于大数情况(n的位数可达10^7)。代码实现使用数组记录各余数出现次数,最终通过组合数公式计算结果。例如输入95764输出6,输入1111输出2。
2026-07-20 08:40:59
314
原创 【C++题解】112354.平行时空
这篇文章摘要描述了一个关于在孤岛上寻找最短路径的算法问题。题目要求两人从起点出发,通过相反方向移动避开陷阱,最终到达传送门离开。解决方案使用BFS算法,分三种状态(0-两人未离开,1-一人已离开,2-另一人已离开)进行搜索,利用位图优化存储和访问状态。算法时间复杂度为O(nm),适用于大规模网格(n,m≤2000)。最终输出最短路径长度或-1表示无解。样例输入输出展示了不同情况下的处理结果。
2026-07-19 08:50:38
318
原创 【C++题解】118875.最大宝藏区
摘要:给定一个由红宝石(0)、蓝宝石(1)和陷阱(2)组成的n×m矩阵,寻找最大的正方形区域满足:1)红蓝宝石数量相等;2)无陷阱。使用二维前缀和预处理各类型数量,从最大可能边长开始检查,找到符合条件的正方形立即返回边长,否则返回0。时间复杂度为O(n²m²),适用于n,m≤450的数据规模。
2026-07-18 09:40:37
300
原创 【题解】WebGoC 100090.景点方阵
摘要:题目要求根据输入的n和m,在一个n×n的景点方阵中标记出指定的m个景点序号。景点方阵按照特定规律填充1~n²的序号,用户需在对应序号的方格中绘制黄色实心圆。输入包含n、m及m个景点序号,输出为带标记的图形化方阵。例如,输入5和3个序号时,程序会在5×5方阵中相应位置标记这3个景点。核心算法通过双重循环填充方阵并检查标记位置,使用绘图函数完成可视化输出。
2026-07-17 08:42:19
338
原创 【题解】WebGoC 100091.斯诺克
本文介绍了斯诺克台球比赛的简化规则和得分计算方法。比赛中有22个球(1白球、15红球、6彩球),选手轮流击球。红球得1分,彩球按颜色对应不同分值(黄2分至黑7分)。规则要求:有红球时必须交替击打红球和彩球,红球被击入后取出,彩球保留;无红球后按分值从小到大击打彩球并取出。犯规情况包括未击中球(罚4分)或击错球(按球分值或4分罚分)。程序根据输入的两名选手击球序列,计算最终比分并格式化输出。
2026-07-16 09:47:08
1488
原创 【C++题解】112352.面积
题目要求通过交换相邻铁柱位置,使得由n根铁柱与坐标轴围成的多边形面积最大。经分析,最优解是将最长铁柱集中在中间区域,最短两根铁柱放在两端。具体解法为:对铁柱长度排序后,计算前两根最短铁柱的平均值与中间所有铁柱长度之和(中间铁柱各计两次)的总和除以2。例如输入3 1 2时,排序后为1 2 3,面积计算为(1+2+2*3)/2=4.50。该算法时间复杂度为O(nlogn),适用于n≤2e6的数据规模。
2026-07-15 16:53:14
325
原创 【GoC游戏】等(wait)1.0.0版本
摘要:本文介绍了一款名为“等”的趣味互动小游戏,其核心规则是“鼠标动了就输了”。文章提供了完整的C++游戏源代码,读者可将其复制到指定在线IDE中直接运行。目前游戏包含三个关卡,文中附有游戏界面预览图,直观展示了游戏的实际效果。文章最后简要说明了游戏规则并欢迎读者反馈BUG。
2026-07-15 09:30:52
362
原创 【C++题解】12502.平方因子
摘要:给定整数区间[n,m],统计其中不含平方因子(即不能被大于1的平方数整除)的数字个数。例如3~9区间有4个这样的数(3,5,6,7)。程序使用莫比乌斯函数进行容斥计算,通过预处理mu数组后,对每个平方数k²统计其倍数的贡献度,最终输出结果。算法时间复杂度与√m相关,适用于1≤n,m≤1,000,000的输入范围。
2026-07-14 09:52:42
310
原创 【C++题解】103664.监考老师
摘要:给定一个m×n的考场矩阵,1表示作弊学生,0表示正常学生。监考老师站在某个位置时可以看到所在行和列的所有学生。要求找出一个最优位置,使得能发现的作弊学生数最多。通过预处理每行和每列的作弊人数总和,然后遍历每个位置计算row[i]+col[j]-a[i][j](避免重复计算交点),最终输出最大值。算法时间复杂度为O(mn)。样例输入5×6矩阵,输出结果为4。
2026-07-13 15:31:35
337
原创 【题解】WebGoC 628.花边图案
摘要:该编程题要求根据输入的整数n(1≤n≤8),用GoC语言绘制一个正方形花边图案,每边包含n个凸形。每个凸形由长度为20的线段构成,使用颜色号1。示例代码展示了一个旋转绘制凸形的函数(hb),通过循环四次完成正方形绘制,最后隐藏画笔。题目来自51goc在线平台,需登录查看完整内容。
2026-07-12 17:08:22
430
原创 【题解】WebGoC 2065.益智游戏
这是一个关于三角形数字填充问题的编程题目:给定三角形三条边中间的三个数字a,b,c(顺时针方向),要求计算三个顶点的数字A,B,C,使得每条边上的三个数字之和为15。题目要求编写程序绘制对应的正三角形图形,其中每个数字显示在特定颜色的圆形中。解题步骤包括:1) 通过公式计算出三个顶点的数字;2) 使用绘图函数绘制边长为200的正三角形;3) 在顶点和边的中点位置绘制带有数字的彩色圆形。输入为三个中间数字,输出为对应的图形,其中圆形颜色由数字决定。
2026-07-09 17:11:47
1381
原创 【题解】WebGoC 102683.大雨过后
摘要:该题目模拟学校楼顶水箱在台风降雨和排水过程中的水位变化。水箱初始为空,给定小时数n、水箱高度high、每小时排水下降高度down,以及每小时降雨上升高度。需要计算并绘制水箱最高水位(用红色横线表示)和降雨停止时的水位高度(用实心矩形表示)。水位超过高度会溢出,低于0则为空。通过循环处理每小时数据,实时更新当前水位和最高水位,最后用图形化方式输出结果。输入包含n+1行数据,输出水箱示意图。
2026-07-05 18:13:16
374
原创 【C++题解】100103.取钱
题目要求计算用最少数量的纸币凑出给定金额N,可用的纸币面值包括1元、6的幂次方和9的幂次方。这是一个典型的动态规划问题。通过预处理生成所有可能的面值,然后使用动态规划数组dp记录每个金额所需的最小纸币数,其中dp[i]表示金额i的最小纸币数。初始化dp[0]为0,其余为最大值。对于每个金额i,遍历所有面值,若面值小于等于i,则更新dp[i]为最小值。最终输出dp[N]即为答案。示例输入127输出4,因为可用1+9+36+81=127共4张纸币。
2026-07-02 20:49:00
936
原创 【题解】WebGoC 156.年月日
摘要:题目要求将6位数字表示的日期转换为矩形图形表示。其中前2位为矩形宽度(年),后2位为高度(日),中间2位为颜色编号(月)。例如输入220122输出宽22、高22、颜色1的矩形。解题思路是分解6位数获取年月日,使用p.rr()绘制矩形。输入输出样例展示了转换关系,参考答案提供了具体实现代码。
2026-06-27 20:21:33
314
原创 【题解】WebGoC绘图题目精选整合集
这段代码片段展示了多个简单的图形绘制程序,包括自行车、嵌套多边形、红苹果、管理员头像、彩色三角形和拼图卡片。每个程序都使用基本的绘图指令(如移动、旋转、画线等)来构建图形,最后隐藏绘图工具。这些示例展示了如何使用代码生成不同的几何形状和图案,从简单三角形到复杂组合图形,适合初学者学习编程绘图的基础概念。
2026-06-25 20:09:12
891
原创 【题解】WebGoC 385.身高
摘要:本题要求编写GoC程序,将n个群众演员按身高从低到高排序并去重,用长方形表示每个人的身高(宽20,高为身高值)。输入包含人数n和n个身高值,程序需先去除重复值,然后排序,最后绘制由矮到高的长方形队列。例如输入"5 180 160 160 141 172",输出为三个不同高度的长方形(141,160,172)。核心算法包括去重、冒泡排序和图形绘制。
2026-06-25 18:32:41
611
原创 【题解】WebGoC 12518.DNA双螺旋结构
本文介绍了一个编程题目:根据输入的节数N(1≤N≤10),使用特定图形单元(带红绿圆点的直线)按照“逐渐变长再变短”的规律,绘制出DNA双螺旋模型图,并提供了GoC参考实现。
2026-06-24 19:00:26
312
原创 【题解】WebGoC 32979.勾股定理
摘要:题目要求根据给定的两个正整数a和b(≤150),判断是否存在满足勾股定理a²+b²=c²的正整数c。若存在,则用goc绘制由三个边长分别为a、b、c的正方形组成的图形(类似经典勾股定理可视化图);否则不绘制大正方形。解题步骤包括计算c值,绘制两个小正方形,并在c存在时连接顶点形成大正方形。示例代码展示了如何通过循环验证c值,并使用goc图形库绘制相应图形。
2026-06-23 12:30:00
301
原创 【题解】WebGoC 112333.交通灯信号灯
摘要:题目要求模拟交通信号灯在t秒时的显示状态。信号灯由红、黄、绿三灯组成,遵循特定周期规律:红灯亮60秒(含10秒倒计时)、绿灯亮60秒(含10秒倒计时)、黄灯亮5秒,总周期125秒。需用webgoc绘制20060的黑色底座和三个圆形灯(半径25),灯亮时分别用红(1)、黄(13)、绿(3)色,熄灭为灰色(8)。倒计时数字用30号字体显示在黄灯位置。程序需根据输入时间t(1≤t≤3600)计算当前周期位置,并绘制对应状态。例如输入366秒(1252+116)时显示绿灯倒计时4秒的状态。
2026-06-22 19:50:54
327
原创 【题解】WebGoC 584.四个线段相交
摘要:该题目要求根据输入的四个正整数绘制图形。程序控制笔依次前进每个数值长度后顺时针转90度,若第四条线段与第一条线段相交(即满足a[1]≥a[3]且a[4]≥a[2]),则将第四条线段设为红色。输入为一行四个正整数,输出对应图形。示例1(100,200,50,250)和示例2(100,200,50,150)展示了不同条件下的输出结果,核心代码通过条件判断实现线段颜色切换。
2026-06-21 17:00:00
343
原创 【题解】WebGoC 118866.火灾救援
本文解析了一个消防救援策略的编程问题:有n名受困学生分布在1-12层楼中,消防队有两种救援方式:1. 消防战士逐层救援,每次救1人需1单位时间;2. 使用消防车云梯,一次可救出同层所有学生,但需k单位时间。文章提供了完整的C++解决方案,通过统计每层学生人数,动态选择最优救援方式(战士救援或云梯救援),计算最小总救援时间,并使用图形化方式展示每层的救援策略选择结果。
2026-06-21 10:00:00
442
原创 【题解】WebGoC 118865.颜色转换
摘要:本文描述了一个颜色转换游戏,涉及红、蓝、绿、黄四种颜色状态(分别编号1、2、3、5)。初始状态为红色,根据三种指令类型进行颜色转换:指令1为红→黄→绿→蓝循环,指令2为红→蓝→绿→黄循环,指令3为红绿互换、黄蓝互换。给定n条指令序列后,需要在圆周上均匀绘制n个横半径50、纵半径100的实心椭圆,每个椭圆颜色对应指令执行后的当前颜色状态。提供了C++代码实现方案,包含颜色转换函数和图形绘制逻辑。
2026-06-20 19:00:00
408
原创 【题解】WebGoC 398.山峰
摘要:本文详细讲解了一个山脉图形绘制编程题的完整解决方案。题目要求根据输入的山脉高度数据,用图形化的方式绘制山脉,其中高度大于左右相邻山脉的山峰需要用实心矩形表示。
2026-06-20 10:00:00
387
原创 【题解】WebGoC 143.拱桥
摘要:该题目要求用给定高度为10的倍数的N根积木搭建最长的对称拱桥,桥形需先严格上升后严格下降,每次高度变化10。程序需找到满足条件的最长序列,并输出图形。输入为积木数量N和各高度,输出对应的最长拱桥图示。解题思路是统计各高度出现次数,寻找最长连续可对称序列。例如输入7根高度为30,40,40,50,30,40,40的积木,可构建特定拱桥。参考代码使用数组统计高度频次,确定最长对称段后绘制图形。
2026-06-19 17:30:00
298
原创 【题解】WebGoC 631.寻宝游戏
摘要:该程序模拟山洞寻宝游戏,n个山洞均匀排成一圈。从第1个洞开始,每隔m个洞查找下一个,标记所有能被访问到的山洞为红色(1号颜色)。输入n和m后,程序使用数组标记可访问的洞,最后绘制图形:未被访问的洞显示空心圆,被访问的显示实心红圆。例如,输入6和3时,输出1、3、5号洞为红色实心圆。程序通过循环和条件判断实现标记,并使用图形库绘制结果。输入范围:2 < m < n ≤ 20。
2026-06-19 10:00:00
1639
原创 【题解】WebGoC 21816.算筹
摘要:该题目要求计算n个正整数的总和,并用横式算筹图形表示结果。输入包含n和n个正整数,输出对应的算筹图案。数字0-9各有特定的图形表示方式,例如0为半径25的圆,其他数字由不同数量的横线或竖线组成。每个数字图形底部对齐,间隔20单位,颜色为黑色。参考代码通过递归处理数字的每一位,调用绘图函数绘制对应数字的算筹图形,最终将所有数字图形按位拼接显示总和。
2026-06-18 20:46:31
386
原创 【题解】WebGoC 102681.降水量
该题目要求根据12小时降水量数据绘制直方图并设置预警颜色。摘要要点:1. 输入12个整数表示每小时降水量;2. 计算3/6/12小时累计降雨量;3. 按标准确定最高级别预警(红色>橙色>黄色>蓝色);4. 绘制宽度20、高度降水量*4的矩形,间距20,最后一个矩形着色;5. 输出直方图,其中前11个矩形用颜色4,最后一个根据预警级别着色。代码示例展示了如何计算累计降雨量并绘制图形。
2026-06-18 12:41:47
330
原创 【题解】WebGoC 100089.放球
摘要:本文描述了一个乒乓球游戏规则及其算法实现。游戏规则为:依次放入N个数字标记的球,每当连续x个球数字为x时,移除这组球。算法使用栈结构模拟过程,每次添加球后检查并移除符合条件的连续球组。最终剩余球数对16取模作为颜色编号,绘制相应实心圆。示例展示了输入输出及处理过程,核心代码展示了栈操作和颜色绘制方法。题目链接需登录后查看完整内容。
2026-06-17 18:00:17
301
原创 【题解】WebGoC 116.手机号码
摘要:题目描述奶牛Bessie复制粘贴其手机号码13300303003共N次,形成一个长数字串。给定N、S、T,要求计算该串中第S到T位间数字3的个数x,并以x%15为颜色、20+x%199为半径绘制实心圆。核心解法通过预处理原号码中每位前缀的3的个数,利用数学分段计算(整段数量+剩余部分)高效求出结果,避免直接处理超长字符串。算法复杂度为O(1),适用于N极大(1e8)的情况。
2026-06-17 12:42:45
364
原创 【题解】WebGoC 583.波峰
该题目要求根据输入的n个不同整数,绘制n条垂直的线条。若某条线的高度大于其左右相邻线条,则用红色(1号颜色)绘制(称为波峰),其他用绿色(3号颜色)。输入包含n和n个正整数,输出对应的图形。解题思路是遍历数组,检查每个元素是否满足波峰条件(注意边界处理),然后使用图形库函数绘制线条并设置颜色。示例代码展示了如何实现这一逻辑,包括输入处理、条件判断和图形绘制步骤。
2026-06-16 18:00:00
309
如何在没有atan2的情况下求出内角?
2026-06-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅