代码编织梦想

1036 跟奥巴马一起编程

在这里插入图片描述

解决代码

模拟题目即可。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
	int n;
	char c;
	cin>>n>>c;
	double col=(double)n/2;
	int n0=n/2;
	if(col>n0+0.4) n0+=1; 
	for(int i=0;i<n;i++){
		cout<<c;
	}
	cout<<endl;
	for(int i=0;i<n0-1;i++){
		if(i==n0-2){
			for(int j=0;j<n;j++){
				cout<<c;
			}
		}
		else{
			for(int j=0;j<n;j++){
				if(j==0||j==n-1){
					cout<<c;
				}else cout<<' ';
			}
			cout<<endl;
		}	
	}
	return 0;
}

1037 在霍格沃茨找零钱

在这里插入图片描述

解决代码

就是进制转换的升级版,处理好进制转换即可。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int do_(string &a){
	string x;
	int num;
	for(int i=0;i<a.size();i++){
		if(a[i]=='.'){
			x=a.substr(0,i);
			a=a.substr(i+1,a.size()-i);
			num=stoi(x);
			break;
		}
	}
	return num;
}
int main(){
	string a,b;
	cin>>a>>b;
	int g1,s1,k1;
	int g2,s2,k2;
	g1=do_(a); s1=do_(a); k1=stoi(a);
	g2=do_(b); s2=do_(b); k2=stoi(b);
	long long int sum=(long long int)(g2-g1)*17*29+(s2-s1)*29+(k2-k1);
	if(sum<0) cout<<'-';
	cout<<abs(sum/(17*29))<<'.'<<abs(sum/29%17)<<"."<<abs(sum%29);
	return 0;
}

1038 统计同成绩学生

在这里插入图片描述

解决代码

利用哈希表,解决非常高效。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int hash_[100005];
vector<int> mark,find_;
int main(){
	int n,m;
	cin>>n;
	mark.resize(n);
	for(int i=0;i<n;i++){
		cin>>mark[i];
		hash_[mark[i]]++;
	}
	cin>>m;
	find_.resize(m);
	for(int i=0;i<m;i++) cin>>find_[i];
	for(int i=0;i<find_.size();i++){
		cout<<hash_[find_[i]];
		if(i!=find_.size()-1) cout<<' ';
	}
	return 0;
} 

1039 到底买不买

在这里插入图片描述

解决代码

利用两个哈希表,先统计摊主的珠子个数,再利用unordered_map统计小红的珠子种类以及个数。
接着对于小红的每种珠子,利用sum累计比摊主多了多少个(即为缺了珠子)。
如果结果为正,则输出代表真的缺少了这么多个;
如果结果为非正数,则说明不缺少,输出摊主珠子个数 — 小红珠子个数 即为多余的珠子个数。

#include<iostream>
#include<vector>
#include<algorithm>
#include<unordered_map>
using namespace std;
int hash_[150];
unordered_map<char,int> map_;
int main(){
	string a,b;
	cin>>a>>b;
	for(int i=0;i<a.size();i++){
		hash_[a[i]]++;
	}
	int sum=0;
	for(int i=0;i<b.size();i++){
		map_[b[i]]++;
	}
	for(auto i:map_){
		if(i.second>hash_[i.first]) sum+=i.second-hash_[i.first];
	}
	if(sum>0){
		cout<<"No "<<abs(sum)<<endl;
	}else{
		cout<<"Yes "<<a.size()-b.size();
	}
	return 0;
}

1040 有几个PAT

在这里插入图片描述
参考了柳神的代码,大佬太强了。
先统计整个串中T的个数numt,随后遍历整个串,遇到T就numt–,此时numt代表串后面的t的个数。
遇到P就nump++,直到遇到A,A字符前面P的个数和后面T的个数的乘积即为这个A所在的PAT串的个数,将其取模累加。
思路非常好!

解决代码

