PTA
Meteor Lee
开始努力,想的再多都不如真正去做
展开
-
符号配对(Java)
请编写程序检查C语言源程序中下列符号是否配对:/*与*/、(与)、[与]、{与}。输入格式:输入为一个C语言源程序。当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束。程序中需要检查配对的符号不超过100个。输出格式:首先,如果所有符号配对正确,则在第一行中输出YES,否则输出NO。然后在第二行中指出第一个不配对的符号:如果缺少左符号,则输出?-右符号;如果缺少右符号,则...原创 2020-01-17 17:30:42 · 1619 阅读 · 1 评论 -
一元多项式的乘法与加法运算(Java)
设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2...原创 2020-01-16 15:39:26 · 745 阅读 · 0 评论 -
可逆素数(Java)
请从小到大输出所有4位数的可逆素数。可逆素数指: 一个素数将其各位数字的顺序倒过来构成的反序数也是素数。输入格式:无输出格式:一行中以空格间隔输出可逆素数,行尾无空格。行末尾无多余空格和换行输入样例:无输出样例:无代码如下:public class Main { public static void main(String[]args){ ...原创 2020-01-02 12:25:32 · 1965 阅读 · 1 评论 -
7-6 两点间有路径吗?(Java)
对于给定的无向图以及图中的两个顶点,计算两个顶点所在的连通分量中的顶点数,并且判断这两个顶点之间是否有路径。输入格式:第一行是不超过20的正整数N,表示图有N个顶点,顶点的编号即0~N-1;接下来N行,是N*N的邻接矩阵,矩阵的元素间用空格分隔;最后一行是用空格隔开的两个顶点编号v和w输出格式:第一行输出v所在的连通分量的顶点数第二行输出w所在的连通分量的顶点数第三...原创 2019-11-07 10:39:09 · 2088 阅读 · 1 评论 -
青蛙过桥 (Java)
一座长度为n的桥,起点的一端坐标为0,且在整数坐标i处有a[i]个石头【0<=a[i]<=4】, 一只青蛙从坐标0处开始起跳,一步可以跳的距离为1或2或3【即每一步都会落在整数点处】, 青蛙落在i处会踩着该点的所有石头,求青蛙跳出这座桥最少踩多少个石头?并且输出依次跳 过的坐标点路线,如果存在多种路线,输出字典序最小的那一条。输入格式:第一行整数n(<150000),接着...原创 2019-10-29 21:24:10 · 1632 阅读 · 2 评论 -
0-1背包(Java,回溯/动态规划)
这周练算法的主题就是回溯,所以这周发的所有的博客基本都是用到的回溯的放法,然后这个题我自己的的回溯因为没弄好剪枝,所以最后在老师布置的PTA题集上提交运行超时了,然后实在没想好怎么弄剪枝合适,好像弄剪枝的话要排序,想了想排序如果数据比较大的话也比较占运行时间,所以直接用了动态规划。给定n(n<=100)种物品和一个背包。物品i的重量是wi,价值为vi,背包的容量为C(C<=1000...原创 2019-10-27 22:10:06 · 424 阅读 · 0 评论 -
最佳调度问题 与 工作分配问题(Java)
最佳调度问题与工作分配问题乍一看像是两种题目,但实际上这两种问题在有些时候可以用相似的方法来解决(我遇到的这两个题目是用的同一种方法解决的,不确定是否所有的这两类问题方法都能共用),直接上题目了。最佳调度问题假设有n(n<=20)个任务由k(k<=20)个可并行工作的机器完成。完成任务i需要的时间为ti。 试设计一个算法,对任意给定的整数n和k,以及完成任务i 需要的时间为ti...原创 2019-10-27 21:57:18 · 3417 阅读 · 1 评论 -
找零钱(Java)
收银员现有 n 张面值分别为 v1,v2,...,vn 的纸币。若找零金额为 m,则一共有多少种找零方法?注:0<n≤1000,0<v1,v2,...,vn≤10000,0<m≤10000输入格式n v1,v2,...,vn m输出格式若有解,则输出全部找零方案,每输出一种 若无解,则输出“None”...原创 2019-10-27 21:29:30 · 896 阅读 · 0 评论 -
冰岛人(Java)
2018年世界杯,冰岛队因1:1平了强大的阿根廷队而一战成名。好事者发现冰岛人的名字后面似乎都有个“松”(son),于是有网友科普如下:冰岛人沿用的是维京人古老的父系姓制,孩子的姓等于父亲的名加后缀,如果是儿子就加 sson,女儿则加 sdottir。因为冰岛人口较少,为避免近亲繁衍,本地人交往前先用个 App 查一下两人祖宗若干代有无联系。本题就请你实现这个 App 的功能。输入格式...原创 2019-10-24 12:36:42 · 1143 阅读 · 0 评论 -
抢红包(Java)
没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。输入格式:输入第一行给出一个正整数N(≤104),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:KN1P1⋯NKPK其中K(0≤K≤20)是发出去的红包个数,Ni是抢到红包的人的编号,P...原创 2019-10-23 20:11:09 · 548 阅读 · 0 评论 -
九连环问题(Java)
九连环是一种流传于山西省的传统民间的智力玩具,由九个圆环相连成串,以解开为胜。九连环的九个环,一环扣一环地套在钗上。除了第 1 号环可以随时装上或卸下以外,其它环装上或卸下的条件是:在它的前面仅有紧靠它那一个环在钗上。即:当第 1 ~ i−2 号环都不在钗上,第 i−1 号环在钗上,这时可以装上或卸下第 i 号环。输入格式环数 操作(U表示装上, D表示卸下)输出格式...原创 2019-10-18 22:29:57 · 1700 阅读 · 0 评论 -
八皇后问题(Java)
在国际象棋中,皇后是最厉害的棋子,可以横走、直走,还可以斜走。棋手马克斯·贝瑟尔 1848 年提出著名的八皇后问题:即在 8 × 8 的棋盘上摆放八个皇后,使其不能互相攻击 —— 即任意两个皇后都不能处于同一行、同一列或同一条斜线上。现在我们把棋盘扩展到 n × n 的棋盘上摆放 n 个皇后,请问该怎么摆?请编写程序,输入正整数 n,输出全部摆法(棋盘格子空白处显示句点“.”,皇后处显示字母“...原创 2019-10-13 15:07:14 · 1142 阅读 · 0 评论 -
汉诺塔问题(Java)
给定一个由n个圆盘组成的塔,这些圆盘按照大小递减的方式套在第一根桩柱上。现要将整个塔移动到另一根桩柱上,每次只能移动一个圆盘,且较大的圆盘在移动过程中不能放置在较小的圆盘上面。输入格式:输入由四行: 第一行是圆盘数量n(1<=n<=10); 第二行到第四行分别是三根桩柱的名字(字符串),n个盘子套在第一根桩柱上。输出格式:输出移动步骤,每行输出一步。输入样例:在...原创 2019-10-13 11:16:53 · 887 阅读 · 0 评论 -
求迷宫最短通道(Java)
递归求解迷宫最短通道的总步长。输入一个迷宫,求从入口通向出口的可行路径中最短的路径长度。为简化问题,迷宫用二维数组 int maze[10][10]来存储障碍物的分布,假设迷宫的横向和纵向尺寸的大小是一样的,并由程序运行读入, 若读入迷宫大小的值是n(3<n<=10),则该迷宫横向或纵向尺寸都是n,规定迷宫最外面的一圈是障碍物,迷宫的入口是maze[1][1],出口是maze[n-2]...原创 2019-10-13 08:14:37 · 1200 阅读 · 1 评论 -
不能用循环是一件多么悲伤的事(Java)
时间限制: 400 ms内存限制: 64 MB代码长度限制: 16 KB下面是一个算到10的加法表:0 + 0 = 0 0 + 1 = 1 0 + 2 = 2 0 + 3 = 3 0 + 4 = 4 0 + 5 = 5 0 + 6 = 6 0 + 7 = 7 0 + 8 = 8 0 + 9 = 9 0 +10 = 10 1 + 0 = 1 1 + 1 =...原创 2019-10-11 22:10:15 · 518 阅读 · 0 评论 -
小明打游戏(Java)
小明在玩升级打怪游戏,这个游戏可以让玩家选择从第i关连续打到第j关(i<=j),每打过一关都会奖励金币或扣除金币。已知每一关奖励或扣除的金币数,小明应该选择从第几关连续打到第几关,才能获得最多金币?请注意小明只能选择一次,当然,没有收获的话可以不选。输入格式:输入有两行:第一行是通关总数n; 第二行是每一关奖励或扣除的金币数(整数表示奖励,负数表示扣除)输出格式:输出小明...原创 2019-10-11 18:56:26 · 1097 阅读 · 0 评论 -
求最小值和次小值(Java)
本题目要求读入n个整数,要求用最少的比较次数,输出它们的最小值和次小值。例如,对于12 13 1 10 34 1这6个数,最小值为1,次小值为10。时间限制: 200 ms内存限制: 64 MB代码长度限制: 16 KB输入格式:输入有两行。第一行为整数个数n(≤1 000 000),第二行给出n个以空格分隔的整数。输出格式:对每一组输入,在一行中输出最小值和次小值,中...原创 2019-10-09 18:55:44 · 2892 阅读 · 0 评论 -
求素数个数(两种方法+针对本题做出的改进)(Java)
求素数的个数。本题要求编写一个程序,求1~n的素数个数。 要求至少给出两种解法,对于相同的n,给出这两种解法的结果,通过相关数据进行测试,目的是通过对比同一问题不同解法的绝对执行时间体会如何设计“好”的算法。时间限制: 200 ms内存限制: 64 MB代码长度限制: 16 KB输入格式:输入在一行中给出1个整数n(<= 10 000 000)。输出格式:对每一组...原创 2019-10-04 20:19:39 · 5559 阅读 · 5 评论 -
诚实的人与说谎的人(Java)
在一个岛上有两种人:诚实的人和说谎的人。诚实的人总是说真话,而说谎的人总是说假话。已知岛上总共有N个人,假设你是一个逻辑学家,你可以问岛上的每一个人同样的问题: 岛上有多少诚实的人? 岛上的第i个人回答: 诚实的人数介于ai和bi之间。 请你据此判断岛上每一个人是诚实的人还是说谎的人。输入格式:输入包括多组测试数据。每组测试数据的第一行包含岛上总的人数N(0<=N<=100),...原创 2019-10-04 20:02:46 · 1685 阅读 · 0 评论