- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 习题5-1 代码对齐(Alignment of Code, ACM/ICPC NEERC 2010, UVa1593)
输入若干行代码,要求各列单词的左边界对齐且尽量靠左。单词之间至少要空一格。每个单词不超过80个字符,每行不超过180个字符,一共最多1000行,样例输入与输出如图所示。
2024-01-14 16:44:21
469
原创 丑数(优先队列问题)
已知1,2,3,5必定是丑数,而且如果x是丑数,那么2x、3x、4x也一定是丑数。那么我们可以设置一个优先队列,循环出队然后把2x、3x、5x入队,循环到1500次终止。丑数是指不能被2,3,5以外的其他素数整除的数。把丑数从小到大排列起来,结果如。求第1500个丑数。
2024-01-12 12:32:09
616
原创 信息解码(Message Decoding, ACM/ICPC World Finals 1991, UVa 213)
这是遇到的第一个对我来说比较难的题,花了两三小时写出来的,而且有一点错误。序列的每个串依次对应编码头的每个字符。例如,0对应A,00对应B,01对应#,…进制表示,例如010代表长度为2),然后是各个字符的编码,以全1结束(例如,编码长度。编码文本由多个小节组成,每个小节的前3个数字代表小节中每个编码的长度(用二。首先是长度为1的串,然后是长度为2的串,依此类推。重点是readint函数,读取c个长度的二进制字符,返回出整型十进制数字。编码文本以编码长度为000的小节结束。注意上述序列中不存在全为1的串。
2023-12-08 21:57:36
164
原创 救济金发放(The Dole Queue, UVa 133)
在每一轮中,官员A数k个就停下来,官员B数m个就停下来(注意有可能两个官员停在同一个人上)。例如,n=10,k=4,m=3,输出为4 8, 9 5, 3 1, 2 6, 10, 7。输入n,k,m输出每轮里被选中的人的编号(如果有两个人,先输出被A选中的)。有两个官员,A从1开始逆时针数,B从n开始顺时针数。n(n
2023-12-07 10:31:05
78
原创 周期串(Periodic Strings, UVa455)
如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。思路:从第二个元素开始和第一个元素比较,如果相同则同时向右循环对比,如果全部一致则最小周期是j-i。输入一个长度不超过80的字符串,输出其最小周期。
2023-12-04 15:23:29
212
原创 得分(Score, ACM/ICPC Seoul 2005, UVa1585)
给出一个由O和X组成的串(长度为1~80),统计得分。每个O的得分为目前连续出现的O的个数,X的得分为0。例如,OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3。思路:直接从首至尾遍历串,设置一个变量t标记O的个数,如遇到X直接清零。
2023-12-04 14:30:41
80
原创 环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)
这题其实有点类似循环队列,可以借助取余思想,使每个字符的位置不超出串的长度。一开始想着用compare函数,但是考虑到需要从每一个位置开始比较,所以自己重写compare,对于每一个位置开头的串进行比较,最终得出最小的串。输入一个长度为n(n≤100)的环状DNA串(只包含A、C、G、T这4种字符)的一种表示法,你的任务是输出该环状串的最小表示。例如,CTCC的最小表示是CCCT,CGAGTCAGCT的最小表示为AGCTCGAGTC。长度为n的环状串有n种表示法,分别为从某个位置开始顺时针得到。
2023-12-03 14:43:14
151
原创 生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)
例如,n=216,121,2005时的解分别为198,0,1979。如果x加上x的各个数字之和得到y,就说x是y的生成元。给出n(1≤n≤100000),求最小生成元。
2023-12-03 11:25:57
281
原创 回文串和镜像串问题
回文串,就是反转以后和原串相同,如abba和madam。所有镜像串,就是左右镜像之后和原。串相同,如2S和3AIAE。注意,并不是每个字符在镜像之后都能得到一个合法字符。输入一个字符串,判断它是否为回文串以及镜像串。输入字符串保证不含数字0。输入的每行包含一个字符串(保证只有上述字符。不含空白字符),判断它是否为回文。中,每个字符的镜像如图所示(空白项表示该字符镜像后不能得到一个合法字符)。串和镜像串(共4种组合)。每组数据之后输出一个空行。回文词(Palindromes, UVa401)
2023-12-02 17:08:56
122
原创 WERTYU
输入一个错位后敲出的字符串(所有字母均大写),输出打字员本来想打出的句子。输入保证合法,即一定是错位之后的字符串。例如输入中不会出现大写字母A。把手放在键盘上时,稍不注意就会往右错一位。这样,输入Q会变成输入W,输入J会变成输入K等。
2023-12-02 14:49:34
63
原创 竖式问题
竖式问题。找出所有形如 abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但所写程序中应该输出空格,而非小数点)。样例输入:2357输出。
2023-11-29 11:36:11
76
原创 蛇形矩阵问题
基本思想是循环控制,初始化矩阵每个元素为零,判断下一步是否有元素,并且是否为零,再继续填数。在n*n方阵里填入1,2,...,n,要求填成蛇形矩阵。例如当n=4时,矩阵为。
2023-11-28 12:21:02
70
原创 7-2 通讯录排序 (12分)
输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。输入格式:输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。输出格式:按照年龄从大到小输出朋友的信息,格式同输出。输入样例:3zhang 19850403 139
2020-07-15 10:58:07
889
原创 7-1 时间换算 (12分)pta
本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。输入格式:输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60)。输出格式:输出在一行中给出hh:mm:ss格式的结果时间。输入样例:11:59:4030输出样例:12:00:10#include<stdio.h>int main(){ int h,m,s; scanf("%d:%d:%d",&h,&
2020-07-15 10:06:48
3561
原创 6-2 结构体数组中查找指定编号人员 (10分)PTA
人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。 函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若制定编号不存在,返回数据中的编号为空串。函数接口定义:struct student fun(struct student *std, char *num)其中 std 和 num 都是用户传入的参数。 函数fun的功能是:在 std 结构体数组中找出指定编号 num 人员的数据,作为函数值返回,由主函数输出,若制定编号不存
2020-07-15 09:51:42
4933
4
原创 6-1 按等级统计学生成绩 (10分)pta
本题要求实现一个根据学生成绩设置其等级,并统计不及格人数的简单函数。函数接口定义:int set_grade( struct student *p, int n );其中p是指向学生信息的结构体数组的指针,该结构体的定义为:struct student{int num;char name[20];int score;char grade;};n是数组元素个数。学号num、姓名name和成绩score均是已经存储好的。set_grade函数需要根据学生的成绩score设置其等级grade
2020-07-15 09:41:32
7498
1
原创 7-7 猜数字 (20分)
一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。输入格式:输入在第一行给出一个正整数N(≤10^4 )。随后 N 行,每行给出一个玩家的名字(由不超过8个英文字母组成的字符串)和其猜的正整数(≤ 100)。输出格式:在一行中顺序输出:大家平均数的一半(只输出整数部分)、赢家的名字,其间以空格分隔。题目保证赢家是唯一的。输入样例:7Bob 35Amy 28James 98Alice 11Jack 45Smith 33C
2020-07-14 15:47:40
3854
原创 7-5 计算职工工资 (15分)
给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。输入格式:输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。输出格式:按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。输入样例:3zhao 240 400 75qi
2020-07-14 14:45:46
2546
原创 7-4 找最长的字符串 (15分)PTA
本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。输入格式:输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。输出格式:在一行中用以下格式输出最长的字符串:The longest is: 最长的字符串如果字符串的长度相同,则输出先输入的字符串。输入样例:5liwangzhangjinxiang输出样例:The longest is: zhang#include<stdio.h>#incl
2020-07-14 11:02:35
5248
2
原创 7-3 特殊a串数列求和 (20分) PTA
给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。输入格式:输入在一行中给出不超过9的正整数a和n。输出格式:在一行中按照“s = 对应的和”的格式输出。输入样例:2 3输出样例:s = 246#include<stdio.h>int main(){ int a,n,s=0; scanf("%d %d",&a,&n); int a0=a; for(int i=0;i<n;i++) {
2020-07-14 10:43:47
1735
原创 在数组中查找指定元素 (10分) PTA (C语言)
7-2 在数组中查找指定元素 (10分)输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个正整数 n (1<n<=10),然后输入n个整数存入数组a中,再输入一个整数x,在数组a中查找x,如果找到则输出相应元素的最小下标,否则输出"Not found"。要求定义并调用函数search(list, n, x),它的功能是在数组list中查找元素x,若找到则返回相应元素的最小下标,否则返回-1,函数形参 list 的类型是整型指针,形参n和x的
2020-07-12 15:42:18
5980
3
原创 考试座位号 (15分) PTA(C语言)
C语言 考试座位号 (15分) PTA每个 PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字
2020-07-12 15:16:44
2557
通讯录管理系统(C++).cpp
2020-07-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人