![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
程序设计
c/c++
-断言-
莫等闲,白了少年头,空悲切!
展开
-
【AtCoder Beginner Contest 317】
思路:深度优先遍历,暴力枚举即可。随机从一个城市A出发,找到与城市A相连的城市B,接着找到与城市B相连的城市C,一直找下去直到没有相连的城市,生成一条完整的路径,计算该距离。⚠️:代码注释的地方不对。因为可能存在孤岛城市。如,3个城市,2条路径。找到两个城镇的最长路径,其中每个城市只能经过一次。把每一条路径的距离都计算出来,取一个最大值即可。题意:给定n个城市、m条连接城市的路径。第i条路径连接城市Ai和Bi,长度为Ci。原创 2023-08-27 09:08:04 · 229 阅读 · 0 评论 -
【甲级PAT】-1022 Digital Library (30分)-STL
文章目录题目描述思路题目描述1022 Digital Library (30分)模拟查询功能。给出n本书的信息,以及m个查询的命令,数字标号对应查询的字段(书名、作者名…具体看原题的link #x),数字编号后面的字符串是查询的关键词,要求输出这行命令以及输出满足条件的书的id,如果一个都没有找到,输出Not Found。思路建立一个map数组(即这个数组的每一个元素是一个map)来对应各个字段。每一个map的key是string,对应一个关键词Line #,map的value是set<原创 2021-01-20 14:56:40 · 103 阅读 · 0 评论 -
【甲级PAT】-1005 Spell It Right (20分)-字符串处理
【甲级PAT】-1005 Spell It Right (20分)-字符串处理原创 2021-01-16 20:52:42 · 75 阅读 · 0 评论 -
【甲级PAT】-1019 General Palindromic Number (20分)-进制转换
题目描述1019 General Palindromic Number (20分)将十进制N转换成base进制,判断转换后是否是回文串,并输出转换后的结果英语Palindromic Number:回文数single digit numbers:一位数numeral system:数制decimal system:十进制decimal:adj.十进位的;小数的 n.小数standard notation:标准符号思路根据转换进制的过程,使用vector容器存放每次取模的结果,再倒序输出原创 2021-01-31 16:01:51 · 92 阅读 · 0 评论 -
【甲级PAT】-1081 Rational Sum (20分)-数字处理
注意记录最后一个测试点以及利用辗转相除法求最大公因子、相加结果如果有负号,保证负号必须出现在分子前面原创 2021-01-28 21:31:12 · 164 阅读 · 0 评论 -
【甲级PAT】-1023 Have Fun with Numbers (20 分)-大整数加法
题目描述1023 Have Fun with Numbers (20 分)如果一个数乘二倍之后的结果与原始数字每位数字(0-9)出现的次数相等,输出“Yes”及乘二倍之后的结果否则“No”和乘二倍之后的结果英语original number:原始数字permutation:排列(方式);组合(方式);置换思路...原创 2021-02-14 07:40:04 · 109 阅读 · 0 评论 -
【甲级PAT】-1037 Magic Coupon (25 分)-贪心
题目1037 Magic Coupon (25 分)在两个集合中各取元素相乘(不必取完所有元素),求乘积和的最大值思路两个集合分别从大到小排序用c1,c2和p1,p2分别标记两个集合的首尾下标每次循环判断两集合首元素都大于0时,直接相乘。两集合尾元素都小于0时(其绝对值大),也直接相乘对于其他情况,当两元素相乘为负时,哪个集合先出现负,首下标+1#include <bits/stdc++.h>using namespace std;int Nc[100005],Np[原创 2021-08-16 11:33:21 · 103 阅读 · 0 评论 -
【甲级PAT】-1039 Course List for Student (25分)-STL
【甲级PAT】-1039 Course List for Student (25分),c++代码STL求解原创 2021-01-15 15:59:36 · 103 阅读 · 0 评论 -
PAT-有几个PAT1030
PAT-有几个PAT1030原创 2021-01-13 14:17:19 · 72 阅读 · 0 评论 -
【甲级PAT】个人题目复习总结ing
难度系数分为123三个等级***:看到题目没思路或根本无从下手**:有点思路但有些测试点自己调不对需要参考别人的代码和思路*:水题或者自己能做到满分题目考察点难度系数1108 Finding Average (20分)数字处理*1069 The Black Hole of Numbers (20分)数字处理**1132 Cut Integer (20分)数字处理*1017 Queueing at Bank (25分)模拟***1109 G原创 2021-04-15 17:40:25 · 106 阅读 · 0 评论 -
【甲级PAT】-1125 Chain the Ropes (25 分)-贪心
1125 Chain the Ropes (25 分)转载 2021-08-18 15:41:37 · 171 阅读 · 0 评论 -
【甲级PAT】-1136 A Delayed Palindrome (20 分)-大整数加法
文章目录题目描述思路题目描述1136 A Delayed Palindrome (20 分)和A1024 Palindromic Number很相似不再赘述,无非把中间结果打印一下注意如果10次迭代后相加的结果依旧不是回文数,输出Not found in 10 iterations.思路注意: 一定要注意空格输出字符串与is a palindromic number.之间的空格以及最后的句号是不是没复制进去!第一次提交得了12分,原因是Not found in 10 iterations.最后原创 2021-02-21 17:35:49 · 139 阅读 · 0 评论 -
【甲级PAT】-1061 Dating (20分)-字符串处理
记录第四个测试点不通过原创 2021-01-28 20:12:21 · 116 阅读 · 0 评论 -
【甲级PAT】-1042 Shuffling Machine (20分)-简单模拟
【甲级PAT】-1042 Shuffling Machine (20分)C++代码原创 2021-01-14 20:03:08 · 121 阅读 · 0 评论 -
【甲级PAT】-1027 Colors in Mars (20分)-进制转换
题目描述1027 Colors in Mars (20分)把13进制转换成16进制。输出格式:输出的时候第一个位置输出#,13进制转换成16进制时,若只有一位数字前面补0。有英文字母时以大写形式输出英语radix:进制;基数;鼻根decimal values:十进制值思路使用string字符串存储13进制的表示,即string temp="0123456789ABC";temp的下标则表示每个字符对应的10进制数字#include<bits/stdc++.h>using n原创 2021-01-31 12:25:19 · 85 阅读 · 0 评论 -
【甲级PAT】-1009 Product of Polynomials (25分)-数字处理STL
题目描述1009 Product of Polynomials (25分)以指数 底数的形式输入两行数据,输出相乘结果每行的第一个数字表示指数 底数有多少组思路跟1002 A+B for Polynomials (25分)很相似。用两个结构体来存储输入数据使用map<int, double>来存储答案,int存指数,double表示系数相乘的结果注意判断系数等于0的情况,否则第一个测试点不通过#include <bits/stdc++.h>using names原创 2021-01-30 23:49:31 · 105 阅读 · 0 评论 -
【甲级PAT】-1069 The Black Hole of Numbers (20分)-数字处理
乙级原题,再做一遍竟然有测试点没通过原创 2021-01-29 22:50:02 · 91 阅读 · 0 评论 -
【甲级PAT】-1048 Find Coins (25分)-Hash散列
题目描述1048 Find Coins (25分)思路转载 2021-02-03 14:15:15 · 82 阅读 · 0 评论 -
【甲级PAT】-1031 Hello World for U (20分)-图形输出
题目描述1031 Hello World for U (20分)输入一串长度为N的字符串,输出该字符串组成的U形图形。U形两竖直方向的字母个数分别为n1和n3,U形底部的字母个数为n2。思路题目关键在于n1、n2、n3的求解,n1=n3<=n2且 n1+n2+n3-2=N#include <bits/stdc++.h>using namespace std;int main(){ string s; cin>>s; int len=原创 2021-01-28 22:00:08 · 118 阅读 · 0 评论 -
【甲级PAT】-1109 Group Photo (25分)-结构体排序
题目描述第一行输入N个人,以及这N个人需要排成的行数K。接下来N行输入每个人的名字和身高。排队规则如下:每行 N/K 个人,如果有额外多余的人排到最后一行站在后排的人的身高不低于前排人的身高用m来表示每行的人数,每行中最高的人应站在m/2+1的位置将每排中的人按身高非递增排序,最高的人放在最中间的位置。第二高的人安排在中间人的右手边、第三高的人放在中间人的左手边…(假设我们面对着中间人,中间人的左手边就是我们的右手边)若出现多个人的身高相等,则按名字字典顺序递增的顺序排...原创 2021-01-29 10:36:26 · 91 阅读 · 0 评论 -
【甲级PAT】-1002 A+B for Polynomials (25分)-数字处理
题目描述1002 A+B for Polynomials (25分)以指数 底数的形式输入两行数据,输出相加结果每行的第一个数字表示指数 底数有多少组思路由于数据量不大,使用三个结构体来存储数据。当指数相等时底数相加,注意考虑底数相加等于0的情况。#include <iostream>using namespace std;struct node1//存第一行的输入数据{ int exp; double coe;}a1[12];struct node2//原创 2021-01-30 22:38:31 · 64 阅读 · 0 评论 -
【甲级PAT】-1029 Median 中位数(25分)-数字处理
题目描述1029 Median (25分)给出两行递增数列,每行的第一个数字表示数列有多少个,接下来输入n个数。求两行数列组成的新的非递增数列的中位数注意:vector末尾插入数据时,使用的是vec.push_back();末尾删除数据时使用vec.pop_back();set插入数据使用的是insertmap直接m[key]=value思路把输入的数据放到vector容器中,再利用sort函数排序,输出最中间的数既可#include<bits/stdc++.h>usin原创 2021-01-31 10:09:08 · 100 阅读 · 0 评论 -
【甲级PAT】-1104 Sum of Number Segments (20分)-排列组合
新改的数据要用long double才能通过原创 2021-02-01 11:25:27 · 163 阅读 · 0 评论 -
【甲级PAT】-1028 List Sorting (25 分)-排序
题目描述PAT甲级 1028 List Sorting (25 分)第一行输入n和c。之后输入n行,每行包括id、name、grade。当c==1时,按id递增排序当c==2时,按name非递减排序当c==3时,按grade非递减排序当grade或name时,按id递增排序思路使用结构体来存储数据,之后根据c的值定义不同cmp函数即可#include <bits/stdc++.h>using namespace std;struct node{ string原创 2021-08-05 22:49:00 · 122 阅读 · 0 评论 -
【甲级PAT】-1017 Queueing at Bank (25分)-模拟
使用优先队列priority_queue原创 2021-01-29 17:39:40 · 98 阅读 · 0 评论 -
PAT-完美数列1020
PAT-完美数列1020原创 2021-01-11 10:06:58 · 83 阅读 · 0 评论 -
【甲级PAT】-1148 Werewolf - Simple Version (20分)-枚举
题目描述1148 Werewolf - Simple Version (20分)狼人杀游戏:共给出N个玩家,其中两人是狼人。总共有两个人在说谎,一人是狼人、一人是平民第一行N表示共N个玩家,接下来N行数字,正数代表人类,负数代表狼人。输出狼人的序号英语Werewolf(狼人杀)ascending order 升序思路先确定狼人,然后找说谎的人,如果说谎的人有两个且其中有一个是狼人就输出结果。代码一:#include<bits/stdc++.h>using namespac原创 2021-02-01 14:54:03 · 105 阅读 · 0 评论 -
PAT-反转链表1015
PAT-反转链表1015原创 2021-01-11 09:19:21 · 55 阅读 · 0 评论 -
【甲级PAT】-A1024 Palindromic Number-大整数加法
文章目录题目描述英语思路题目描述英语Palindromic Number:回文数思路原创 2021-02-21 17:08:46 · 142 阅读 · 0 评论 -
【甲级PAT】-1065 A+B and C (64bit) (20分)-简单模拟
文章目录题目描述解题思路AC代码题目描述1065 A+B and C (64bit) (20分)解题思路题目给的范围是[−263,263][−2^{63} ,2^{63} ][−263,263],两数相加可能会溢出。但溢出无非两种情况两正数相加得到负数,此时说明a+b是真的大于c,返回true两负数相加得到正数,此时说明a+b不是真的大于c,返回false其余情况正常判断a+b是否大于c既可AC代码#include <bits/stdc++.h原创 2021-01-15 19:44:58 · 131 阅读 · 0 评论 -
【甲级PAT】-1038 Recover the Smallest Number (30 分)-贪心
1038 Recover the Smallest Number (30 分)题目给出一组数字,求它们拼接后最小的数字思路对数字A和B,如果A+B的字典序比B+A小(这里的“+”指字符换拼接,而不是算术加法),则将A排在前面,反之,将B排在后面。依照以上规则对数组进行排序。然后对数组进行拼接。最后去除前导零。如果去除后字符串为空,则输出0。#include <bits/stdc++.h>using namespace std;string a[10005];bool cm转载 2021-08-18 12:11:13 · 160 阅读 · 0 评论 -
【甲级PAT】-1035 Password (20分)-字符串处理
【甲级PAT】-1035 Password (20分)-字符串处理【水题】原创 2021-01-16 22:11:36 · 92 阅读 · 0 评论 -
【甲级PAT】-1071 Speech Patterns (25分)-字符串处理+STL
文章目录题目描述思路题目描述1071 Speech Patterns (25分)大小写字母+数字的组合才是合法的单词输入一字符串,统计出现次数最多的合法单词。如果有并列的,那么输出字典序里面的第一个思路使用isalnum测试字符是否为英文(alpha character)或数字(numeric character)使用tolower将大写字母转换成小写字母注意string字符串拼接使用的是+当遇到英文和数字以外的字符,说明之前已经构成了一个单词,需要将单词temp加入map中,但注意一定原创 2021-01-23 12:40:52 · 114 阅读 · 0 评论 -
【甲级PAT】-1132 Cut Integer (20分)-数字处理
题目描述1132 Cut Integer (20分)剪切整数意味着将K位的孤立整数Z剪切为两个(K / 2)位长整数A和B的整数。例如,剪切Z = 167334之后,我们得到A = 167和B =334。这很有趣看到Z可以由A和B的乘积来表示为167334 /(167 × 334)=3。给定整数Z,您应该测试它是否为整数。思路以字符串的形式输入数字,前K/2位为A,后K/2位为B,整个数字为k。当k%(A * B) = =0时输出yes注意: 输出时需要判断A*B是否为0,否则%0会出现浮点错误原创 2021-01-29 18:20:02 · 115 阅读 · 0 评论 -
【甲级PAT】-1108 Finding Average (20分)-数字处理
题目描述1108 Finding Average (20分)规定有效数字为:范围在 [−1000,1000] 之内的实数小数点后不超过两位输入一组数据,求有效数字的平均值。对于非有效数字,输出ERROR: X is not a legal number思路由于输入的数据可能不是实数或小数点的个数多于1,故使用字符串来存储输入数据。编写trans函数将输入的字符串转换为数字f函数判断是否为合法数字#include <bits/stdc++.h>using namespa原创 2021-01-30 11:14:24 · 123 阅读 · 0 评论 -
【甲级PAT】-1088 Rational Arithmetic (20 分)-最大公因数
文章目录题目描述英语思路题目描述给你两个数,依次输出他们的加减乘数的计算过程和结果。注意负号只能在分子前面,分母不能为0所有的输出结果的整数都在long int范围内英语numerator:分子denominator:分母parentheses:圆括号the sum, difference, product and quotient:和、差、积、商思路一些细节问题如果是负数,两边加上()如果相除时除数为0了,输出Inf。负号只能在分子前面#include <bits/转载 2021-02-25 12:07:28 · 136 阅读 · 0 评论 -
【甲级PAT】-1113 Integer Set Partition (25 分)-贪心
1113 Integer Set Partition (25 分)给出一个长度为N的序列,首先将它分成长度为n1和n2的两个子序列,首先保证|n1 - n2|最小,其次保证|s1 - s2|(s1、s2分别为两个子序列的元素和)最大。思路:将原数列进行排序,如果n为偶数,等分即可(即n1=N/2,n2=N/2)。如果n为偶数,使n1<n2#include <bits/stdc++.h>using namespace std;int a[100005];int main()原创 2021-08-14 15:28:18 · 112 阅读 · 0 评论 -
【PAT】-1112 Stucked Keyboard (20分)-字符串处理
题目描述1112 Stucked Keyboard (20分)如果一个键坏了,那么点它一次就会出现连续k个字符。现在给出k和一个字符串,求坏键(按输入的次序)和原本应该输出的字符串(假设坏键没坏的时候)思路由于字符顶多有256个,故设置两个bool数组marked[L],printed[L]分别来标志某个键是否为坏键、是否被输出过。首先初始化所有键都是坏键,所有坏键都未被输出过。遍历输入数组,当某个键连续出现的次数不是k的整数倍,说明该键一定不是坏键,将marked[i]置为false。再遍历原创 2021-01-28 19:57:51 · 67 阅读 · 0 评论 -
【甲级PAT】-1047 Student List for Course (25分)-STL
c++代码STL求解;方法一使用map<int, vector>;方法二使用vector< string> data[MAX_K + 1]原创 2021-01-15 18:14:40 · 79 阅读 · 0 评论 -
【甲级PAT】-1070 Mooncake (25 分)-贪心
1070 Mooncake (25 分)已知有n种不同种类的月饼,每种月饼给出存货量inventory及相应售卖价格price。若市场总需求量为d,求能获得的最大利润,输出结果保留两位小数。#include <bits/stdc++.h>using namespace std;struct node{ double invent,price; double x;//表示每吨多少钱,根据x从大到小排序}a[1005];bool cmp(node a,node b)原创 2021-08-14 15:06:23 · 127 阅读 · 0 评论