自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 每日一练 C++ 熊孩子拜访

本题较为简单,因为只有一段子序列被倒序了,故只需要确定子序列的头和尾就完全决定了子序列,而在整段序列中,余子序列满足递增,子序列内部满足递减,尾部与正常序列不满足递减,根据以上规律,先通过递增筛查,首个不满足递增的位置就是子序列的头部,然后按照递减筛查,首个不满足递减的就是子序列的尾部,由此本题就被解决了。

2023-02-28 20:24:22 155

原创 每日一练 C++ 走楼梯

即可以把一个从0-n层的问题,化为两部分,先到i层,再由i层到n层,而i层到n层(需要走n-i层台阶)与0到n-i层是等效的,即后半部分可化为F(N-i),再考虑到存在直接跳过i层的情况,即在i-1层时选择跳2层,由上面的思路同理可以得到表达式。于是我们采取另外的思路,本题还可以用递归的思想解决,即到达第n层的走法数是由到达第n-1层以及到达第n-2层的走法数决定的,即F(N)=F(N-1)+F(N-2)比如所求的的解为i,j,那么对与这组解,全部的路径数为(i+j)的全排列,除以i和j全排列的乘积。

2023-02-10 13:35:00 563

原创 RSA 加密算法在C++中的实现 面向初学者(附代码)

我们用A来代表明文,B代表经过RSA算法加密后的密文。则可以用一个等式来阐明A,B间的关系:,且,即B为A的e次方后除以n的余数。其中(e,n)为公钥。设(d,n)为私钥,则私钥满足的关系为下面我们来看如何得到公钥和私钥组成的密钥对(需要用到二.介绍的数学知识)。1.得到公钥:选取两个充分大的素数p,q, 其乘积的值即为n,在得到n后,计算其欧拉函数的值,即在1到n-1中有多少数与n互素。因为n包含两个质因子p,q,所以在1到n-1中包含p,q因子的数均与n不互素。

2022-12-16 22:22:31 12687 6

原创 NOJ ACM-ICPC Arithmetic progressions

本人的数学水平不高,无法看懂这个定理的证明,但我大胆猜测这个定理的证明中可能蕴含这个数列的更多性质,利用这些性质,或许可以找到一个更优的算法。本题我采用的基本是属于枚举的算法,感觉时间复杂度有点高,但是跑起来能过,不知道是否存在更优的算法?有想法可以在评论区讨论一下。关于题目背景中的Dirichlet Theorem,可以看这个链接。

2022-12-09 22:39:14 197

原创 NOJ ACM-ICPC Scoring

本题可以作为熟悉结构体使用的基础题,没有太多思维上的挑战。

2022-12-09 21:34:20 171

原创 NOJ ACM-ICPC Specialized number

基本没有思维难度,只是NOJ系统答案好像有问题,只输出2991-3000的符合数据,猜测原因是忘记在新的循环中重新初始化各位数之和,导致只能输出一组连续的符合要求的数据,一旦有不符合要求的,就会停止输出了。想要AC的话就直接把循环范围设置在2991-3000,然后提交这个代码即可。#include using namespace std;int sumdec(int a){ int sum=0; while(1){ sum=sum+a%10;

2022-12-08 11:50:21 146

原创 NOJ ACM-ICPC Redistribute wealth

线性代数知识,数学抽象,最优解

2022-12-07 23:45:40 151

原创 NOJ 面向对象 幸运儿

本题可以视为约瑟夫问题的弱化版本,即不构成闭环结构,是断裂的线组合本题有三个值得注意的点:1.在进行淘汰时,需要考虑到不一定跑完了单次循环,例如卡牌为2,可能淘汰完2,4后就符合要求了,不需要淘汰6。即需要把循环结束条件放到小循环中,随时监测剩余的值。这种情况在卡牌值为1时表现的很明显,因为每一个数都可以被淘汰,故什么时候结束淘汰就与剩余人数相关性很大了。2.本题采用了结构体的方式,储存其原始位与改变位,其实原始位可以用数组下标来替代,由此可以避开使用结构体,但是这里还是选用了结构体,目的在于展现结构体的强

2022-12-05 22:55:22 217

原创 NOJ 复杂数据 分数加减法

