山东理工大学
CodeRanger
前人种树,后人乘凉
展开
-
Sum of Consecutive Prime Numbers
我们都知道数字是个好玩意,那么我们想知道一个数字能是否能用若干个(或许是一个)连续的素数之和表示,并且想知道有多少种方法。例如,53 有两种表示方法 5 + 7 + 11 + 13 + 17 和 53。 现在给你一个整数 n,你要告诉他这个数字有多少种不同的连续素数和表示方式。Input多组数据输入,每行一个数字 n,当 n=0 时结束。 n 在 2 与 10000之间。Output每个输出占一行,输出对应的答案。Sample Input231741206661253原创 2022-03-19 20:11:57 · 397 阅读 · 0 评论 -
约瑟夫问题(SDUT)
我们先明确什么是约瑟夫问题:n个人围成一圈,初始编号从1~n排列,从约定编号为x的人(通常x为1)开始报数,数到第m个人出圈,接着又从1开始报数,报到第m个数的人又退出圈,以此类推,最后圈内只剩下一个人,这个人就是赢家,求出赢家的编号。如果我们用链表来做,那么相信已经有了思路:正序建表,删除链表中的元素。...原创 2022-02-28 17:27:22 · 935 阅读 · 1 评论 -
高精度计算之加法(A+B)
洛谷P1601 A+B Problem(高精)高精度计算不是定义long long就可以解决的,只能用数组模拟的方式解。其大致思想就是用数组的一位,假设是a[0],来存储一个大数的一位或多位,并用这个高精度数组进行计算,假设我们给出:358934760892734899共18位38960302975237462共17位这两个数,那我们在高精度数组里面的存放方式(多位)就是: 那为什么第一个位里...原创 2022-02-26 14:47:36 · 842 阅读 · 0 评论 -
初探图的储存之邻接矩阵和邻接表
邻接矩阵表示顶点之间关系的矩阵,储存方法是:一个二维数组储存图中顶点之间的邻接关系。在一个无向图中,如果两个节点之间有连接,那么我们初始化map[i][j]=map[j][i]=1,不连接则置为0.给个图:根据上面的初始化方法他的邻接矩阵的表示: 如果是带权图,那么就给他赋上权值就可以,一般不连接的节点赋值为INF(0x3f3f3f3f)邻接矩阵的存储优点:快速判断两节点之间是否有连接,快速计算节点之间的度 。邻接...原创 2022-02-14 15:53:07 · 611 阅读 · 0 评论 -
Dijkstra算法初探,但是很详细
下面我简称Dijkstra算法为D算法。D算法是在图中求出长度最短的一条路径,再参照该最短路径求出长度次短的一条路径,直到求出点源到其他各个节点的最短路径。那D算法的基本思想是什么呢?将节点设为一个集合V,再将集合V划为两部分S和V-S。S集合中的节点的最短路径已经确定,V-S中的节点的最短路径待定。假设我们有下面这个图(画的有点拉):从源点出发只经过S中的节点到达V-S的路径称为特殊路径。D算法的贪心策略就是选择最短的特殊路径长度dist[t],将节点t加入集合S中,同时更新数组dist。原创 2022-02-12 17:36:40 · 1258 阅读 · 1 评论 -
插入排序与希尔排序(SDUT)
会打牌么?反正我是不会,如果你会打牌那肯定比我更好理解插入排序的原理。首先你得到了第一张牌,他就一张牌你没法排序对吧,从第二张牌开始,就开始排序了。插入排序就是把你下一次抽到的牌,与前面一张/一手牌逐个进行比较,按照一定的顺序排好就可以了。下面附上代码:void charu(int a[], int len){ for (int i = 1; i < len; i++) { int key = a[i]; int j = i - 1; while ((j >原创 2022-02-11 21:53:34 · 858 阅读 · 1 评论 -
B - 图的基本存储的基本方式二(SDUT)
Description解决图论问题,首先就要思考用什么样的方式存储图。但是小鑫却怎么也弄不明白如何存图才能有利于解决问题。你能帮他解决这个问题么?Input多组输入,到文件结尾。每一组第一行有两个数n、m表示n个点,m条有向边。接下来有m行,每行两个数u、v代表u到v有一条有向边。第m+2行有一个数q代表询问次数,接下来q行每行有一个询问,输入两个数为a,b。注意:点的编号为0~n-1,2<=n<=500000,0<=m<=500000,0<=q&l..原创 2022-02-09 16:52:09 · 203 阅读 · 0 评论 -
差分思想(2041. 干草堆)
差分是一种算法。原创 2022-02-03 22:20:14 · 698 阅读 · 0 评论 -
E - 传纸条(SDUT)
Description传纸条是一种在课堂上传递信息的老方法,虽然现在手机短信和QQ聊天越来越普及,但是手写的信息会让人感到一种亲切感。对许多学生而言,在学校里传递一些私秘性的信息是一种令人兴奋的打发时光的方式,特别是在一些令人厌烦的课堂上。XX和YY经常在自习课的时候传纸条来传递一些私密性的信息。但是他们的座位相隔比较远,传纸条要通过其他人才能到达对方。在传递过程中,难免会有一些好奇心比较强的同学偷看纸条的内容。所以他们想到了一个办法,对纸条内容进行加密。加密规则很简单:多次在...原创 2022-01-24 12:03:53 · 335 阅读 · 2 评论 -
方阵循环右移(PTA)
本题要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m+1、⋯、n−1、0、1、⋯、n−m−1列。输入格式:输入第一行给出两个正整数m和n(1≤n≤6)。接下来一共n行,每行n个整数,表示一个n阶的方阵。输出格式:按照输入格式输出移动后的方阵:即输出n行,每行n个整数,每个整数后输出一个空格。输入样例:2 31 2 34 5 67 8 9输出样例:2 3 1 5 6 4 8 9 7 这道题是有关二维原创 2022-01-03 20:44:58 · 2188 阅读 · 1 评论 -
查找指定字符 PTA
本题要求编写程序,从给定字符串中查找某指定的字符。输入格式:输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。输出格式:如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。输入样例1:mprogramming输出样例1:index = 7代码:#include<stdio.h>int main(){ int i,k,原创 2022-01-03 13:54:02 · 695 阅读 · 0 评论 -
C语言实验——删除指定字符(SDUT)
Description从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。Input第一行是一个字符串,不超过100个字符;第二行是一个字符。Output删除指定字符后的字符串。SampleInputsdf$$$sdf$$$Outputsdfsdf注意,要删除的字符c可能是空格符‘ ’,所以如果用scanf输入的话,识别到空格或回车就结束输入了,结果自然出现错误。#include <stdio....原创 2021-12-29 15:27:45 · 2837 阅读 · 1 评论 -
平方数及其相关思想(SDUT)
Description飞飞特别喜欢平方数,可是他数学并不好,你能帮他计算 n 与 m 之间所有平方数之和吗?提示:若一个整数的开方还是整数,它就是平方数。例如:4、9、16、25是平方数。n 和 m 均可能为 0 至 100000000 内的任意整数,n、m不一定有序。Input第一行T代表数据的组数。接下来有T行,每行两个整数n,m (0 <= n,m <= 100000000)Output输出一个整数,代表所求区间内平方数之和。SampleIn...原创 2021-12-25 23:35:15 · 957 阅读 · 3 评论