D19 C++PAT乙级

计算谱半径

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n;
cin>>n;
double p=0;
while(n--)
{
int a,b;
cin>>a>>b;
double t=sqrt(a*a+b*b); //计算复数模
p=max(p,t); //取最大值
}
printf("%.2lf\n",p); //保留两位小数
return 0;
}
朋友数

#include<bits/stdc++.h>
using namespace std;
set<int> s;
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
string data;
cin>>data;
int num=0;
for(int i=0;i<data.size();i++){
num+=data[i]-'0'; //计算各位数之和
}
s.insert(num); //将num插入集合,即朋友数
}
cout<<s.size()<<endl; //输出朋友数的个数
for(auto p=s.begin();p!=s.end();p++){
if(p!=s.begin()) cout<<" "; //输出朋友数
cout<<*p;
}
}
单身狗

#include <iostream>
#include <vector>
#include <set>
using namespace std;
int main()
{
int n;
cin>>n;
vector<int> couple(100001,-1);
for(int i=0;i<n;i++)
{
int a,b;
cin>>a>>b;
couple[a]=b;
couple[b]=a; //绑定情侣id
}
int m;
cin>>m;
int a[m],list[100001]={0};
set<int>dog;
for(int i=0;i<m;i++)
{
cin>>a[i]; //出席者id
if(couple[a[i]]!=-1) list[couple[a[i]]]=1; //出席且有对象,list登记对象id
}
for(int i=0;i<m;i++)
{
if(!list[a[i]]) dog.insert(a[i]); //没对象的
}
cout<<dog.size()<<endl;
for(auto p=dog.begin();p!=dog.end();p++)
{
if(p==dog.begin()) printf("%05d",*p);
else printf(" %05d",*p);
}
return 0;
}
图像过滤

#include <iostream>
using namespace std;
int main()
{
int m,n,a,b,x,num[501][501];
cin>>m>>n>>a>>b>>x;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
cin>>num[i][j];
if(num[i][j]>=a&&num[i][j]<=b)
{
num[i][j]=x; //范围内的数都替换
}
}
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(j>0) cout<<" ";
printf("%03d",num[i][j]);
}
cout<<endl;
}
return 0;
}
试密码

#include <stdio.h>
#include <string.h>
int main() {
char p[22]={0},str[50]={0};
int n,a=0;
scanf("%s %d%*c",p,&n); //吸收回车
p[strlen(p)] ='\n'; //把正确密码最后的'\0'改为'\n',便于和得到的输入密码比较
while (fgets(str,50,stdin) && strcmp(str,"#\n")!=0)
{
if(strcmp(str,p)!=0)
{
printf("Wrong password: %s",str); //str最后一个字符是'\n',不用再手动换行
if (++a==n)
{
printf("Account locked");
break;
}
}
else
{
printf("Welcome in");
break;
}
}
return 0;
}
微博转发抽奖

#include<iostream>
#include<cstdio>
#include<string.h>
#include<string>
using namespace std;
string asd[10001]; //判断是否已经中奖
bool al(char id[]){
for(int i=0;i<10001;i++)
{
if(id==asd[i]) return true;
}
return false;
}
int main(){
int a,b,c; //总量,中奖间隔,第一位中奖者的序号
cin>>a>>b>>c;
int flag=0; //判断是不是已经有中奖的
for(int i=1;i<=a;i++)
{
char id[21];
scanf("%s",&id);
if(i==c)
{
if(al(id)==false)
{
cout<<id<<endl;
asd[i]=id;
flag=1;
c=c+b;
}
else
{
c++;
}
}
}
if(flag==0) cout<<"Keep going...";
}
结绳

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin>>n;
double a[10000];
for(int i=0;i<n;i++)
{
cin>>a[i]; //各段绳长
}
sort(a,a+n); //排序
for(int i=1;i<n;i++)
{
double b=a[i-1]/2; //前一根绳子折后
double c=a[i]/2; //后一根绳子折后
a[i]=(b+c); //串连后
}
cout<<(int)a[n-1];
return 0;
}
相关推荐
PAT乙级1022 D进制的A+B
PAT乙级1022源代码 codeblocks 输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。
PAT乙级 1052 卖个萌
题目: 输入样例: [╮][╭][o][~\][/~] [] [╯][╰][^][-][=][>][<][@][⊙] [Д][▽][_][ε][^] ... 4 1 1 2 2 2 6 8 1 5 5 3 3 4 3 3 2 10 3 9 3 输出样例: ╮(╯▽╰)╭ <(@Д=)/~ o(^ε^)o Are you kidding me? @\/@ Python 先用正则匹配到各部位表情,然后尝试输出完整表情,出现异常就是数组下标越界了,此时输出Are you kidding me? @\/@ import re pat = re.compile(r'\[(.+?)\]') h
PAT (Basic Level) 1015 德才论
题意 给定考生考号、德分和才分,分成四类。每类里面再进行排序。 思路 模拟即可。注意排序条件。 代码 #include using namespace std; struct stu { int id, d, c; stu() {} stu(int _id, int _d, int _c) : id(_id), d(_d), c(_c) {} }; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n, l, h; cin >> n >> l >> h; vec
pat顶级和leetcode-PAT-Leetcode:PAT-Leetcode
拍拍和leetcode 介绍 该存储库存储算法实践的代码,如 PAT / leetcode 或其他平台。 拍 PAT(Programming algorithm test)是浙江大学创建的一个测试。 它包含三个级别:基本/高级/顶级。 这个存储库主要包括高级级别。 通常,我会在代码头中记录我在每个算法问题中消耗的日期和时间。 它有助于提高我的效率。
PAT真题解析
PAT考试的题解,是几位ACM大神精心编写的,我感觉很不错,和大家分享下~


