Algorithm Design competition
yunxiaoMr
where there great love,there are always miracles!Just work hard and be yourself, and then you will succeed!
展开
-
LQB:特殊的数字
#include<iostream>#include<cmath>using namespace std;int main(){ for(int i=100;i<=999;i++){ int b=i/100; int s=(i%100)/10; int g=i%10; if(i==pow(b,3)+pow(s,3)+pow(g,3)){ ...原创 2019-03-13 21:10:49 · 332 阅读 · 0 评论 -
LQB 2016 快速排序
快速排序排序在各种场合经常被用到。快速排序是十分常用的高效率的算法。其思想是:先选一个“标尺”,用它把整个队列过一遍筛子,以保证:其左边的元素都不大于它,其右边的元素都不小于它。这样,排序问题就被分割为两个子区间。再分别对子区间排序就可以了。下面的代码是一种实现,请分析并填写划线部分缺少的代码。#include <stdio.h>void swap(int a...原创 2019-03-20 17:00:24 · 112 阅读 · 0 评论 -
LQB 2016 抽签 (DFS)
抽签X星球要派出一个5人组成的观察团前往W星。其中:A国最多可以派出4人。B国最多可以派出2人。C国最多可以派出2人。....那么最终派往W星的观察团会有多少种国别的不同组合呢?下面的程序解决了这个问题。数组a[] 中既是每个国家可以派出的最多的名额。程序执行结果为:DEFFFCEFFFCDFFFCDEFFCCFFFCCEFFCCDFFCCDEFBEFF...原创 2019-03-20 17:21:05 · 108 阅读 · 0 评论 -
LQB:矩阵乘法
问题描述 输入两个矩阵,分别是m*s,s*n大小。输出两个矩阵相乘的结果。输入格式 第一行,空格隔开的三个正整数m,s,n(均不超过200)。 接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。 接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。输出格式 m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。样例输入2 3 21 0 -1...原创 2019-03-17 09:49:17 · 124 阅读 · 0 评论 -
LQB:A+B问题
#include<iostream>using namespace std;int main(){ int M,N; cin>>M>>N; cout<<(M+N); return 0;}原创 2019-03-12 16:43:43 · 134 阅读 · 0 评论 -
LQB:出现次数最多的整数(100分和80分方案)(注:题目有坑)
问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。 输入格式:第一行是一个整数N,N £ 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。 输出格式...原创 2019-03-17 11:10:17 · 152 阅读 · 0 评论 -
LQB:序列求和
#include<iostream>using namespace std;int main(){ unsigned long long n; cin>>n; unsigned long long sum=0; sum=(n+1)*n/2;// for(int i=1;i<=n;i++){// sum+=i;// } //运行超时90分 ...原创 2019-03-12 17:06:40 · 94 阅读 · 0 评论 -
LQB:圆的面积
#include<iostream>#include<cstdio>#include<cmath>using namespace std;#define R 10000int main(){ int r; cin>>r; double PI = atan(1.0)*4; //求PI的公式 double result=PI*pow...原创 2019-03-12 17:16:05 · 113 阅读 · 1 评论 -
LQB:Fibonacci数列
#include<iostream>using namespace std; int main(){ unsigned long i=0,f1=1,f2=1,f3=1,n; //1000000 用unsigned long;1000000000 用unsigned long long cin>>n; if(n>2) fo...原创 2019-03-12 17:18:54 · 142 阅读 · 0 评论 -
LQB:闰年判断
#include<iostream>using namespace std;bool solve(int year){ bool flag=false; if((year%4==0 && year%100!=0)||(year%400==0)){ flag=true; } return flag;}int main(){ int year; c...原创 2019-03-13 10:07:23 · 127 阅读 · 0 评论 -
LQB:01字串
#include<iostream>using namespace std;int main(){ for(int k=0;k<32;k++){ int i=k; int a[5]={0,0,0,0,0}; for(int j=4;i!=0;j--){ int temp=i%2; a[j]=temp; i=i/2; } for(int...原创 2019-03-13 10:33:47 · 127 阅读 · 0 评论 -
LQB:字母图形
#include<iostream>using namespace std;#define N 26int a[N][N]={0};int main(){ int n,m; cin>>n>>m; for(int i=0,k=0;i<n;i++,k++){ for(int j=k,A=65;j<m;j++,A++){ a[k]...原创 2019-03-13 11:43:58 · 149 阅读 · 0 评论 -
LQB:数列特征
#include<iostream>using namespace std;#define N 10000double a[N];int main(){ int n; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } double max_=-10001,min_=10001,sum_=0; f...原创 2019-03-13 12:00:28 · 104 阅读 · 0 评论 -
LQB:查找整数
#include<iostream>using namespace std;#define N 1001int a[N];int main(){ int n,s; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } cin>>s; int index=-1; for(int i=0;...原创 2019-03-13 12:09:49 · 135 阅读 · 0 评论 -
LQB:杨辉三角形
#include<iostream>using namespace std;#define N 34int a[N][N];int main(){ int n; cin>>n; for(int i=0;i<n;i++){ a[i][0]=1; a[i][i]=1; } for(int i=0;i<n;i++){ for(int...原创 2019-03-13 12:25:18 · 154 阅读 · 0 评论 -
LQB:历届试题 回文数字
问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。 本题要求你找到一些5位或6位的十进制数字。满足如下要求: 该数字的各个数位之和等于输入的整数。输入格式 一个正整数 n (10<n<100), 表示要求满足的数位和。输出格式 若干行,每行包含一个满足要求的5位或6位整数。...原创 2019-03-18 19:39:17 · 154 阅读 · 0 评论 -
LQB 2016 生日蜡烛(枚举)
生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。#include<iostream>using namespace std;int...原创 2019-03-20 16:34:07 · 128 阅读 · 0 评论 -
LQB 2016 煤球数目 (递归)
煤球数目有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。#include<iostream>using namespace std;...原创 2019-03-20 16:22:32 · 186 阅读 · 1 评论 -
LQB:大小写转换
问题描述 编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。 输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。 输出格式:输出经过转换后的字符串。输入输出样例样例输入AeDb样例输出aEdB#include<...原创 2019-03-15 17:33:21 · 120 阅读 · 0 评论 -
LQB:回文数
#include<iostream>using namespace std;int main(){ for(int i=1000;i<=9999;i++){ int q=i/1000; int b=(i%1000)/100; int s=(i%100)/10; int g=i%10; if(q==g && b==s){ cout&...原创 2019-03-13 21:17:00 · 109 阅读 · 0 评论 -
LQB:特殊回文数
#include<iostream>using namespace std;int main(){ unsigned long n; cin>>n; for(unsigned long i=10000;i<=99999;i++){ int w=i/10000; int q=(i%10000)/1000; int b=(i%1000)/100;...原创 2019-03-13 21:31:29 · 112 阅读 · 0 评论 -
LQB:十进制转十六进制
#include<iostream>using namespace std;int main(){ unsigned long long a; cin>>a; printf("%X",a); return 0;}原创 2019-03-13 21:42:18 · 114 阅读 · 0 评论 -
LQB:送分啦
#include<iostream>using namespace std;int main(){ cout<<"yes"; return 0; }原创 2019-03-14 09:19:35 · 129 阅读 · 0 评论 -
LQB:关联矩阵
问题描述 有一个n个结点m条边的有向图,请输出他的关联矩阵。输入格式 第一行两个整数n、m,表示图中结点和边的数目。n<=100,m<=1000。 接下来m行,每行两个整数a、b,表示图中有(a,b)边。 注意图中可能含有重边,但不会有自环。输出格式 输出该图的关联矩阵,注意请勿改变边和结点的顺序。样例输入5 91 23 11 52 52 32...原创 2019-03-14 15:35:00 · 241 阅读 · 0 评论 -
LQB:寻找数组中最大值
问题描述 对于给定整数数组a[],寻找其中最大值,并返回下标。输入格式 整数数组a[],数组元素个数小于1等于100。输出数据分作两行:第一行只有一个数,表示数组元素个数;第二行为数组的各个元素。输出格式 输出最大值,及其下标样例输入33 2 1样例输出3 0#include<iostream>using namespace std;#defin...原创 2019-03-14 16:05:36 · 113 阅读 · 0 评论 -
LQB:Torry的困惑
问题描述 Torry从小喜爱数学。一天,老师告诉他,像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题,前10、100、1000、10000……个质数的乘积是多少呢?他把这个问题告诉老师。老师愣住了,一时回答不出来。于是Torry求助于会编程的你,请你算出前n个质数的乘积。不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值。输入格式 仅包含一个正整...原创 2019-03-14 16:35:28 · 114 阅读 · 0 评论 -
LQB:最小乘积(基本型)
问题描述 给两组数,各n个。 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。 例如两组数分别为:1 3 -5和-2 4 1 那么对应乘积取和的最小值应为: (-5) * 4 + 3 * (-2) + 1 * 1 = -25输入格式 第一个行一个数T表示数据组数。后面每组数据,先读入一个n,接下来两行每行n个数,每...原创 2019-03-14 17:10:40 · 144 阅读 · 0 评论 -
LQB:删除数组零元素
从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。输出删除后数组中元素的个数并依次输出数组元素。样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数)5 3 4 ...原创 2019-03-14 17:49:29 · 223 阅读 · 0 评论 -
LQB:动态数组使用
从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出。要求尽可能使用函数实现程序代码。平均值为小数的只保留其整数部分。样例输入: 5 3 4 0 0 2样例输出:9 1样例输入: 73 2 7 5 2 9 1样例输出:29 4#include<iostream>using namespace std;//尽量使用函数 i...原创 2019-03-14 17:56:54 · 106 阅读 · 0 评论 -
LQB:交换两个数的方法
#include <iostream>using namespace std;int main(){ int a, b; cin>>a>>b;//1.加减减(不借助第三变量) a = a+b; //执行此条语句时 a = a0 + b0, b = b0; b = a-b; //执行此条语句时 a = a0 + b0, b = a0; a =...原创 2019-03-14 18:20:28 · 133 阅读 · 0 评论 -
LQB:数列排序
问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200输入格式 第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式 输出一行,按从小到大的顺序输出排序后的数列。样例输入58 3 6 4 9样例输出3 4 6 8 9#include<iostream>using...原创 2019-03-14 18:24:25 · 126 阅读 · 0 评论 -
LQB:十六进制转十进制
问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535#include<iostream>using namespace std;int main(){ unsigned long long a; scanf(...原创 2019-03-14 18:25:18 · 113 阅读 · 0 评论 -
LQB:历届试题 翻硬币 (贪心)
问题描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的...原创 2019-03-19 16:42:24 · 143 阅读 · 0 评论 -
LQB:历届试题 连号区间数
问题描述小明这些天一直在思考这样一个奇怪而有趣的问题:在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。输入格式第...原创 2019-03-19 21:06:02 · 110 阅读 · 0 评论 -
LQB:历届试题 核桃的数量
问题描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)输出格...原创 2019-03-18 19:58:21 · 131 阅读 · 0 评论