本题有以下几点需要注意1.为了化简分子分母,需要用到最大公约数,即gcd函数,采用欧几里得算法编写gcd函数,即两个数的最大公约数为较小数与大数模小数的余数的最大公约数,由此构成递归结构。证明:gcd(a,b)=gcd(b,a%b) (假设a>b)a=p*b+q (qgcd(a,b)则gcd(a,b)=gcd(b,q)矛盾故gcd(b,q)=gcd(a,b)证毕2.输入为字符,ASCII-48后才为具体数值(‘1’ASCII为49)3.结

2022-12-03 13:42:01 255

原创 NOJ ACM-ICPC Graveyard

根据题意,我们将其抽象为,初始为一个圆等分为m份,插入后为等分为n+m份,求由m到n+m的过程中,m等分点的最小移动距离。接下来我们假想一个过程,将被m等分和被n+m等分的圆重合起来,并旋转圆使得原点重合,接下里的操作为,将m-1个初始分点mi移动到最近的(n+m)分点处,然后再插入n个分点到空缺的(n+m)分点位置处。且每个m分点必定出入两个连续的(n+m)分点间,对于每个分点最小移动距离为min{d1,d2},其中d1,d2分别为到两个分点的坐标差。即为移动的最小值,且插入新点不改变移动值。

2022-12-02 00:42:54 136

原创 NOJ ACM-ICPC Checksum algorithm

1.将字符进行加减运算,实际上得到的是其ASCII码值加减运算后的结果。2.数组初始化,若初始化一部分元素,则剩余元素全部自动初始化为0。3.本题需要读入空格,所以使用getline进行输入。

2022-12-01 12:40:17 500

原创 NOJ ACM-ICPC Road trip

本题内容较为基础,唯一需要注意的是输出为一次性输出,所以在计算出单次的s后,需要对其进行存储,存入一个数组中,最后将数组中的所有数据一次性输出,代码如下。

2022-11-29 23:01:16 89

原创 NOJ ACM-ICPC Bee

2.关于输入与输出,本人最开始采用定义了一个大数组来输入输出,但是提交后总是显示RE,一般为数组过小,所以最好的方法是改为用一个无上限的循环来读入,同时输出,读一个输出一个,对于没有规定输入输出上限的题目,采用这种方法无疑是最为稳妥的。1.递归算法涉及到函数的嵌套调用,X函数与Y函数会相互嵌套,在X函数体内调用Y时,由于Y在之前还未被定义,所以需要在X函数前加上一个Y函数的函数声明,确保可以嵌套调用。

2022-11-29 19:50:29 113

原创 NOJ 思维的体操 公园喷水器

(该推论可以利用反证法证明,即假设其中一个不为降序的前k个,而是后方的第i个,若满足,且前k个必定能将后方的第i个全覆盖,即将i替换为前k个必成立)推论3.半径小于1的圆为无效覆盖圆,若选用半径小于一的圆,必定还需要一个大于一的圆重叠在其之上才能全覆盖,故该圆为无效覆盖圆。推论1.输入n个喷水装置,若最少可以用k个装置覆盖,则将n个装置按照半径大小降序排列的前k个,必为满足条件的一组解。接下来我们思考有效覆盖面积的问题,因为是用圆去覆盖长方形,且只能在中心线上覆盖,由此我们得到推论二。

2022-11-29 11:49:14 187

原创 NOJ 思维的体操 阶乘合计

本题需要运用数学技巧分析阶乘和的特性,首先我们发现n!,这是个非常重要的性质。因为任何一个正整数n必定处于r!之间,由上述性质我们可以确定,若n可分解为阶乘的和,那么阶乘的和中必定包括(r-1)!这一项,由此我们可以减去这一项后,对新的n再次使用这个性质,反复几次后得到答案。

2022-11-27 21:25:05 239

原创 NOJ 字符串 字符串排序

本题最开始我使用的是二维数组,但是发现二维数组的值交换非常麻烦,需要用到strcpy函数,比较二维数组的大小也很麻烦,并且定义时需要二维数组大小,而输入字符的长度是不确定的,所以也会产生一些麻烦。改为使用字符串数组后,上述所有问题都可以非常轻松的解决。

2022-11-27 20:00:28 374

原创 C++字符串的输入输出

1.方便好用,对于string类C语言风格字符串都可使用。2.空格,tab,回车被视为输入项间隔,遇到这三个就结束。2.空格,tab,回车被视为输入项间隔,遇到这三个就结束。1.对string类对象无法使用,只能由此输入字符数组。2.可以输入空格,tab(很重要),不能输入回车。cin.getline(字符数组,输入的长度)1.对string类对象,字符数组都可以使用。cin>>数组变量名/string类变量名。getline(cin,string对象)2.可以读入空格,回车(\n)

2022-11-26 23:45:28 11332

原创 NOJ 字符串 分离连续数字

小题一道,附上代码

2022-11-26 22:44:34 180

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除