![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
练习
文章平均质量分 93
茅蒐Rubia
这个作者很懒,什么都没留下…
展开
-
双指针【更新ing】
(1)左右指针一个指针指向开端,另一指针指向末尾关键在于左右指针如何移动来满足题目规则。例子:11. 盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例1:输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,原创 2022-01-20 16:47:55 · 542 阅读 · 0 评论 -
1064 Complete Binary Search Tree 构造完全二叉排序树
构造完全二叉排序树可以通过使用静态二叉树,观察完全二叉排序树按照中序遍历正好就是顺序排列的数组。技巧就是使用一个静态二叉树组,按照中序遍历用顺序排列的数组赋值。例如:#include<cstdio>#include<algorithm>#define maxn 1001using namespace std;int cbt[maxn];//静态二叉树数组int a[maxn];//输入的数组int index=0;int n;void inorder(int r原创 2020-07-31 16:49:05 · 194 阅读 · 0 评论 -
链表练习:1025 反转链表(测试点3,5,6)
输入样例:00100 6 400000 4 9999900100 1 1230968237 6 -133218 3 0000099999 5 6823712309 2 33218输出样例:00000 4 3321833218 3 1230912309 2 0010000100 1 9999999999 5 6823768237 6 -1#include<cstdio>#include<queue>#define maxn 100000using .原创 2020-07-30 15:41:32 · 591 阅读 · 0 评论 -
1051 Pop Sequence 栈练习
Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence of the stack. For example, if M is 5 and N is 7, we can obtain原创 2020-07-29 17:12:42 · 109 阅读 · 0 评论 -
map的应用1044 火星数字 1054 The Dominant Color
火星人是以 13 进制计数的:地球人的 0 被火星人称为 tret。地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。火星人将进位以后的 12 个高位数字分别称为:tam, hel, maa, huh, tou, kes, hei, elo, syy, lok, mer, jou。例如地球人的数字 29 翻译成火星文就是 hel mar;而火星文 elo nov 对应地球数字 115。为了方原创 2020-07-28 22:13:22 · 115 阅读 · 0 评论 -
1034 有理数四则运算
输入样例 1:2/3 -4/2输出样例 1:2/3 + (-2) = (-1 1/3)2/3 - (-2) = 2 2/32/3 * (-2) = (-1 1/3)2/3 / (-2) = (-1/3)输入样例 2:5/3 0/6输出样例 2:1 2/3 + 0 = 1 2/31 2/3 - 0 = 1 2/31 2/3 * 0 = 01 2/3 / 0 = Inf#include<cstdio>#include<cmath>#define maxn.原创 2020-07-27 20:59:35 · 116 阅读 · 0 评论 -
贪心法1033 To Fill or Not to Fill 1067 Sort with Swap(0, i)1038 Recover the Smallest Number
Sample Input 1:50 1300 12 86.00 12507.00 6007.00 1507.10 07.20 2007.50 4007.30 10006.85 300Sample Output 1:749.17Sample Input 2:50 1300 12 27.10 07.00 600Sample Output 2:The maximum travel distance = 1200.00#include<cstdio>#includ.原创 2020-07-27 15:26:09 · 74 阅读 · 0 评论 -
Forwards on Weibo (30分)
Sample Input:7 33 2 3 402 5 62 3 12 3 41 41 52 2 6Sample Output:45#include<iostream>#include<vector>#include<queue>#define maxn 1001using namespace std;typedef struct NODE{ int data;//编号 int level;//等级}node;vector&l.原创 2020-07-22 20:18:00 · 118 阅读 · 0 评论 -
问题 A: 二叉排序树
题目描述输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。输入输入第一行包括一个整数n(1<=n<=100)。接下来的一行包括n个整数。输出可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。每种遍历结果输出一行。每行最后一个数据之后有一个空格。样例输入 Copy1228 15421 10 5 39样例输出 Copy2228 158 1515 821 10 5 395 10 21 395原创 2020-07-20 20:06:20 · 162 阅读 · 0 评论 -
1053 Path of Equal Weight (30分)
Sample Input:20 9 2410 2 4 3 5 10 2 18 9 7 2 2 1 3 12 1 8 6 2 200 4 01 02 03 0402 1 0504 2 06 0703 3 11 12 1306 1 0907 2 08 1016 1 1513 3 14 16 1717 2 18 19Sample Output:10 5 2 710 4 1010 3 3 6 210 3 3 6 2#include<cstdio>#include&..原创 2020-07-20 12:57:08 · 88 阅读 · 0 评论 -
问题 A: 算法2-8~2-11:链表的基本操作(问题遗留)
http://codeup.cn/problem.php?cid=100000607&pid=0输入输入数据只有一组,第一行有n+1个整数,第一个整数是这行余下的整数数目n,后面是n个整数。这一行整数是用来初始化列表的,并且输入的顺序与列表中的顺序相反,也就是说如果列表中是1、2、3那么输入的顺序是3、2、1。第二行有一个整数m,代表下面还有m行。每行有一个字符串,字符串是“get”,“insert”,“delete”,“show”中的一种。如果是“get”或者“delete”,则其后跟着一个原创 2020-07-19 12:36:40 · 458 阅读 · 0 评论 -
问题 A: 任务调度
题目描述读入任务调度序列,输出n个任务适合的一种调度方式。输入输入包含多组测试数据。每组第一行输入一个整数n(n<100000),表示有n个任务。接下来n行,每行第一个表示前序任务,括号中的任务为若干个后序任务,表示只有在前序任务完成的情况下,后序任务才能开始。若后序为NULL则表示无后继任务。输出输出调度方式,输出如果有多种适合的调度方式,请输出字典序最小的一种。样例输入 Copy4Task0(Task1,Task2)Task1(Task3)Task2(NULL)Task3原创 2020-07-16 19:50:21 · 271 阅读 · 0 评论 -
问题 A: Speech Patterns (25)
#include <iostream> #include <map>#include <string> using namespace std;map<string,int>mp;int judge(char c){ if(c>='0'&&c<='9') return 1; if(c>='a'&&c<='z') return 1; if(c>='A'&&..原创 2020-07-16 17:55:30 · 118 阅读 · 0 评论 -
问题 A: Set Similarity (25)(就是留一下印象)
#include<cstdio>#include<cstring>#define maxn 51#include<set>using namespace std;set<int>a[maxn];double similarity(int x,int y){ double si; int nc=0,nt; set<int>::iterator i=a[x].begin(); set<int>::iterator ..原创 2020-07-15 21:54:09 · 115 阅读 · 0 评论 -
1060 Are They Equal (25分)
是我太菜,这题做的好麻烦,标注里的案例挨个试#include<iostream>#include<string>using namespace std;int n;string init(string a,int &s){ int i=0; int l=0; int len=a.length(); while(i<len&&a[0]=='0') //因while(i<a.length()&&a[i]=='0..原创 2020-07-15 21:48:20 · 92 阅读 · 0 评论 -
1039 Course List for Student
此题遇到了多次错误一开始flag使用多维数组vectorflag[91][91][91][10];但是多维数组初始化实在太慢太慢太慢。不放在oj里只是在线下编译器里运行都等好久反应于是查找后把多维数组变为一维数组,用一个have函数进行变化,把字符串name可以转换为一个唯一的整数放在flag数组里以下是vector的两种写法#include<cstdio>#include<cstring>#define maxn 175761#include<vector..原创 2020-07-15 15:44:30 · 189 阅读 · 0 评论 -
问题 A: 完数
正确答案:#include<cstdio>#define maxn 100002using namespace std;int n;int p[maxn],num;int main(){ while(scanf("%d",&n)!=EOF) { num=0; for(int i=2;i<=n;i++) { int sum=1; for(int j=2;j<i;j++) if(i%j==0) sum+=j; i.原创 2020-07-10 16:12:46 · 105 阅读 · 0 评论 -
1043 输出PATest(运行超时)
//错误答案#include<stdio.h>#define M 10009int have[7]={};char str[M];char g[6]={'P','A','T','e','s','t'};int main(){ int num; scanf("%s",str); int i; for(i=0;str[i];i++) { if(str[i]=='P') have[0]++; else if(str[i]=='A') have[1]++; else if.原创 2020-07-03 18:00:46 · 147 阅读 · 0 评论 -
1033 旧键盘打字(认真审题,考虑各种情况)
#include<stdio.h>#define M 100009int cha[41]={};char lost[M],str[M];int f(char c){ if(c>='0'&&c<='9') return c-48; if(c>='a'&&c<='z') return c-87; if(c>='A'&&c<='Z') return c-55; if(c=='_').原创 2020-07-03 14:22:13 · 115 阅读 · 0 评论 -
1080 Graduate Admission(问题遗留)
#include<cstdio>#include<algorithm>#include<cstring>#define N 40001#define K 5#define M 101using namespace std;struct people{ int ge,gi,fg; int id; int chioce[K]; int rank;}stu[N];struct school{ int student[K]; int sum; i.原创 2020-07-02 17:40:45 · 201 阅读 · 1 评论 -
PAT1028 人口普查 (20分)
正确答案:#include<iostream>#include<algorithm>using namespace std;#define N 100000struct people{ char name[6]; int year; int month; int day;}person[N];bool ifeffitive(people a){/* cout<<(a.year<2014||(a.year==2014&&a..原创 2020-06-29 13:40:57 · 173 阅读 · 0 评论 -
求第k大的数
求第k大的数给定一个长度为n(1≤n≤1,000,000)的无序正整数序列,以及另一个数k(1≤k≤1,000,000)(关于第k大的数:例如序列{1,2,3,4,5,6}中第3大的数是4。)输入第一行两个正整数m,n。第二行为n个正整数。输出第k大的数。样例输入 Copy6 31 2 3 4 5 6样例输出 Copy4#include<cstdio> #include<cstdlib>#include<algorithm>#include&原创 2020-06-28 16:11:04 · 545 阅读 · 1 评论 -
问题 A: 看电视(区间贪心算法)
题目描述暑假到了,小明终于可以开心的看电视了。但是小明喜欢的节目太多了,他希望尽量多的看到完整的节目。现在他把他喜欢的电视节目的转播时间表给你,你能帮他合理安排吗?输入输入包含多组测试数据。每组输入的第一行是一个整数n(n<=100),表示小明喜欢的节目的总数。接下来n行,每行输入两个整数si和ei(1<=i<=n),表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。当n=0时,输入结束。输出对于每组输入,输出能完整看到的电视节目的个数。样例输入原创 2020-06-26 19:03:10 · 471 阅读 · 0 评论 -
问题 A: 吃糖果(递归练习)
题目描述名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,20 > N >0)。妈妈告诉名名每天可以吃一块或者两块巧克力。假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。例如:如果N=1,则名名第1天就吃掉它,共有1种方案;如果N=2,则名名可以第1天吃1块,第2天吃1块,也可以第1天吃2块,共有2种方案;如果N=3,则名名第1天可以吃1块,剩2块,也可以第1天吃2块剩1块,所以名名共有2+1=3种方案;如果N=4,则名名可以第1原创 2020-06-25 18:59:29 · 580 阅读 · 0 评论 -
问题 A: 谁是你的潜在朋友
问题 A: 谁是你的潜在朋友题目描述“臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会 并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友。你现在的任务是从这份借阅记录中计算出每个人有原创 2020-06-24 20:59:56 · 122 阅读 · 0 评论 -
PTA1018 锤子剪刀布
#include<stdio.h>int change(char c)//把剪刀锤子布数字化,布是0,锤子是1,剪刀是2,考虑到最后还要判断最大值同值输出字母序最小的所以这里就必须按照字母序排{ if(c=='B') return 0; if(c=='C') return 1; return 2;}int getwinner(char jia,char yi)//判断胜利者,甲赢返回-1,乙赢返回1,平手为0{ if(jia==yi) return 0; if(.原创 2020-06-08 15:31:43 · 119 阅读 · 0 评论 -
PTA1012 数字分类 (20分)
1012 数字分类 (20分)#include<stdio.h>int main(){ int N,n; int a[5]={0},num[5]={0},sum4=0,t=-1; scanf("%d",&N); while(N--) { int m; scanf("%d",&n); m=n%5; if(m==0) { if(n%2==0) { a[0]+=n;num[0]++;原创 2020-06-08 12:01:25 · 107 阅读 · 0 评论 -
啊哈算法P106宝岛探险
广度#include<stdio.h>struct note{ int x; int y;};int main(){ int num=0,head=0,tail=0,i,map[10][10],book[10][10]={0},j; int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}},tx,ty; struct note que[1...原创 2020-03-24 17:52:10 · 201 阅读 · 0 评论 -
数据类型的范围
L1-003 个位数统计 (15分)给定一个 k 位整数 N=dk−1 10k−1 +⋯+d1 101 +d0 (0≤di ≤9, i=0,⋯,k−1, dk−1 >0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。输入格式:每个输入包含 ...原创 2020-03-15 15:50:25 · 87 阅读 · 0 评论 -
2707:求一元二次方程的根
查看 提交 统计 提示 提问总时间限制: 1000ms 内存限制: 65536kB描述利用公式x1 = (-b + sqrt(bb-4ac))/(2a), x2 = (-b - sqrt(bb-4ac))/(2a)求一元二次方程ax2 + bx + c =0的根,其中a不等于0。输入第一行是待解方程的数目n。其余n行每行含三个浮点数a, b, c(它们之间用空格隔开),分别表示方程ax...原创 2020-03-09 20:39:57 · 887 阅读 · 0 评论 -
约瑟夫问题
2746:约瑟夫问题查看 提交 统计 提示 提问总时间限制: 1000ms 内存限制: 65536kB描述约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。输入每行是用空格分开的两个整数,第一个是...原创 2020-03-01 13:15:34 · 293 阅读 · 0 评论