- 博客(17)
- 收藏
- 关注
原创 xdoj-图形对称性判断
4,旋转对称看着吓人,其实就是点的对称,如果是偶数的话,没关系直接当对称点存在就行,只不过这个矩阵里看不到罢了。3,对角对称和反对角对称我使用的是y=x+b函数的对称性质,高中数学知识。2,水平和垂直比较简单,从左到右和从上到下依次比较即可。思路:1,将pA当成二维数组使用。描述:简言之为判断各种对称性。
2023-12-13 16:47:05
595
1
原创 xdoj-556连续子串
题目:连续数字字符串提取 问题描述 输入一个字符串,将连续的数字字符串放到另一个二维数组中 输入格式 输入一个含连续数字的待提取字符串。评测用例规模与约定 提取出来的连续数字字符串长度不超过 20,输入字符串内至多含有 10 个连续字符串, 时间限制 1s,内存限制 256KB。(注:1287 视为整体,不属于连续数字字符串,不可被看 为是 12 与 87 两个连续数字字符串。思路:1,思路很直接,将所有数字子串提取存储到二维数组string2中,再筛选出连续子串。
2023-12-13 13:03:57
748
原创 xdoj-图灵机模拟
接下来是 n+1 行 1)前 n 行为 n 条指令,每条指令由 5 个部分构成,每个部分用空格分隔,如下 所示: 当前状态 输入符号 输出符号 纸带移动方向 新状态 例如:ADD 0 1 L RETURN 其中, “当前状态”和“新状态”为一个长度不超过 20 个字符的字符串 “输入符号”和“输出符号”各是一个字符,输入和输出符号有‘*’, ‘0’,‘1’三种,其中‘*’表示分界符,两个‘*’之内的部分是有效 输入/输出。2,从代码集1开始执行,定义一个ptr记录读写头位置,从第二个*右侧开始。
2023-12-12 21:25:47
657
原创 xdoj-658-旅行dfs
2,路径记录,与bfs相同,我仍设置了一个sequence数组记录每一步的节点选择,但需要注意的是,在u=出口后逐层返回的过程中会给sequence添加其他值,所以我们用endcount记录终止位置,循环遍历与u相邻的每一个节点,若与其相邻的i节点未被访问,便向下递归调用一直到没有相邻节点或到出口时返回,大概就是选一条路一直走到黑,如果走不通就返回如果走出去就结束。思路:1,主体思路为dfs通过递归实现,先给节点u打上tag,然后进行出口检验,如果不为出口。题目跟bfs相同,不多赘述。
2023-12-12 00:38:05
377
原创 xdoj-659,旅游bfs
输入说明: 第一行先给出城市个数 n ( ≤ 100),以及道路条数 m ( ≤ 1000),接下来 m 行、每行给出该道路连接的两座城市编号 u、v,保证 u ≠ v。输出说明: 如果从城市 1 出发可以到达城市 n,则输出“YES”,否则输出“NO”,并在下 一行按顺序输出他所走过的城市的编号,之间用一个空格分隔。2,题目还添加了扫描路径问题,安排一个sequence数组储存每一步走到的城市,用count记录步数,注意这个sequence一定要放置在给a打上标记之前,否则会出现重复。
2023-12-11 23:51:04
450
原创 pta八皇后问题
2.backtrcking函数用来回溯与摆放位置,内置的for循环用来对每一行的每一列进行皇后填充,填充后对填充合法性进行检验,如果正确进入下一行,注意在填充后无论正误进行回溯修改。思路:1.judge函数用来对八皇后摆放位置进行正确性检验,检验目标为左右对角线与行,注意要从当前位置的前面开始检验。注意:对count值的修改要用指针,单纯传count不会修改count的值,犯这种错误我真的哭死qaq。3循环控制条件为~scanf,它对scanf返回的值进行取反,若scanf读取非法输入,终止程序。
2023-12-08 23:18:29
506
原创 xdoj点赞统计
如果有并列,则输出编号最大的那个。3关键在最多次数统计,输入一个数b,让arr[b]自增一,计算出现的次数,最后遍历arr,找到出现次数最多的数。)是特性标签的编号,我们将所有特性标签从1到100编号。2,再外层循环输入K,表示每行数字的个数,内层循环输入每行的数。思路:输入方式:1,先输入一个n,表示行数,循环n次。
2023-11-22 22:52:08
60
原创 pta矩阵右移
要求:本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。
2023-11-20 23:07:15
186
1
原创 查找一个数阵中的鞍点
2:分析,由于鞍点的特性,假如这个数阵每行每列的数字均不相等,则只可能存在一个鞍点,这是由于若数互不相等,若存在一个鞍点,则其他行的最大值肯定大于等于这个鞍点所在行的最大值,就会大于鞍点行所在行的其他列的数字,就不可能为最小列,因此只可能存在一个鞍点。1,注意第二次获得列最小时要把i,j的值倒过来,或者直接用英文缩写声明变量,防止搞错。所以若存在多个鞍点则同一行或同一列存在相等的数字。要求:鞍点为同一行的最大值和同一列的最小值。9 10 11 12(有两个鞍点)5 6 5 6(有四个鞍点)
2023-11-18 17:36:49
77
1
原创 n阶魔方阵
细节:1,将number++放置在最前面,表示对number++这个数字进行判断,使代码更易读。3,如果number不为N的倍数,就检验number的右上角(row--,col++)2,如果number为N的倍数,将number加一赋值到number的下一行。要求:输入一个奇数,构成一个n*n的方阵,使每行每列每对角线之和相等。1,若超过最上一行,将number++赋值到N,col++2,若超过最右一行,将number++赋值到row--,1。2,number小于N*N,而不是N。dole rob算法。
2023-11-18 12:22:24
61
1
原创 筛法求素数
思路:创建一个筛子,当遇到从2开始的每一个素数时,将其存入素数组中,并将其倍数修改为0。细节:1,k的值需要重置,所以a的值既可以起到重置k也可以充当公差。2,最后j的值为素数的个数,故循环打印素数时应小于j。
2023-11-18 10:55:45
41
1
原创 xdoj字符串查找81
3,关于二维数组指针的声明值得注意,声明成char(*ptr)[100]的形式,而对这个指针解引用得到的是一个数组,这时候我们在用一个指针就可以处理这个二维数组中每一行的值,在Found函数中有所体现,我试过直接处理*ptr,好像不行,不知道为啥qaq。2,在zp指针的自增问题上,由调试我们可以看到再最后一次步增完成后若目标字符串和被查找字符串大小相等时,会指向‘\0’,再自增一步后会指向未知值,所以我们需要还原一步,确保zp自增后不超过‘\0’,让循环顺利停止。第三行包含一个整数n,表示给出的文字行数。
2023-11-16 23:39:57
248
1
原创 xdoj统计正整数的个数
2,将相同元素压缩,我的思路是遇到相同元素就直接跳过前面n-1个相同项,只打印最后一个相同项,并且将数组下标往前移至下一项,并且判断条件用found1来控制,可有效防止数组访问越界(难搞的问题qaq)按照整数从小到大的顺序依次输出不同的整数及其出现次数,整数和出现次数之间用冒号(:)分隔。3,若没有相同项便自然自增,通过控制数组下标的自增方式来有效跳过数组中的相同元素。第一行是一个整数n(5<n<30),表示要待统计整数的个数;思路:1,现将数组由小到大排序,这样可以使得相同元素相连续。
2023-11-08 15:03:37
272
1
原创 xdoj 463.特殊数列
题目分析:1,最关键的是理解这个数列的含义,它将两数相乘并拆分,然后赋值到最后面,这就意味着我们需要两个变量来记录循环,一个计算相邻两项之积,另一个负责变量赋值。2,由于第二个变量的特殊性,在数列值过大的情况下,很有可能超出数组范围,造成越界访问,所以我们需要一个较大容量的数组。因为只要求输出前 10 项,所以在输出 4 后结束。,所以第 4、5 项分别是 1、8。开始顺次进行,每次将当前数字与后面一个数字相乘,将结果。位数,则将其从左到右的每一位数字作为数列的一项。,所以第 3 项是 6。
2023-11-08 14:25:54
219
1
原创 xdoj做题日志
思路:1:创建一个函数用于判断是否为合数,若为合数返回本身,否则返回0,这个函数完成两个功能,存储约数并且将约数相加。请写一个程序,给出指定整数范围[a,b]内的所有完数,0 < a < b < 10000。3:最后用count变量记录下的合数数目作为最后一次循环循环的次数,并将合数逐行打印。一个数如果恰好等于除它本身外的所有因子之和,这个数就称为"完数"。输入为两个整数a和b,a和b之间用空格分隔。输出[a,b]内的所有完数,每个数字占一行。例如6是完数,因为6=1+2+3。
2023-11-01 16:02:30
75
1
空空如也
这个提取连续数字的算法有啥问题,为什么没有满分
2023-12-13
xdoj累加和校验为什么这个代码没有满分
2023-11-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人