• 2023年算法组寒假打卡
...

D19 C++PAT乙级

算法组-庄思彤 2024-02-08 20:37:35

img

计算谱半径

img

  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. int main()
  5. {
  6. int n;
  7. cin>>n;
  8. double p=0;
  9. while(n--)
  10. {
  11. int a,b;
  12. cin>>a>>b;
  13. double t=sqrt(a*a+b*b); //计算复数模
  14. p=max(p,t); //取最大值
  15. }
  16. printf("%.2lf\n",p); //保留两位小数
  17. return 0;
  18. }

朋友数

img

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. set<int> s;
  4. int main(){
  5. int n;
  6. cin>>n;
  7. for(int i=0;i<n;i++){
  8. string data;
  9. cin>>data;
  10. int num=0;
  11. for(int i=0;i<data.size();i++){
  12. num+=data[i]-'0'; //计算各位数之和
  13. }
  14. s.insert(num); //将num插入集合,即朋友数
  15. }
  16. cout<<s.size()<<endl; //输出朋友数的个数
  17. for(auto p=s.begin();p!=s.end();p++){
  18. if(p!=s.begin()) cout<<" "; //输出朋友数
  19. cout<<*p;
  20. }
  21. }

单身狗

img

  1. #include <iostream>
  2. #include <vector>
  3. #include <set>
  4. using namespace std;
  5. int main()
  6. {
  7. int n;
  8. cin>>n;
  9. vector<int> couple(100001,-1);
  10. for(int i=0;i<n;i++)
  11. {
  12. int a,b;
  13. cin>>a>>b;
  14. couple[a]=b;
  15. couple[b]=a; //绑定情侣id
  16. }
  17. int m;
  18. cin>>m;
  19. int a[m],list[100001]={0};
  20. set<int>dog;
  21. for(int i=0;i<m;i++)
  22. {
  23. cin>>a[i]; //出席者id
  24. if(couple[a[i]]!=-1) list[couple[a[i]]]=1; //出席且有对象,list登记对象id
  25. }
  26. for(int i=0;i<m;i++)
  27. {
  28. if(!list[a[i]]) dog.insert(a[i]); //没对象的
  29. }
  30. cout<<dog.size()<<endl;
  31. for(auto p=dog.begin();p!=dog.end();p++)
  32. {
  33. if(p==dog.begin()) printf("%05d",*p);
  34. else printf(" %05d",*p);
  35. }
  36. return 0;
  37. }

图像过滤

img

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int m,n,a,b,x,num[501][501];
  6. cin>>m>>n>>a>>b>>x;
  7. for(int i=0;i<m;i++)
  8. {
  9. for(int j=0;j<n;j++)
  10. {
  11. cin>>num[i][j];
  12. if(num[i][j]>=a&&num[i][j]<=b)
  13. {
  14. num[i][j]=x; //范围内的数都替换
  15. }
  16. }
  17. }
  18. for(int i=0;i<m;i++)
  19. {
  20. for(int j=0;j<n;j++)
  21. {
  22. if(j>0) cout<<" ";
  23. printf("%03d",num[i][j]);
  24. }
  25. cout<<endl;
  26. }
  27. return 0;
  28. }

试密码

img

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main() {
  4. char p[22]={0},str[50]={0};
  5. int n,a=0;
  6. scanf("%s %d%*c",p,&n); //吸收回车
  7. p[strlen(p)] ='\n'; //把正确密码最后的'\0'改为'\n',便于和得到的输入密码比较
  8. while (fgets(str,50,stdin) && strcmp(str,"#\n")!=0)
  9. {
  10. if(strcmp(str,p)!=0)
  11. {
  12. printf("Wrong password: %s",str); //str最后一个字符是'\n',不用再手动换行
  13. if (++a==n)
  14. {
  15. printf("Account locked");
  16. break;
  17. }
  18. }
  19. else
  20. {
  21. printf("Welcome in");
  22. break;
  23. }
  24. }
  25. return 0;
  26. }

微博转发抽奖

img

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<string.h>
  4. #include<string>
  5. using namespace std;
  6. string asd[10001]; //判断是否已经中奖
  7. bool al(char id[]){
  8. for(int i=0;i<10001;i++)
  9. {
  10. if(id==asd[i]) return true;
  11. }
  12. return false;
  13. }
  14. int main(){
  15. int a,b,c; //总量,中奖间隔,第一位中奖者的序号
  16. cin>>a>>b>>c;
  17. int flag=0; //判断是不是已经有中奖的
  18. for(int i=1;i<=a;i++)
  19. {
  20. char id[21];
  21. scanf("%s",&id);
  22. if(i==c)
  23. {
  24. if(al(id)==false)
  25. {
  26. cout<<id<<endl;
  27. asd[i]=id;
  28. flag=1;
  29. c=c+b;
  30. }
  31. else
  32. {
  33. c++;
  34. }
  35. }
  36. }
  37. if(flag==0) cout<<"Keep going...";
  38. }

结绳

img

  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4. int main()
  5. {
  6. int n;
  7. cin>>n;
  8. double a[10000];
  9. for(int i=0;i<n;i++)
  10. {
  11. cin>>a[i]; //各段绳长
  12. }
  13. sort(a,a+n); //排序
  14. for(int i=1;i<n;i++)
  15. {
  16. double b=a[i-1]/2; //前一根绳子折后
  17. double c=a[i]/2; //后一根绳子折后
  18. a[i]=(b+c); //串连后
  19. }
  20. cout<<(int)a[n-1];
  21. return 0;
  22. }
...全文
给本帖投票
181 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

325

社区成员

发帖
与我相关
我的任务
社区描述
一个供Leaders学习交流的地方
c++javapython 技术论坛(原bbs) 广东省·深圳市
社区管理员
  • 叫我胡萝北
  • CheungZzzc
  • szu_gexu
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部