![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
才疏学浅易大师
追求代码之美
展开
-
区间DP-石子合并 (环形)
7-10 石子合并在一个圆形操场的四周摆放 N 堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的 2 堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出一个算法,计算出将 N 堆石子合并成 1 堆的最小得分和最大得分。输入格式:数据的第 1 行是正整数 N ,表示有 N 堆石子。第 2 行有 N 个整数,第 i 个整数 ai 表示第 i 堆石子的个数。输出格式:输出共 2 行,第 1 行为最小得分,第 2 行为最大得分。输入样例:44 5 9 4输出样例原创 2021-10-21 23:41:54 · 829 阅读 · 0 评论 -
Floyd-多源最短路径 路径打印
#include<bits/stdc++.h>using namespace std;int dis[110][110],path[110][110]; //初始化为邻接矩阵 //初始化为-1 void print(int st,int ed){ if(path[st][ed]>=0) print(st,path[st][ed]); printf("->%d",ed);}void floyd(){ for(int k=1;k<=n;k++)原创 2021-06-28 18:30:17 · 178 阅读 · 0 评论 -
7-8 浪漫侧影 (25 分)
“侧影”就是从左侧或者右侧去观察物体所看到的内容。例如上图中男生的侧影是从他右侧看过去的样子,叫“右视图”;女生的侧影是从她左侧看过去的样子,叫“左视图”。520 这个日子还在打比赛的你,也就抱着一棵二叉树左看看右看看了……我们将二叉树的“侧影”定义为从一侧能看到的所有结点从上到下形成的序列。例如下图这棵二叉树,其右视图就是 { 1, 2, 3, 4, 5 },左视图就是 { 1, 6, 7, 8, 5 }。于是让我们首先通过一棵二叉树的中序遍历序列和后序遍历序列构建出一棵树,然后你要输出这棵树的左原创 2021-05-20 20:16:52 · 3233 阅读 · 2 评论 -
7-7 约会大作战 (20 分)
某社团开展了一个“快闪”相亲活动,活动规则如下:社团负责人将所有人分为两组,并收集了每个人对另外一组的所有人的好感度;然后社团负责人会随机地在两组各抽取一个人,询问他们是否愿意一起去约会;所有人对一开始的两次询问一定会拒绝;从第三次询问开始,如果询问的人的好感度大于这个人之前的两个没能牵手的人,则接受,否则拒绝;只有两个人同时接受,约会才成立。约会成立后,后面的询问一律拒绝。现在给出好感度和每次询问的两个人,请你帮忙计算一下最终有哪些人可以去约会了。输入格式:输入第一行是三个数字 N,M,原创 2021-05-20 20:10:43 · 496 阅读 · 0 评论 -
7-6 矩阵列平移 (20 分)
给定一个 n×n 的整数矩阵。对任一给定的正整数 k<n,我们将矩阵的偶数列的元素整体向下依次平移 1、……、k、1、……、k、…… 个位置,平移空出的位置用整数 x 补。你需要计算出结果矩阵的每一行元素的和。输入格式:输入第一行给出 3 个正整数:n(<100)、k(<n)、x(<100),分别如题面所述。接下来 n 行,每行给出 n 个不超过 100 的正整数,为矩阵元素的值。数字间以空格分隔。输出格式:在一行中输出平移后第 1 到 n 行元素的和。数字间以 1 个空格原创 2021-05-20 20:01:17 · 1933 阅读 · 0 评论 -
7-5 大勾股定理 (15 分)
7-5 大勾股定理 (15 分)大勾股定理是勾股定理的推广:对任何正整数 n 存在 2n+1 个连续正整数,满足前 n+1 个数的平方和等于后 n 个数的平方和。例如对于 n=1 有 3^2 +4^2= 5^2;n=2 有 10^2 +11^2 +12^2 =13^2 +14^2 等。给定 n,本题就请你找出对应的解。输入格式:输入在一行中给出正整数 n(≤10^4)输出格式:分两行输出满足大勾股定理的解,格式如下:a[0]^2 + a[1]^2 + … + a[n]^2原创 2021-05-20 19:54:33 · 751 阅读 · 0 评论 -
PTA 520 钻石争霸赛2021 全题解
题解请点击跳转7-5 大勾股定理 (15 分)7-6 矩阵列平移 (20 分)7-7 约会大作战 (20 分)7-8 浪漫侧影 (25 分)可惜今天有一上午课,拿不到企鹅玩偶了总结前四道题都是签到题,毫无难度,第5题为找规律的题,第6第7算是模拟题,第八道题考树的层序遍历,难度挺适合520打发时间毕竟A题不需要面向对象编程,希望以后能有对象...原创 2021-05-20 19:45:10 · 1292 阅读 · 2 评论 -
7-8 汉诺塔的非递归实现 (25 分) (堆栈解决,配合递归记忆)
借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求。输入格式:输入为一个正整数N,即起始柱上的盘数。输出格式:每个操作(移动)占一行,按柱1 -> 柱2的格式输出。输入样例:3输出样例:a -> ca -> bc -> ba -> cb -> ab -> ca -> cPS:下列原创 2021-05-07 23:14:51 · 481 阅读 · 0 评论 -
7-9 汉诺塔III (30分)
在这种情况下,考虑 K 个圆盘的移动情况。为了首先将初始时最下方最大的圆盘移动到第三根柱子上,我们首先需要将其上的 K-1 个圆盘移动到第三根柱子上,而这恰好等价于移动 K-1 个圆盘从第一根柱子到第三根柱子。当这一移动完成以后,第一根柱子仅剩余最大的圆盘,第二根柱子为空,第三根柱子按顺序摆放着 K-1 个圆盘。同 将最大的圆盘移动到此时没有任何圆盘的第二根柱子上,并再次将 K-1 个圆盘从第三根柱子移动到第一根柱子,此时需要移动的次数相当于 K-1 个圆盘从第一根柱子到第三根柱子所需的移动次数原创 2020-11-27 20:08:36 · 790 阅读 · 0 评论 -
7-6 银行排队问题之单队列多窗口加VIP服务 (40 分) - 易理解-数组模拟队列
假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。有些银行会给VIP客户以各种优惠服务,例如专门开辟VIP窗口。为了最大限度地利用资源,VIP窗口的服务机制定义为:当队列中没有VIP客户时,该窗口为普通顾客服务;当该窗口空闲并且队列中有VIP客户在等待时,排在最前面的VIP客户享受该窗口的服务。同时,当轮到某VIP客户出列时,若VIP窗口非空,该客户可以选择空闲的普通窗口原创 2021-04-16 22:29:45 · 1803 阅读 · 0 评论 -
7-6 N皇后 (28分)
7-2 N皇后 (28分在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法输入格式:共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;输出格式:共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量输入样例:在这里给出一组输入。例如:185输出样例:在这里给出相应的输出。例如:19210AC代码:#include&原创 2020-11-27 19:25:18 · 600 阅读 · 0 评论 -
7-5 一元多项式的乘法与加法运算 (15 分)(简易做法,数组)
习题3.6 一元多项式的乘法与加法运算设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2 6 1 -2 03 5 20 -7 4 3 1输出样例:15 2原创 2021-05-04 20:04:13 · 882 阅读 · 2 评论 -
7-7 循环日程表 (10分)
设有N个选手进行循环比赛,其中N=2^M,要求每名选手要与其他N−1名选手都赛一次,每名选手每天比赛一次,循环赛共进行N−1天,要求每天没有选手轮空。输入格式:输入:M(M<=7)输出格式:输出:表格形式的比赛安排表。一行各数据间用一个空格隔开。输入样例:3输出样例:在这里给出相应的输出。例如:1 2 3 4 5 6 7 82 1 4 3 6 5 8 73 4 1 2 7 8 5 64 3 2 1 8 7 6 55 6 7 8 1 2 3 46 5 8 7 2原创 2020-11-27 23:21:13 · 973 阅读 · 0 评论 -
7-4 符号配对 (25 分) (数组模拟栈)
习题3.8 符号配对 (20 分)请编写程序检查C语言源程序中下列符号是否配对:/* 与 */、( 与 )、[ 与 ]、{ 与 }。输入格式:输入为一个C语言源程序。当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束。程序中需要检查配对的符号不超过100个。输出格式:首先,如果所有符号配对正确,则在第一行中输出YES,否则输出NO。然后在第二行中指出第一个不配对的符号:如果缺少左符号,则输出?-右符号;如果缺少右符号,则输出左符号-?。输入样例1:void test(){int原创 2021-05-04 22:37:49 · 526 阅读 · 0 评论 -
7-3 出栈序列的合法性(25分)-(数组模拟)
L2-1 出栈序列的合法性 (25分)给定一个最大容量为 M 的堆栈,将 N 个数字按 1, 2, 3, …, N 的顺序入栈,允许按任何顺序出栈,则哪些数字序列是不可能得到的?例如给定 M=5、N=7,则我们有可能得到{ 1, 2, 3, 4, 5, 6, 7 },但不可能得到{ 3, 2, 1, 7, 5, 6, 4 }。输入格式:输入第一行给出 3 个不超过 1000 的正整数:M(堆栈最大容量)、N(入栈元素个数)、K(待检查的出栈序列个数)。最后 K 行,每行给出 N 个数字的出栈序列。所有原创 2020-11-27 18:21:35 · 1430 阅读 · 0 评论 -
7-2 检查密码 (15分)
本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点 .,还必须既有字母也有数字。输入格式:输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束。输出格式:对每个用户的密码,在一行中输出系统反馈信息,分以下5种:如果密码合法,输出Your password is wan mei.;如果密码太短,不论合法与否,都输出Your原创 2020-11-27 18:07:39 · 2048 阅读 · 2 评论 -
7-1 选举干预
Given an election with voting districts and majority rule, how many voters have to be bribed such that our party wins a majority of districts?在有选区和多数决定原则的选举中,要贿赂多少选民才能使我们的政党赢得选区的多数?Solution:For each district simulate how many votes are needed to achieve原创 2020-10-29 20:51:33 · 212 阅读 · 0 评论 -
1320 OJ 分苹果 (找规律递推)
分苹果描述数据评测题目描述yyf得到了一批苹果,他可以将其中不超过一半的苹果分给他的一个好朋友,也可以全部留着自己吃。而他的好朋友同样可以将他得到的苹果分给其他的一个人,也可以自己留着。并一直这样分,知道不能再分;求共有多少种分法;例如yyf得到了6个苹果,分法如下:6;6 3;6 3 1;6 2;6 2 1;6 1;所以共有6种分法输入描述n表示yyf得到了n个苹果输出描述分法总数样例输入6样例输出6思路:规律题,比如当我们有10个苹果,我们可分的情况就是有5原创 2021-05-06 22:01:46 · 601 阅读 · 0 评论