#include<iostream>
#include<vector>
#include<algorithm>
#include<unordered_map>
using namespace std;
int main(){
	string str;
	cin>>str;
	int numt=0,nump=0,numa=0;
	long long int sum=0;
	for(auto i:str) if(i=='T') numt++;
	for(auto i:str){
		if(i=='T') numt--;
		if(i=='P') nump++;
		if(i=='A') sum+=(nump*numt)%1000000007;
	}
	cout<<sum%1000000007<<endl;
	return 0;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45929428/article/details/129842614

PAT (Basic Level) Practice (中文)题目集(C/C++解题)-爱代码爱编程

PAT (Basic Level) Practice (中文)题目集(C/C++详解) 标号标题分数1001害死人不偿命的(3n+1)猜想151002写出这个数201003我要通过!201004成绩排名201005继续(3n+1)猜想251006换个格式输出整数151007素数对猜想201008数组元素循环右移问题201009说反话201010一元多项式

PAT乙级-【题目+解答】汇总(100%原创/100%完成)-爱代码爱编程

感谢点赞收藏~~~ 👉51~95题👉甲级汇总 PAT乙级-1001 害死人不偿命的(3n+1)猜想 (15分)PAT乙级-1002 写出这个数 (20分)PAT乙级-1003 我要通过! (20分)PAT乙级-1004 成绩排名 (20分)PAT乙级-1005 继续(3n+1)猜想 (25分)PAT乙级-1006 换个格式输出整数 (15分)P

【题解】PAT (Basic Level) Practice (中文)-爱代码爱编程

       互联网行业的小白,写博客的目的是为了记录自己的学习过程、对自己学习中所犯的错误做一个总结。由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教! PAT Basic Level Practice【题解】 1001 害死人不偿命的(3n+1)猜想1002 写出这个数1003 我要通过!1004 成绩排名1

PAT 乙级(Basic Level) 题解汇总(持续更新)(C++)-爱代码爱编程

前言 为了准备3月份的CCF CSP认证,以及提升自己的编程能力和数据结构与算法基础,目前我坚持每天刷pat乙级题库,然后记录在CSDN。一则,希望夯实我做过的题和学到的东西;二则,希望对和我一样的小伙伴有些许帮助。特别感谢PAT官方大大的题库和PTA平台的判题。 所有题目均采用C++实现 题目来源 题库链接:PAT Basic Level 单位:

Python刷题记录(31-40)-爱代码爱编程

Python刷题记录(31-40) 题目来源PTA平台 PAT (Basic Level) Practice (中文) @TOC 1031 查验身份证 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5

python找零钱英镑,PTA:Python解答1036 跟奥巴马一起编程/1037 在霍格沃茨找零钱-爱代码爱编程

1036 跟奥巴马一起编程 (15分) 美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧! 输入格式: 输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某

PTA乙级 PAT (Basic Level) Practice C语言(完结)-爱代码爱编程

PTA乙级习题 1001 害死人不偿命的(3n+1)猜想1002 写出这个数1003 我要通过!1004 成绩排名1005 继续(3n+1)猜想1006 换个格式输出整数1007 素数对猜想1008 数组元素循环右移问题1009 说反话1010 一元多项式求导1011 A+B 和 C1012 数字分类1013 数素数1014 福尔摩斯的约会1015

PTA乙级题-爱代码爱编程

1035 插入与归并 (25 分) (这题是我抄的,哭泣) 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。 归并排序进行如下迭代操作:首先将原始序列看成 N 个只包含 1 个元素的有序子序列,然后每次迭代归并两个相邻的

PTA乙级-爱代码爱编程

PTA乙级(寒假刷完计划) 写在前面,刷完PTA上的(PAT (Basic Level) Practice (中文))题目,一共110题目 如果我在刷的时候有磕磕绊绊,会写下题解或者tips tip**:不要美观,要快(大不了最后格式化);读题仔细,验证每一个样例! 有一个遗憾1055 :23/25我觉得我题意理解有很多问题,因

pta乙级题解_fare-well的博客-爱代码爱编程

First of all 如果你是你们学校的ACM选手,那么我猜你追求的至少是这些吧(🐶保命): (1) ACM区域赛拿牌 (2) PTA顶级(Top Level) (3) CCF-CSP认证400分以上 我本人并非A

leetcode刷题记录-爱代码爱编程

1630. 等差子数组 1630. 等差子数组 先直接暴力,过了再说 public List<Boolean> checkArithmeticSubarrays(int[] nums, int[] l, i