天梯赛 PAT
..
下坠丷
每天都在NULLPointerException
展开
-
1002 A+B for Polynomials 分数 25 带解析
题目大意:两个多项式相加,有两行输入 第一个是项的数量K,后面是n个项 每个项包括两个输入,指数 系数。K的大小在1-10(可恶,我一开始当成指数范围在1-10了,只有第1个测试点没过,所以其他的测试点指数都在1-10的范围内),指数大小在0-1000。输出和输入一样的格式,系数要精确到小数点后一位,行末不能有空格。#include<bits/stdc++.h>using namespace std;int main(){ //以指数为下标 vector<doubl原创 2022-05-08 00:04:28 · 105 阅读 · 0 评论 -
1001 A+B Format
题目大意是两个整数相加,然后每隔三位数一个加一个逗号,如果结果不到4位数,就不用加逗号(也就是西方的数字表达方式)感觉思路不怎么难,就是各种奇奇怪怪的情况没考虑完全。。。运行一次查一次漏,感觉这样不太行#include<bits/stdc++.h>using namespace std;int main(){ int a,b; cin>>a>>b; a+=b; if(a<0) { cout<&l原创 2022-05-07 23:20:49 · 276 阅读 · 0 评论 -
哲哲打游戏 简单的进阶题
感觉这个应该是L2中最简单的一个,但是它放在第四个题而且题目和输入巨长,压根就没看。。看来每次还是要先看看所有的题目思路先根据输入的剧情信息建立一个动态锯齿数组,把每个剧情对应的分支存下来,再根据做出的选择,ans作为当前所在位置,初始为1,0选择,1存档,2读档#include<iostream>#include<vector>using namespace std;//book存储存档信息,为了方便,从1开始使用int book[101] = { 0 };int原创 2022-04-18 10:21:42 · 2319 阅读 · 0 评论 -
L2-1 盲盒包装流水线 (25 分)
思路这个题目,徽章的类型其实就是每放满一次栈,就将栈里的徽章放给上面的格子。最开始我用一个n的数组存盒子编号,但是查找很费力,后两个点直接超时。因为数据并不算大,为了查找方便,这次直接开了个100000的数组,25分get#include<iostream>#include<stack>#include<vector>using namespace std;int main(){ int n, size, temp; cin >> n &g原创 2022-04-17 22:17:57 · 1115 阅读 · 0 评论 -
最长连续递增子序列 (20 分) 思路解释(带注释)
给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。输入格式:输入第1行给出正整数n(≤105);第2行给出n个整数,其间以空格分隔。输出格式:在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。输入样例:151 9 2 5 7 3 4 6 8 0 11 15 17 17 10输出样例:3 4 6 8思路设置一个max存储最大的序列长原创 2022-03-29 22:56:28 · 1745 阅读 · 0 评论 -
7-5合数(20分)备忘录和计数简化查找
合数是指在大于1的整数中除了能被1和本身整除外,还能被其他数(0除外)整除的数。现在,请你求在一个合数的因子中,有几个因子是合数。例如,16的因子有1,2,4,8,16,其中4,8,16为合数,它有3个因子为合数。现在,请你求范围1至n中,因子中合数个数为x的数的数量(多次询问)。输入格式:第一行输入两个整数 n,m(1≤n,m≤105) 表示范围以及询问次数。接下来 m 行,每行一个正整数 x(1≤x≤n),查询范围1至n中,因子中合数个数为x的数的数量输出格式:一个整数,即满足题意的答原创 2022-03-24 18:50:38 · 844 阅读 · 0 评论 -
L2-1包装机 栈和队列操作,以及易错点
一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时,机械手将抓取筐顶部的一件物品,放到流水线上。图 2 显示了顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态。一种特殊情况是,因为筐的容量是有限的,当筐已经满了,但仍然有某条轨道的按钮被按下时,系统应强制启动 0 号键,先从筐里抓出一件物品,再将对应轨道的物品推落。此外,如果轨道已经空了,再按对应的按钮不会发生任原创 2022-03-23 21:40:50 · 201 阅读 · 0 评论 -
L1-017到底有多二
个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字-13142223336是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11×1.5×2×100%,约为81.82%。本题就请你计算一个给定整数到底有多二。输入格式:输入第一行给出一个不超过50位的整数N。输出格式:在一行中输出N犯二的程度,保留小数点后两位。输入样例:-13142223336输出样例:81.82%思路:数太大原创 2022-03-21 22:54:07 · 159 阅读 · 0 评论 -
L1-016 查验身份证 (15 分)
一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 4 3 2现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。输入格式:输入第一行给出正整数N(≤100)是输入的身份原创 2022-03-21 22:01:39 · 87 阅读 · 0 评论 -
L1-013 计算阶乘和 (10 分) 备忘录dp
对于给定的正整数N,需要你计算 S=1!+2!+3!+…+N!。输入格式:输入在一行中给出一个不超过10的正整数N。输出格式:在一行中输出S的值。思路:这个题目其实蛮简单,但是如果用递归的话,会重复求解很多问题,所以我用了一个备忘录,时间复杂度要低了不少,感觉蛮不错,所以记录一下。阶乘的关系很简单f(i)=f(i-1);显然f(1)=1。后续的都很好求,然后把所有的阶乘加起来就OK了。#include<iostream>using namespace std;int main(原创 2022-03-21 20:51:13 · 300 阅读 · 0 评论 -
L1-011 A-B (20 分)
本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。输入格式:输入在2行中先后给出字符串A和B。两字符串的长度都不超过10000并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。输出格式:在一行中打印出A−B的结果字符串。思路:存入A,B。(A,B的大小一定要为10001,不然会有两个点过不了测试)创建一个大小等于ASCII码的数组,初始化为0,然后将ASCii数组中B出现过的字符对应A原创 2022-03-21 20:36:23 · 868 阅读 · 0 评论 -
7-8 差
给你两个长度为 N 的排列 P 和 Q,且这两个排列都是由 1,2,3,…,N 组成。易知,对于长度为 N 的排列,存在 N! 种排列。现在,请你求出排列 P 和 Q 在长度为 N 的排列中的序列数分别是 a 和 b,并输出 ∣a−b∣。输入格式:第一行为一个整数 N,2≤N≤8。第二行为排列P,第三行为排列Q。输出格式:输出一个整数,即 ∣a−b∣。输入样例:在这里给出一组输入。例如:31 3 23 1 2输出样例:在这里给出相应的输出。例如:3样例解释:对于长度为 3 的原创 2022-03-20 15:48:45 · 261 阅读 · 0 评论 -
PTA 天梯赛 L1-005 考试座位号
为了存储方便,那一大串数用string存储,拒绝排序,直接将他放到对应的试机座位号下标的string数组中,考试座位号也放在同一个下标的int类型数组中。读入试机号之后直接输出就ok#include<iostream>using namespace std;int main(){ int n; cin>>n; //存入数据 string *s=new string[n+1]; int *arr=new int[n+1]; str原创 2022-03-19 22:02:46 · 343 阅读 · 0 评论 -
PTA 天梯赛 L1-003个位数统计
分析:唯一的难点不超过1000位的正整数,所以用string存储,longlongint会溢出,字符转int,用ch-'0’或者ch-48;#include<iostream>using namespace std;int main(){ string n; cin>>n; int i=0; int arr[10]; for(int i=0;i<10;i++) { arr[i]=0; } wh原创 2022-03-19 21:43:36 · 145 阅读 · 0 评论