ALGO-141_蓝桥杯_算法训练_P1102】的更多相关文章

定义一个学生结构体类型student,包括4个字段,姓名.性别.年龄和成绩.然后在主函数中定义一个结构体数组(长度不超过1000),并输入每个元素的值, 程序使用冒泡排序法将学生按照成绩从小到大的顺序排序,然后输出排序的结果. 输入格式:第一行是一个整数N(N<),表示元素个数:接下来N行每行描述一个元素,姓名.性别都是长度不超过20的字符串,年龄和成绩都是整型. 输出格式:按成绩从小到大输出所有元素,若多个学生成绩相同则成绩相同的同学之间保留原来的输入顺序. 输入: Alice female…
问题描述 相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了.今天,徐老师想测试一下大家对于字符串操作的掌握情况.徐老师自己定义了1,,,,5这5个参数分别指代不同的5种字符串操作,你需要根据传入的参数,按照徐老师的规定,对输入字符串进行格式转化. 徐老师指定的操作如下: 表示全部转化为大写字母输出,如abC 变成 ABC 表示全部转换为小写字母输出,如abC变成abc 表示将字符串整个逆序输出,如 abc 变成 cba 表示将字符串中对应的大写字母转换为小写字母,而将其中的小…
记: 本题目考的是最小生成数,可使用Kruskal算法 第一次,20分 原因:使用动态数组,有概率报运行错误(大雾= =) 第二次,100分 原因:改用静态数组,一次过 示例代码: #include <stdio.h> #include <stdlib.h> #define INF 99999999 typedef struct node node_t; typedef struct node { int S; int E; int L; }node; node e[]; int…
记: 一开始没接触过关于最短距离的算法,便开始翻阅关于图的知识, 得知关于最短距离的算法有Dijkstra算法(堆优化暂未看懂),Bellman-Ford算法,Floyd算法,SPFA算法. 由于数据输入中存在负边,故可使用的有Dijkstra算法堆优化以及SPFA队列优化, 于是在网上找模版,却报出了运行错误. 也没看出问题,故翻阅他人笔记 其中一篇关于SPFA详解的blog: http://blog.csdn.net/muxidreamtohit/article/details/789429…
这个题实际上思路是比较简单的,但是需要注意细节问题. 思路:读入数组之后进行排序,然后再求交.并.补集. 首先排序:(使用的是冒泡排序) #include<iostream> using namespace std; ]; ]; ]; ; ; ; void swap(int *a,int *b) { int temp = *a; *a = *b; *b = temp; } void sort(int a[],int n) { ; i < n; i++) { ; j < n-i; j…
这个题目就是求质数的乘积,在加一个模,思路比较简单,直接上代码: #include<iostream> using namespace std; bool isPrime(int a) { ; ; i < a; i++) { ) { flag = ; return false; } } ) { // cout<<a<<" "; return true; } } int main() { long n; ;//当前的数字 ;//记录有多少个质数…
问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个包含一个正整数m,表示询问个数. 接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个.序列元素从1开始标号. 输出格式 总共输出m行,每行一个数,表示询问的答案. 样例输入 5 1 2 3 4 5 2 1 5 2 2 3 2 样例输出 4 2 数据规模与约定 对于30%的数据,n…
问题描述 输入A,B. 输出A+B. 输入格式 输入包含两个整数A,B,用一个空格分隔. 输出格式 输出一个整数,表示A+B的值. 样例输入 样例输出 数据规模和约定 -,,,<=A,B<=,,,. AC代码: #include <stdio.h> int main(void) { int a,b; scanf("%d %d",&a,&b); printf("%d",a+b); ; }…
问题描述 输入10个整数组成的序列,要求对其进行升序排序,并去掉重复元素. 输入格式 10个整数. 输出格式 多行输出,每行一个元素. 样例输入 样例输出 解题思路: 若输入的数字存在数组中,剔除,否则存储 按从小到大的顺序排序,并输出 AC代码: #include <stdio.h> #define MAX 10 int main(void) { , j = , k = ; ]; ; k < MAX ; k ++) { scanf("%d",&arr[i++…
问题描述 从一个大小为n的整数集中选取一些元素,使得它们的和等于给定的值T.每个元素限选一次,不能一个都不选. 输入格式 第一行一个正整数n,表示整数集内元素的个数. 第二行n个整数,用空格隔开. 第三行一个整数T,表示要达到的和. 输出格式 输出有若干行,每行输出一组解,即所选取的数字,按照输入中的顺序排列. 若有多组解,优先输出不包含第n个整数的:若都包含或都不包含,优先输出不包含第n-1个整数的,依次类推. 最后一行输出总方案数. 样例输入 - - - 样例输出 - - - - 数据规模和…
问题描述 有两个整数,如果每个整数的约数和(除了它本身以外)等于对方,我们就称这对数是友好的.例如: 9的约数和有:+= 4的约数和有:+= 所以9和4不是友好的. 220的约数和有: = 284的约数和有: = 所以220和284是友好的. 编写程序,判断两个数是否是友好数. 输入格式 一行,两个整数,由空格分隔 输出格式 如果是友好数,输出"yes",否则输出"no",注意不包含引号. 样例输入 样例输出 yes 数据规模和约定 两个整数都小于10000 解题思…
问题描述 78这个数可以表示为连续正整数的和,++,+++,++. 输入一个正整数 n(<=) 输出 m 行(n有m种表示法),每行是两个正整数a,b,表示a+(a+)+...+b=n. 对于多种表示法,a小的方案先输出. 样例输入 样例输出 解题思路: 枚举i=1-n的数 以i为起点,枚举j=i-n的值,并累加j,当加j后的值大于n,跳出 输出i和j-1(j由于在循环中会多加一次),即累加该区间的值可以得到n AC代码: #include <stdio.h> int main(void…
问题描述 道德经曰:一生二,二生三,三生万物. 对于任意正整数n,我们定义d(n)的值为为n加上组成n的各个数字的和.例如,d()=++=, d()=++++=. 因此,给定了任意一个n作为起点,你可以构造如下一个递增序列:n,d(n),d(d(n)),d(d(d(n)))....例如,从33开始的递增序列为: , , , , , , , , , , , , , ... 我们把n叫做d(n)的生成元,在上面的数列中,33是39的生成元,39是51的生成元,等等.有一些数字甚至可以有两个生成元,比…
问题描述 涛涛立志要做新好青年,他最近在学做菜.由于技术还很生疏,他只会用鸡蛋,西红柿,鸡丁,辣酱这四种原料来做菜,我们给这四种原料标上字母A,B,C,D. 涛涛现在会做的菜有五种: . 西红柿炒鸡蛋 原料:AABDD . 酸辣鸡丁 原料:ABCD . 宫保鸡丁 原料:CCD . 水煮西红柿 原料:BBB . 怪味蛋 原料:AD 这天早上,开开去早市给涛涛买了一些原料回来.由于事先没有什么计划,涛涛决定,对于现存的原料,每次尽量做菜单上靠前(即编号小)的菜. 现在请你写一个程序,判断一下开开和涛…
问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都想给他留一些苹果.第一只猴子悄悄来到山洞,把苹果平均分成n份,把剩下的m个苹果吃了,然后藏起来一份,最后把剩下的苹果重新合在一起.这些猴子依次悄悄来到山洞,都做同样的操作,恰好每次都剩下了m个苹果.第二天,这些猴子来到山洞,把剩下的苹果分成n分,巧了,还是剩下了m个.问,原来这些猴子至少采了多少个苹果. 输入格式 两个整数,n m 输出格式 一个整数,表示原来苹果的数目 样例输入 样例输出 数…
问题描述 Given two integers A and B, your task is to output their sum, A+B. 输入格式 The input contains of only one line, consisting of two integers A and B. ( ≤ A,B ≤ ) 输出格式 The output should contain only one number that is A+B. 样例输入 样例输出 AC代码: #include <st…
问题描述 地球人都知道,在国际象棋中,后如同太阳,光芒四射,威风八面,它能控制横.坚.斜线位置. 看过清宫戏的中国人都知道,后宫乃步步惊心的险恶之地.各皇后都有自己的势力范围,但也总能找到相安无事的办法. 所有中国人都知道,皇权神圣,伴君如伴虎,触龙颜者死...... 现在有一个n*n的皇宫,国王占据他所在位置及周围的共9个格子,这些格子皇后不能使用(如果国王在王宫的边上,占用的格子可能不到9个).当然,皇后也不会攻击国王. 现在知道了国王的位置(x,y)(国王位于第x行第y列,x,y的起始行和…
问题描述 判断给定的三位数是否 水仙花 数.所谓 水仙花 数是指其值等于它本身 每位数字立方和的数.例 就是一个 水仙花 数. =++ 输入格式 一个整数. 输出格式 是水仙花数,输出"YES",否则输出"NO"(不包括引号) 样例输入 样例输出 NO 数据规模和约定 一个三位的整数,否则输出"NO" AC代码: #include <stdio.h> #define X3(x) ((x)*(x)*(x)) /*立方*/ int mai…
问题描述 s01串初始为" 按以下方式变换 0变1,1变01 输入格式 1个整数(~) 输出格式 n次变换后s01串 样例输入 样例输出 数据规模和约定 ~ 记: 题目给出的信息带有误导性,让人看不出规律(1应该是"1"才对) 具体的要求是通过看测试数据的结果得到的(lll¬ω¬) 即:n的字符串 = (n-1的字符串) + (n-2的字符串) AC代码: #include <stdio.h> #define MAX 10010 /*默认0为"0&quo…
有一份提货单,其数据项目有:商品名(MC).单价(DJ).数量(SL).定义一个结构体prut,其成员是上面的三项数据.在主函数中定义一个prut类型的结构体数组,输入每个元素的值,计算并输出提货单的总金额. 输入格式:第一行是数据项个数N(N<),接下来每一行是一个数据项.商品名是长度不超过100的字符串,单价为double类型,数量为整型. 输出格式:double类型的总金额. 输入: book pen computer flower 输出: 3497.500000 AC代码: #inclu…
记: 这里用到了printf("%*s%s%*s\n",n-i,"",arr,n-i,"");的写法, 其中%*s中的*代表该字符串s的个数,s为给字符串, 这写法一般用在打印中 AC代码: #include <stdio.h> #define MAX 50 int main(void) { int i,n; ]; scanf("%d",&n); sprintf(arr,"%s",&qu…
AC代码: #include <stdio.h> int main(void) { int i; ; i <= ; i ++) { == && i% == ) { printf("%d\n",i); } } ; }…
问题描述 打印所有100至999之间的水仙花数.所谓水仙花数是指满足其各位数字立方和为该数字本身的整数,例如 =^+^+^. 样例输入 一个满足题目要求的输入范例. 例: 无 样例输出 xxx xxx AC代码: #include <stdio.h> #define X3(x) ((x)*(x)*(x)) /*立方*/ int main(void) { int i; int a,b,c; ; i <= ; i ++) { a = i/; b = i/%; c = i%; if (i ==…
AC代码: #include <stdio.h> int main(void) { int n,m,sum; int i,j; scanf("%d %d",&n,&m); sum = ; ; i <= m ; i ++) { sum *= n; printf("%12d",sum); == ) { printf("\n"); } } ; }…
记: 掌握完数的概念 AC代码: #include <stdio.h> int main(void) { int i,j,sum; ; i <= ; i ++) { sum = ; ; j < i ; j ++) { ) { sum += j; } } if (sum == i) { printf("%d\n",i); } } ; }…
记: 进制转换 AC代码: #include <stdio.h> #define K 2 int main(void) { ; scanf("%d",&n); ) { && n%K == ) { break; } n = n/K; ans ++; } printf("%d",ans); ; }…
问题描述 给定n和len,输出n!末尾len位. 输入格式 一行两个正整数n和len. 输出格式 一行一个字符串,表示答案.长度不足用前置零补全. 样例输入 样例输出 数据规模和约定 n<=, len<=. 记: 高精度类型涉及到数据溢出,注意用数组保存 #include <stdio.h> #define LEN 10 int main(void) { int n,k; int i,j; int carry; /*进位存储*/ ] = {};/*数组存阶乘值,防溢出*/ scan…
问题描述 我们可以把由“”和“”组成的字符串分为三类:全“”串称为B串,全“”串称为I串,既含“”又含“”的串则称为F串. FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三种.由一个长度为2N的“”串S可以构造出一棵FBI树T,递归的构造方法如下: )T的根结点为R,其类型与串S的类型相同: )若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2:由左子串S1构造R的左子树T1,由右子串S2构造R的右子树T2. 现在给定一个长度为2N的“”串,请用上述构造方法构造出…
问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎 么布置,你说了算,只要不超过N元钱就行”.今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元.于是,他把每件物品规定了一 个重要度,分为5等:用整数1~5表示,第5等最重要.他还从因特网上查到了每件物品的价格(都是整数元).他希望在不超过N元(可以等于N元)的前提 下,使每件物品的价格与重要度的乘积的总和最大. 设第j…
问题描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值.我会给你一段时间,在这段时间里,你可以采到一些草药.如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大.” 如果你是辰辰,你能完成这个任务吗? 输入格式 第一行有两个整数T( <= T <= )和M( <= M…