算法入门
要当陈越姥姥
这个作者很懒,什么都没留下…
展开
-
求一个字符串数组的最大值和次大值 void big(char *arr[],int size ,char** big11,char** big22)
思路:在main函数定义字符指针数组char* arr[5]={“wangdao”,”fenghua”,”xianyu”,”loulou”,”longge”} ,还有char* big1,char* big2,把&big1和&big2传递给big函数,最终big函数执行结束后,big1指向最大字符串,big2指向次大字符串```c#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h&g原创 2021-07-08 13:12:16 · 235 阅读 · 0 评论 -
将 字 符 串 中 的 空 格 替 换 成 “%020”
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#define maxn 512int main() {char s[maxn] = { 0 };char *p;int i=0,j=0,count = 0;while (gets(s) != NULL) {count = 0,i=0;while (s[i]) {if (s[i] =原创 2021-07-08 12:54:37 · 305 阅读 · 0 评论 -
输入一行字符串,把字符串翻转 。
Input: I____am__a__studentOutput: student__a__am____I思路:1、直接翻转一下2、把每个单词找出来,原地自身翻转指针实现```c#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#define maxn 512void myreverse(char *start,char *en原创 2021-07-07 08:00:08 · 239 阅读 · 0 评论 -
输入一行字符串(单词和若干空格),输出该行单词(每个单词一行)
Input: hello world how are you \nOutput: helloworldhowareyou思路:是空格就不输出,不是空格就输出,再碰到空格注意输出换行指针实现:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>#define ma原创 2021-07-07 07:19:42 · 2174 阅读 · 1 评论 -
poj 2912 Rochambeau-----讲解
题意:有N个人玩剪刀石头布,其中有个人是裁判,其他人分为3组。 这3组中每个组分别出剪刀,石头和布。 裁判可以任意出3个中的一个。 现在有M个回合,每个回合从N个人中任意选出两个人来玩,并给出结果。 要求输出最早找出裁判的回合数,以及裁判的编号! 还有可能无法确定,或者不可能出现这种结果。思路:利用并查集可以建立起相对关系,但是问题出在裁判可以任意出招,也就是说通过裁判建立起来的任何关系都是不可靠的。 所以不能通过裁判来建立任何关系。于是可以枚举裁判是哪一个,对有他参与的回合不予处理! 接下来就是如何确原创 2020-10-06 21:04:25 · 253 阅读 · 1 评论 -
How many Fibs?---改进
这题算是卡了我很久了因为我的思维现在还跟不上算法…其实主要原因是菜。。#include<iostream>#include<algorithm>#include<string>using namespace std;**int cmp(string a,string b){ if(b.size()==a.size()){ if(a==b) return 0; return a>b ? 1:-1; } return a.size()&g原创 2020-08-24 18:22:53 · 118 阅读 · 0 评论 -
1335: [蓝桥杯2017初赛]拉马车---栈和队列应用
小的时候,你玩过纸牌游戏吗?有一种叫做“拉马车”的游戏,规则很简单,却很吸引小朋友。其规则简述如下:假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的随机的纸牌序列如下:A方:[K, 8, X, K, A, 2, A, 9, 5, A]B方:[2, 7, K, 5, J, 5, Q, 6, K, 4]其中的X表示“10”,我们忽略了纸牌的花色。从A方开始,A、B双方轮流出牌。当轮到某一方出牌时,他从自己的纸牌队列的头部拿走一张,放到桌上,并且压在最上面一张纸牌上(如果有的话)。此例中,游原创 2020-08-18 17:05:37 · 304 阅读 · 0 评论 -
7-3 逆序的三位数 (10分)---队列
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。输入格式:每个测试是一个3位的正整数。输出格式:输出按位逆序的数。输入样例:123输出样例:321鸣谢安阳师范学院软件学院李康康同学补充数据!不知道大家这题是怎么解决的。我用的是队列。 #include <iostream>#include <cmath>#include <string>#include &l原创 2020-08-17 11:47:08 · 157 阅读 · 0 评论 -
7-2 然后是几点 (15分)
有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是负数。输入格式:输入在一行中给出2个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,原创 2020-08-16 18:40:07 · 381 阅读 · 0 评论 -
7-1 厘米换算英尺英寸 (15分)
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。输入格式:输入在一行中给出1个正整数,单位是厘米。输出格式:在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。输入样例:170输出样例:5 6看似简单,实则我有入坑了…陈越姥姥应该很喜欢我这样一有坑就跳的孩子吧…怎么说了这题我卡了半个小时。。。。因为我列方程式求解!原创 2020-08-16 18:16:09 · 221 阅读 · 0 评论 -
素数打表法
使用的题目是poj的2739这个打表方法用的是老师的int prime[5005],x;void find(int N){ x=0; prime[x]=2; int n=prime[x]; while(n<=N){ int flag=1; n=n+1; for(int j=0;j<=x;j++){ if(n%prime[j]==0){ flag=0; break; } } if(flag==1){ x++; prime[x原创 2020-08-14 16:55:06 · 173 阅读 · 0 评论 -
堆排序
void swap(ElementType *a ,ElementType *b){ ElementType temp; temp=*a; *a=*b; *b=temp;}void percDown(ElementType A[],int p,int N){ int child; ElementType temp; for(temp=A[p];2*p+1<N;p=child){ child=2*p+1; if(child!=N-1&&A[child]<原创 2020-08-13 19:00:35 · 77 阅读 · 0 评论 -
6-11 求自定类型元素序列的中位数 (25分)---堆排序解决
本题要求实现一个函数,求N个集合元素A[]的中位数,即序列中第⌊(N+1)/2⌋大的元素。其中集合元素的类型为自定义的ElementType。函数接口定义:ElementType Median( ElementType A[], int N );其中给定集合元素存放在数组A[]中,正整数N是数组元素个数。该函数须返回N个A[]元素的中位数,其值也必须是ElementType类型。裁判测试程序样例:#include <stdio.h>#define MAXN 10typedef fl原创 2020-08-13 16:52:00 · 351 阅读 · 0 评论 -
6-7 统计某类完全平方数 (20分)
本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。函数接口定义:int IsTheNumber ( const int N );其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。裁判测试程序样例:#include <stdio.h>#include <math.h>int IsTheNumber ( const int N );int main(){ int n1, n原创 2020-08-10 17:40:26 · 334 阅读 · 0 评论 -
1922 Ride to School
1922 -- Ride to School Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 25682 Accepted: 10189DescriptionMany graduate students of Peking University are living in Wanliu Campus, which is 4.5 kilometers from the main campus – Yanyuan. ...原创 2020-08-11 18:01:34 · 130 阅读 · 0 评论 -
6-10 阶乘计算升级版 (20分)
本题要求实现一个打印非负整数阶乘的函数。函数接口定义:void Print_Factorial ( const int N );其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。裁判测试程序样例:#include <stdio.h>void Print_Factorial ( const int N );int main(){int N;scanf("%d", &N);Print原创 2020-08-13 11:29:04 · 717 阅读 · 0 评论