![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法笔记
王佳Gre
hi
展开
-
问题 A: 简单计算器
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。输入测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。输出对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。样例输入 Copy30 / 90 - 26 + 97 - 5 - 6 - 13 / 88 * 6 + 51 / 29 + 79 * 87 + 57 * 920样例输出 Copy1217原创 2020-07-06 23:19:06 · 283 阅读 · 0 评论 -
问题 A: Set Similarity (25)
Given two sets of integers, the similarity of the sets is defined to be Nc/Nt*100%, where Nc is the number of distinct common numbers shared by the two sets, and Nt is the total number of distinct numbers in the two sets. Your job is to calculate the simil原创 2020-07-05 17:38:06 · 79 阅读 · 0 评论 -
问题 B: Student List for Course (25)
题目描述Zhejiang University has 40000 students and provides 2500 courses. Now given the registered course list of each student, you are supposed to output the student name lists of all the courses.输入Each input file contains one test case. For each case, the原创 2020-07-05 16:49:45 · 182 阅读 · 0 评论 -
问题 A: 日期差值
有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。输入有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD输出每组数据输出一行,即日期差值#include <stdio.h> int isLeapyear(int year) //判断是否是闰年{ if((year%4==0&&year%100!=0)||(year%400==0)) return 1; else原创 2020-05-30 15:56:36 · 92 阅读 · 0 评论 -
问题 B: 基础排序III:归并排序
题目描述归并排序是一个时间复杂度为O(nlogn)的算法,对于大量数据远远优于冒泡排序与插入排序。 这是一道排序练习题,数据量较大,请使用归并排序完成。输入第一行一个数字n,代表输入的组数其后每组第一行输入一个数字m,代表待排序数字的个数其后m行每行一个数据,大小在1~100000之间,互不相等,最多有10万个数据。输出升序输出排好序的数据,每行一个数字输入样例11010987654321输出样例12345678910#includ.原创 2020-05-28 22:39:02 · 204 阅读 · 0 评论 -
问题 C: 快速排序 qsort [2*]
题目描述输入n个整数,用快速排序的方法进行排序Input第一行数字n 代表接下来有n个整数接下来n行,每行一个整数OutputOutput升序输出排序结果每行一个数据Sample Input51218141316Sample Output1213141618Hintn<=5000每个数据<=5000#include<stdio.h>int n;int Partition(int A[],int left,int right)/.原创 2020-05-28 22:16:55 · 654 阅读 · 0 评论 -
问题 C: 查找
输入数组长度 n输入数组 a[1…n]输入查找个数m输入查找数字b[1…m]输出 YES or NO 查找有则YES 否则NO 。输入输入有多组数据。每组输入n,然后输入n个整数,再输入m,然后再输入m个整数(1<=m<=n<=100)。输出如果在n个数组中输出YES否则输出NO。顺序查找#include<stdio.h>int main () { int n, m, i, j, a[110]={0}, b[110]={0}; while原创 2020-05-20 14:59:34 · 228 阅读 · 0 评论 -
问题 A: 找x#二分法
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。输入测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。输出对于每组输入,请输出结果。简单的二分查找也可以通过简单排序查找#include<stdio.h>int binarysearch(int a[],int left,int right,int x)//传入a[]数组,上界,下界,目标值{ int mid; whi原创 2020-05-19 16:38:07 · 109 阅读 · 0 评论 -
问题 A: 看电视#区间贪心#
暑假到了,小明终于可以开心的看电视了。但是小明喜欢的节目太多了,他希望尽量多的看到完整的节目。现在他把他喜欢的电视节目的转播时间表给你,你能帮他合理安排吗?输入输入包含多组测试数据。每组输入的第一行是一个整数n(n<=100),表示小明喜欢的节目的总数。接下来n行,每行输入两个整数si和ei(1<=i<=n),表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。当n=0时,输入结束。输出对于每组输入,输出能完整看到的电视节目的个数。典型的区间贪心#i原创 2020-05-19 14:26:39 · 111 阅读 · 0 评论 -
问题 B: 数列
编写一个求斐波那契数列的递归函数,输入n 值,使用该递归函数,输出如下图形(参见样例)。输入输入第一行为样例数m,接下来有m行每行一个整数n,n不超过10。输出对应每个样例输出要求的图形(参见样例格式)。输入16输出 0 0 1 1 0 1 1 2 3 0 1 1 2 3 5 8 0 1 1 2 3 5 8 13 210 1 1 2 3 5 8 13 21 34 55注意点:这个是个对称三角形,第i行有n-i个空格,有1+(n-原创 2020-05-18 16:02:46 · 227 阅读 · 0 评论 -
问题 D: String Subtraction (20)
Given two strings S1 and S2, S = S1 - S2 is defined to be the remaining string after taking all the characters in S2 from S1. Your task is simply to calculate S1 - S2for any given strings. However, it...原创 2020-05-07 21:57:56 · 126 阅读 · 0 评论 -
问题 C: Be Unique (20)
Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1, 10^4]. The first one who bets on...原创 2020-05-06 21:58:02 · 80 阅读 · 0 评论 -
问题 A: 谁是你的潜在朋友
“臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会 并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。同时,按照“臭味相投”的原则,和你喜欢读同一...原创 2020-05-06 17:37:44 · 100 阅读 · 0 评论 -
问题 G: 中位数
中位数定义:一组数据按从小到大的顺序依次排列,处在中间位置的一个数(或最中间两个数据的平均数).给出一组无序整数,求出中位数,如果求最中间两个数的平均数,向下取整即可(不需要使用浮点数输入 该程序包含多组测试数据,每一组测试数据的第一行为N,代表该组测试数据包含的数据个数,1<=N<=10000.接着N行为N个数据的输入,N=0时结束输入输出输出中位数,每一组测试数据输出...原创 2020-05-06 16:06:57 · 252 阅读 · 0 评论 -
问题 F: 小白鼠排队
N只小白鼠(1 <= N <= 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。输入多案例输入,每个案例的输入第一行为一个整数N,表示小白鼠的数目。下面有N行,每行是一只白鼠的信息。第一个为不大于100...原创 2020-05-06 15:40:03 · 148 阅读 · 0 评论 -
问题 E: Problem B
请写一个程序,对于一个m行m列的(1<m<10)的方阵,求其每一行,每一列及主对角线元素之和,最后按照从大到小的顺序依次输出。#include<bits/stdc++.h>using namespace std;bool cmp(int a,int b){ return a>b;//元素从大到小输出; }int main(){ int m,sum=0...原创 2020-05-04 15:24:44 · 280 阅读 · 0 评论 -
问题 D: 字符串内排序
输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int main(){ char a[201]//要多一个结束符 while(gets(a)) { int len=str...原创 2020-05-04 14:10:52 · 167 阅读 · 0 评论 -
问题 C: EXCEL排序
Excel可以对一组纪录按任意指定列排序。现请你编写程序实现类似功能。对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号(从1开始)。随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2时,按姓名的非递减字典序排序;当 C=3 时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。输入测试输入包含若干测...原创 2020-05-04 13:57:29 · 187 阅读 · 1 评论 -
问题 B: 特殊排序
//思路先排序找到最大值然后把剩下n-1的输出,不需要先找最大值,因为会有一个地方空着不好处理#include <stdio.h>#include <algorithm>using namespace std;int main(){ int n,a[1001]={0};//最好先初始化 while(scanf("%d\n",&n)!=EOF) for...原创 2020-05-04 13:30:22 · 189 阅读 · 0 评论 -
问题 A: 排序
对输入的n个数进行排序并输出。输入输入的第一行包括一个整数n(1<=n<=100)。 接下来的一行包括n个整数。输出可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格。每组测试数据的结果占一行。#include <stdio.h>#include <algorithm>using namespace std;int...原创 2020-05-04 13:17:52 · 274 阅读 · 0 评论