- 博客(24)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 康托尔三分集
1883年,德国数学家康托(G.Cantor)提出了如今广为人知的三分康托集,或称康托尔集。三分康托集是很容易构造的,然而,它却显示出许多最典型的分形特征。它是从单位区间出发,再由这个区间不断地去掉部分子区间的过程。 三分康托集的构造过程是: 第一步,把闭区间[0,1]平均分为三段,去掉中间的 1/3 部分段,则只剩下两个闭区间[0,1/3]和[2/3,1]。 第二步,再将剩下的两个闭...
2020-04-03 20:15:21
5115
原创 PAT 1036 跟奥巴马一起编程
题目链接1036 跟奥巴马一起编程美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出格式:输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的 50
2021-01-27 22:59:10
133
原创 PAT 1035 插入与归并
题目链接1035 插入与归并根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成 N 个只包含 1 个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下 1 个有序的序列。现给定原始序列和由某排序算法产生的中间序列,请你判断该算法究竟是哪种排序算法?输入格式:输入在第一行给出正整数 N (≤100);随后一行
2021-01-26 23:12:46
153
原创 PAT 1034 有理数四则运算
题目链接 1034 有理数四则运算本题要求编写程序,计算 2 个有理数的和、差、积、商。输入格式:输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。输出格式:分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式 k a/b,其中 k 是整数部分,a/b 是最简分数部分;若为负数,则须加括号;若除法分母为
2021-01-25 23:25:16
120
原创 浮点数二分法-实现sqrt函数
#include <iostream>using namespace std;int main(){ double x; scanf("%lf",&x); double l = 0 , r = x;//确定边界 while((r-l)>=1e-8){//确定精度进行循环 double mid = (l+r)/2;//每次都找到中间值 if(mid * mid >= x) r = mid; //如果mid
2020-05-24 17:50:47
420
原创 算法模板2-归并排序
归并排序,算法思想是分治来解决有序数据的排序(1)确定中间值(2)递归排序两端,是左右两边都有序(3)用双指针,合二为一void merge_sort(int q[N],int l,int r){ if(l>=r) return; //如果区间之内没有数或者只有一个数就说明不用排序了 int mid = l+r >> 1; //取中间值 merge_sort(q,l,mid) , merge_sort(q,mid+1,r);//两次递归,让左右两边都有序
2020-05-20 21:55:27
139
原创 算法模板1-快速排序
简单说一下快排的思路,先确定一个目标值x,将原数组分为两部分,左边全都小于等于x,右边的全都大于等于x,然后再用递归重复上述操作,直至排序结束。void quick_sort(int nums[],int l,int r){ if(l >= r) return;//递归结束条件 int x = nums[l+r >> 1], i = l-1, j = r+1;//定义x和两个指针 while(i < j){ //两个do while 将区间分
2020-05-20 11:02:10
142
原创 Leetcode-912-排序数组(快排,归并)
原题链接给你一个整数数组 nums,请你将该数组升序排列。示例 1:输入:nums = [5,2,3,1]输出:[1,2,3,5]示例 2:输入:nums = [5,1,1,2,0,0]输出:[0,0,1,1,2,5]提示:1 <= nums.length <= 50000-50000 <= nums[i] <= 50000来源:力扣(LeetCode)快排模板的运用class Solution {public: vector<int>
2020-05-20 10:47:18
262
原创 异或的运用(Leetcode -136只出现了一次的数字)
原题链接题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4来源:力扣(LeetCode)题解:异或的几个知识:1.相同的数异或等于0 例如: a^a = 0;2.0异或任何数等于这个数 例如:a^0 = a;3.异或满足交换律 例:a^b ^ c = a
2020-05-14 00:35:11
166
原创 POJ-2386--Lake Counting
原题链接DescriptionDue to recent rains, water has pooled in various places in Farmer John’s field, which is represented by a rectangle of N x M (1 <= N <= 100; 1 <= M <= 100) squares. Each s...
2020-05-06 11:59:30
138
原创 Leetcode-山脉数组的峰顶索引-二分查找
Leetcode-852解法一:最大值法class Solution {public: int peakIndexInMountainArray(vector<int>& A) { int n = A.size(),maxx=0; //遍历vector查找最大值 for(int i=0;i<n;i++){ ...
2020-05-05 00:06:11
163
原创 Poj-Ants
原题链接Sample Input210 32 6 7214 711 12 7 13 176 23 191Sample Output4 838 207蚂蚁相遇后沿原路返回,但是如果不考虑蚂蚁之间的差别,其实完全可以想成是擦肩而过,这样想问题就很简单了。#include <iostream>#include <cstdio>using namespac...
2020-05-04 18:58:48
191
原创 三角形
输入n = 5a = {2,3,4,5,10}输出12(选择3、4、5时)输入n = 4a = {4,5,10,20}输出0(无论怎么选都无法组成三角形)挑战程序设计竞赛书中给了O(n^3)解法,进行排序后再比较可实现O(nlogn)定义一个数组nums[N]从下标0开始存。思路:题目要求能成三角形的最长周长,我们给所有给定的边进行排序后,从最长的一条边(nums[n-1...
2020-04-23 18:16:58
115
原创 PTA 矩阵A乘以B
给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra行、Ca列,B有Rb行、Cb列,则只有Ca与Rb相等时,两个矩阵才能相乘。输入格式:输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵的R和C都...
2020-04-09 22:30:54
1706
原创 PTA 一帮一
“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。输入格式:输入第一行给出正偶数N(≤\le≤50),即全班学生的人数。此后N行,按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)...
2020-04-08 21:50:46
1226
原创 PTA出租
下面是新浪微博上曾经很火的一张图:一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。本题要求你编写一个程序,为任何一个电话号码生成这段代码 —— 事实上,...
2020-04-07 22:22:51
464
原创 PTA划拳
划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。输入格式:输入第一行先给出一个正整数 N(≤100),随后 N 行,每行给出一轮划拳的记录,格式...
2020-04-05 14:13:54
179
原创 PTA光棍整除-C++
光棍整除这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小...
2020-04-02 22:22:06
301
原创 PTA 点赞
微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。输入格式:输入在第一行给出一个正整数N(<=1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F1 … FK”,其中 1<=K<...
2020-04-01 22:34:58
4342
4
原创 a^b(快速幂)-C++
求 a 的 b 次方对 p 取模的值。输入格式三个整数 a,b,p ,在同一行用空格隔开。输出格式输出一个整数,表示a^b mod p的值。数据范围0≤a,b,p≤109输入样例:3 2 7输出样例:2由于测试用例很大暴力就会被下面这个数据卡爆所以应该用快速幂#include<iostream>using namespace std;long lon...
2020-04-01 00:55:42
623
原创 PAT 输出GPLT
给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT…这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。输出格式:在一行中按题目要求输出排序后的字...
2020-03-31 23:09:23
130
原创 PAT N个数求和
本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。输入格式:输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 …给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。输出格式:输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写...
2020-03-31 23:06:41
1043
原创 竞赛常用输入输出
ACM常见输入输出输入不说明有多少个Input Block,以EOF为结束标志while (scanf("%d %d",&a,&b)!=EOF){ printf("%d\n",a+b); }输入一开始就会说有N个Input Block,下面接着是N个Input Block #include int main() { int n; ...
2019-10-28 07:33:23
609
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人