PTA乙级
短腿小小柯基
这个作者很懒,什么都没留下…
展开
-
1058 选择题
/** * 1.解题思路:顺序查看注释 * * 2.参考博客:https://blog.csdn.net/liuchuo/article/details/52510582 **/#include <cstdio>#include <vector>#include <set>using namespace std;int main() { ...原创 2019-08-25 18:35:18 · 158 阅读 · 1 评论 -
1051 复数乘法
/***1.解题思路:当A或者B小于0但是大于-0.005(比如-0.00001)时候* 如果按照A>=0的判断,会输出“-0.00”这样的结果* 事实上应该输出“0.00”【B同理,应该输出“+0.00i”】**2.参考博客:https://www.liuchuo.net/archives/606*/#include <iostream>...原创 2019-08-22 20:37:01 · 141 阅读 · 0 评论 -
1052 卖个萌
/***1.解题思路:因为不知道一行有多少个表情,所以用一个string类型的不定长二维数组vector存储表情包* 以及可以调用v.size()顺便解决不知道一行有多少个表情的问题* 不定长数组共三行,分别对应输入用例的三行~只不过在存储如数组之前把它们的方括号去掉在存储* 这里可以用string的substr方法实现~然后根据...原创 2019-08-22 20:37:32 · 109 阅读 · 0 评论 -
1063 计算谱半径
/** * 1.本题解析:见注释。 * * 2.参考博客:https://www.liuchuo.net/archives/2746 **/#include <iostream>#include <cmath>using namespace std;int main() { int n; scanf("%d", &n); /...原创 2019-08-26 17:01:17 · 126 阅读 · 0 评论 -
1064 朋友数
/** * 1.解题思路:在接收输入数据的时候就把该数字的每一位相加,并把结果插入一个set集合中。 * 因为set是有序的、不重复的,所以set的size值就是输出的个数 * set中的每一个数字即所有答案的数字序列 * * 2.参考博客:https://www.liuchuo.net/archives/2889 **/#include...原创 2019-08-26 17:02:03 · 162 阅读 · 0 评论 -
1065 单身狗
/** * 1.解题思路:设立数组couple[i] = j表示i的对象是j~一开始先设置为都是-1 * 设立数组isExist表示某人的对象是否来到了派对上~接收数据的时候 * 对于每一对a和b,将couple的a设置为b,b设置为a,表示他俩是一对 * 对于每一个需要判断的人,将其存储在guest数组里面 * ...原创 2019-08-26 17:02:39 · 157 阅读 · 0 评论 -
1066 图像过滤
/** * 1.解题思路:边输入边处理输出 * 假设当前输入的temp值在a~b区间就将temp替换为num * 以%03d的方式输出temp~ * * 2.参考博客:https://www.liuchuo.net/archives/3747 **/#include <iostream>using namespace std...原创 2019-08-26 17:03:09 · 152 阅读 · 1 评论 -
1067 试密码
/** * 1.解题思路:如果已经是”#”了就不要继续下面的判断了,不然可能输出Wrong password: “#” * 如果密码错误并且达到了尝试的次数,是先输出Wrong password那句紧接着输出Account locked那句 * Wrong password: 后面有个空格 * * 2.参考博客:https://www.liu...原创 2019-08-26 17:03:39 · 236 阅读 · 0 评论 -
1068 万绿丛中一点红
/** * 1.解题思路:首先这个点必须是唯一的,所以用map标记如果不是唯一的点就不用考虑了 * 接着对于每个点,判断它的周围八个点与它的差值是否大于阈值 * 如果有一个点没有满足大于阈值就return false * 最后记得输入的时候是列、行——m、n,输出的时候也是列、行坐标 * * 2.参考博客:https:...原创 2019-08-26 17:04:11 · 90 阅读 · 0 评论 -
1069 微博转发抽奖
/** * 1.解题思路:见注释。 * * 2.参考博客:https://www.liuchuo.net/archives/3743 **/#include <iostream>#include <map>using namespace std;int main() { int m, n, s; scanf("%d%d%d", &m...原创 2019-08-26 17:04:43 · 130 阅读 · 0 评论 -
1070 结绳
/** * 1.解题思路:因为所有长度都要串在一起,每次都等于(旧的绳子长度+新的绳子长度)/2 * 所以越是早加入绳子长度中的段越要对折的次数多 * 所以既然希望绳子长度是最长的,就必须让长的段对折次数尽可能的短。 * 所以将所有段从小到大排序,然后从头到尾从小到大分别将每一段依次加入结绳的绳子中 * ...原创 2019-08-26 17:05:20 · 219 阅读 · 0 评论 -
1050 螺旋矩阵
/** * 1.解题思路:首先计算行数m和列数n的值,n从根号N的整数部分开始, * 往前推一直到1,找到第一个满足N % n== 0的 * m的值等于N/n~将N个给定的值输入数组a * 并将a数组中的值按非递增排序,接着建立m行n列的数组b * 填充时按层数填充,一个包裹矩阵的口字型为一层,计算螺...原创 2019-08-22 20:36:31 · 112 阅读 · 0 评论 -
1049 数列的片段和
/** * 1.解题思路:将数列中的每个数字读取到temp中,假设我们选取的片段中包括temp; * 且这个片段的首尾指针分别为p和q,那么对于p,有i种选择,即 1、2...i * 对于q,有n-i+1种选择,即 i、i+1...n * 所以p和q组合形成的首尾片段有i * (n-i+1)种 * 因...原创 2019-08-22 20:36:00 · 96 阅读 · 0 评论 -
1059 C语言竞赛
/** * 1.解题思路:ran数组标记每个id对应的排名,集合ss存储所有已经询问过的id * 如果发现当前id已经出现在ss中,则输出“Checked”,如果ran[id] == 0 * 说明当前id不在排名列表中,所以输出“Are you kidding?” * 如果ran[id]为1则输出“Minion”,如果ran...原创 2019-08-25 18:35:49 · 111 阅读 · 0 评论 -
1060 爱丁顿数
/** * 1.解题思路:从下标1开始存储n天的公里数在数组a中,对n个数据从大到小排序 * i表示了骑车的天数,那么满足a[i] > i的最大值即为所求。 * *2.举例: 10的时候,第一天,(1天超过1 英里) ; * 9的时候,(2天超过2英里);8的时候(3天超过3英里); * 8的时候(4天超过...原创 2019-08-25 18:36:22 · 86 阅读 · 0 评论 -
1061 判断题
/** * 1.本题解析:见注释。 * * 2.参考博客:https://www.liuchuo.net/archives/2742 * */#include <iostream>#include <vector>using namespace std;int main() { int n, m, temp; scanf("%d%d", &...原创 2019-08-25 18:36:54 · 152 阅读 · 0 评论 -
1062 最简分数
/** * 1.解题思路: * * * * **/#include <iostream>using namespace std;//辗转相除法:求出最大公约数int gcd(int a, int b){ return b == 0 ? a : gcd(b, a % b);}int main() { int n1, m1, n2, m2, ...原创 2019-08-25 18:37:24 · 106 阅读 · 0 评论 -
1043 输出PATest
/** * 1.本题思路:将字符串的每一个字符出现的个数保存在int map[128]中 * 然后依次输出PATest,每次输出一次字符就将map对应的字符个数减1 * * 2.参考博客:https://www.liuchuo.net/archives/579 */#include <iostream>using namespace std;in...原创 2019-08-22 20:32:43 · 87 阅读 · 0 评论 -
1044 火星数字
/** * 1.本题思路:1.因为给出的可能是数字(地球文)也有可能是字母(火星文) * 所以用字符串s保存每一次的输入,因为如果是火星文则会出现空格 * 所以用getline接收一行的输入~计算string s的长度len,判断s[0]是否是数字 * 如果是数字,表示是地球文,则需要转为火星文,执行func1();如果不是...原创 2019-08-22 20:33:23 · 293 阅读 · 0 评论 -
1045 快速排序
/** * 1.解题思路:对原序列sort排序,逐个比较 * 当当前元素没有变化并且它左边的所有值的最大值都比它小的时候就可以认为它一定是主元 * * 2.参考博客:https://www.liuchuo.net/archives/505 */#include <iostream>#include <algorithm>#includ...原创 2019-08-22 20:33:56 · 221 阅读 · 1 评论 -
1046 划拳
/** * 1.解题思路:jia和yi分别代表甲乙两人喝酒的杯数,sum表示甲喊和乙喊之和 * 如果sum == 甲划,并且sum != 乙划,表示乙输了,乙喝酒杯数yi++ * 反之jia++,最后输出jia和yi的值~ * * 2.参考博客:https://www.liuchuo.net/archives/583 */#include...原创 2019-08-22 20:34:29 · 82 阅读 · 0 评论 -
1047 编程团体赛
/** * 1.解题思路:用team数组保存每个队伍的总得分 * 输入的时候将成绩score累加到队伍编号t的team[t]中 * 比较team数组中所有得分,将最大值的下标保存在max中 * 最后输出最高分的队伍编号max和对应的总得分team[max] * * 2.参考博客:https://www.liuchuo....原创 2019-08-22 20:34:59 · 245 阅读 · 0 评论 -
1048 数字加密
/** * 1.解题思路:首先将a和b倒置,将字符串a和b中较短的那个末尾添加0直到两个字符串长度相等 * 然后从0开始依次处理每一位,如果当前位是奇数位(i % 2 == 0) * 则将a[i]的数字加上b[i]的数字再对13取余,结果添加在字符串c的末尾; * 如果是偶数位,计算b[i]和a[i]的差值,如果小于0就加1...原创 2019-08-22 20:35:30 · 153 阅读 · 0 评论 -
1071 小赌怡情
/** * 1.解题思路:ans表示n1和n2真实的结果,如果n1 > n2,ans为0 * 表示应该赌小,否则ans = 1,表示玩家应该赌大。 * T表示当前玩家有的筹码数,如果T=0,表示玩家已经输光 * 输出Game Over;如果t > T,表示玩家下注超过持有的筹码量 * 输出Not ...原创 2019-08-26 17:06:19 · 88 阅读 · 0 评论 -
1072 开学寄语
/** * 1.解题思路:bool类型的forbid存储禁止携带的物品,如果需要被查缴则赋值为true; * flag变量表示当前学生是否已经输出过姓名,一开始flag=false * 当前学生如果有需要被查缴的物品且还未输出过他的姓名,则输出name * 并令flag=true;如果有需要被查缴的物品且已经输出过姓名,则输出该物...原创 2019-08-26 17:06:51 · 160 阅读 · 0 评论 -
1085 PAT单位排行
/** * 1.解题思路:两个map,一个cnt用来存储某学校名称对应的参赛人数 * 另一个sum计算某学校名称对应的总加权成绩。 * 每次学校名称string school都要转化为全小写 * 将map中所有学校都保存在vector ans中 * 类型为node,node中包括学校姓名、加权总分、参...原创 2019-08-29 20:33:41 · 155 阅读 · 0 评论 -
1086 就不告诉你
/** * 1.解题思路:a 和 b的乘积转换成字符串,再将字符串反转,最后将反转过的字符串转换成数字 * * 2.参考博客:https://blog.csdn.net/liuchuo/article/details/82560818 **/#include <iostream>#include <string>#include <algorithm&...原创 2019-08-29 20:34:17 · 91 阅读 · 0 评论 -
1087 有多少不同的值
/** * 1.解题思路:把i/2 + i/3 + i/n的值插入到set中,输出set的size就是算式中不同值的个数 * * 2.参考博客:https://blog.csdn.net/liuchuo/article/details/82560814 **/#include <iostream>#include <set>using namespace s...原创 2019-08-29 20:34:48 · 122 阅读 · 0 评论 -
1088 三人行
/** * 1.解题思路:丙不一定是int值,可能是4.5这样的数字~所以要用double存储丙~ * i、j、k分别代表甲乙丙~i从99遍历到10找到符合题意的那个数字即可 * * 2.参考博客:https://blog.csdn.net/liuchuo/article/details/82560849 **/#include <iostream>...原创 2019-08-29 20:35:18 · 97 阅读 · 0 评论 -
1089 狼人杀-简单版
/** * 1.解题思路:每个人说的数字保存在v数组中,i从1~n、j从i+1~n遍历,分别假设i和j是狼人 * a数组表示该人是狼人还是好人,等于1表示是好人,等于-1表示是狼人。 * k从1~n分别判断k所说的话是真是假,k说的话和真实情况不同 * (即v[k] * a[abs(v[k])] < 0)则表示k在说谎,...原创 2019-08-29 20:35:51 · 149 阅读 · 0 评论 -
1090 危险品装箱
/** * 1.解题思路:用map存储每一个货物的所有不兼容货物 * 在判断给出的一堆货物是否是相容的时候,判断任一货物的不兼容货物是否在这堆货物中 * 如果存在不兼容的货物,则这堆货物不能相容 * 如果遍历完所有的货物,都找不到不兼容的两个货物,则这堆货物就是兼容的 * * 2.参考博客:https://blog.c...原创 2019-08-29 20:36:21 · 129 阅读 · 0 评论 -
1091 N-自守数
/** * 1.解题思路:从1-9枚举,判断是否存在N。通过to_string把乘积转成字符串,再通过substr取末尾子串比较即可 * * 2.参考博客:https://blog.csdn.net/liuchuo/article/details/84972987 **/#include <iostream>#include <string>using n...原创 2019-08-29 20:36:52 · 96 阅读 · 0 评论 -
1092 最好吃的月饼
/** * 1.解题思路:用二维数组记录月饼的销售记录,用sum数组统计每种月饼的总销量 * 并且求出最大销量。然后遍历每种月饼的销量,等于最大值的就保存输出 * * 2.参考博客:https://blog.csdn.net/liuchuo/article/details/84972972 **/#include <iostream>#includ...原创 2019-08-29 20:37:22 · 127 阅读 · 0 评论 -
1093 字符串A+B
/** * 1.解题思路:求出两个字符串的并集,按照原有顺序输出。 * 意思是按顺序输出,第一次出现的所有字符。 * 用数组hash标记一下是否是第一次输出即可, * 字符本身是一个ASCII码值,可当作整数用 * * 2.参考博客:https://blog.csdn.net/liuchuo/article/detai...原创 2019-08-31 16:47:57 · 208 阅读 · 0 评论 -
1094 谷歌的招聘
/** * 1.解题思路:给出一个l长度的字符串,求出其中第一个k位的素数 * 枚举每个k位的子串,转换成整数,判断是否是素数 * (判断素数的时候要把0和1也考虑进去) * * 2.参考博客:https://blog.csdn.net/liuchuo/article/details/84972915 **/#include <ios...原创 2019-08-31 16:48:32 · 192 阅读 · 1 评论 -
1084 外观数列
/** * 1.解题思路:用string s接收所需变幻的数字,每次遍历s * 从当前位置i开始,看后面有多少个与s[i]相同,设j处开始不相同 * 那么临时字符串 t += s[i] + to_string(j – i); * 然后再将t赋值给s,cnt只要没达到n次就继续加油循环下一次,最后输出s的值 * * 2....原创 2019-08-29 20:33:10 · 127 阅读 · 0 评论 -
1083 是否存在相等的差
/** * 1.解题思路:所有差值出现的次数保存在a数组中,从后往前输出所有出现的次数>=2的值 * * 2.参考博客:https://www.liuchuo.net/archives/4644 **/#include <iostream>using namespace std;int main() { int n, t, a[10000] = {0};...原创 2019-08-29 20:32:45 · 88 阅读 · 0 评论 -
1073 多选题常见计分法
/** * 1.解题思路:错误是指错选或者漏选。用异或运算来判断一个选项和正确选项是否匹配 * 如果是匹配的,那么异或的结果应当是0;如果不匹配 * 那么这个选项就是存在错选或者漏选的情况 * 例如:设a为00001,b为00010,c为00100,d为01000,e为10000 * 如果给定的正确答案是ac...原创 2019-08-27 10:27:51 · 123 阅读 · 0 评论 -
1074 宇宙无敌加法器
/** * 1.本题思路:先将要相加的两个字符串S1和S2都扩展到和S等长 * 然后从后往前按照进制相加到ans中,注意进位carry,最后输出字符串ans * 记得不要输出字符串ans前面的0。如果一次都没有输出,最后要输出一个0 * * 2.参考博客:https://www.liuchuo.net/archives/4218 **/#...原创 2019-08-27 10:28:37 · 184 阅读 · 0 评论 -
1075 链表元素分类
/** * 1.解题思路:将结点用list[10000]保存,list为node类型 * node中保存结点的值value和它的next地址。list的下标就是结点的地址。 * 将<0、0~k、>k三部分的结点地址分别保存在v[0]、v[1]、v[2]中 * 最后将vector中的值依次输出即可 * * 2.参考...原创 2019-08-27 10:29:17 · 94 阅读 · 0 评论