水题直接贴代码

#include <bits/stdc++.h>
using namespace std;int main() {int n;cin>>n;printf("%d! 520!",n);return 0;
}


简单if分支语句

#include <bits/stdc++.h>
using namespace std;
int main() {int n,m,k;scanf("%d%d%d",&n,&m,&k);if(n*k==m)printf("zheng hao mei ren %d!",k);else if(n*k<m)printf("hai sheng %d!",m-n*k);else printf("hai cha %d!",n*k-m);return 0;
}


直接贴代码

#include <bits/stdc++.h>
using namespace std;int main() {int a,b,c,d,e;scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);int n;cin>>n;while(n--){int x,y,z;scanf("%d%d%d",&x,&y,&z);if(a!=x)if(y>=b&&y<=c)if(z>=d&&z<=e)printf("%d %d %d\n",x,y,z); }return 0;
}


这里需要注意的是一个精度问题避免除法产生误差
原式子通分得 3xyz=n(xy+zx+y*z) 即可后暴力三层循环

#include <bits/stdc++.h>
using namespace std;
int flag=0;
int main() {int a, b, c, d, e;scanf("%d%d", &a, &b);for (int i = 1; i <= b - 2; i += 2) {for (int j = i + 2; j <= b - 1; j += 2) {for (int k = j + 2; k <= b; k += 2) {if (3 * (i * j * k) == a * (i * j + i * k + k * j)) {printf("%d %d %d\n", i, j, k);return 0;}}}}printf("No solution in (3, %d].\n",b);return 0;
}


用俩个数组分别统计给出字符串中0~9数字的个数
注意考虑去除前导0

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n[15],m[15];
void check(string h)
{int f=0;for(int i=0;i<h.size();i++){int a=h[i]-'0';if(a>0)f=1;if(f>0)n[a]++;}
}
void slove(string h)
{int f=0;for(int i=0;i<h.size();i++){int a=h[i]-'0';if(a>0)f=1;if(f>0)m[a]++;}
}
int main() {string a,b;cin>>a>>b;check(a);check(b);string x,y;while(cin>>x>>y){if(x[0]=='0'&&y[0]=='0'&&x.size()+y.size()==2)break;slove(x);slove(y);int f=0;for(int i=0;i<10;i++){if(n[i]!=m[i])f=1;m[i]=0;}if(f)cout<<"No"<<endl;elsecout<<"Yes"<<endl;}return 0;
}


这题其实没什么好讲的,跟随题意模拟就好

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;int main() {int n;cin>>n;int c=n*1.0/2.718;int f=0;int maxn=0,manx=0,x=0,y=0;for(int i=1;i<=n;i++){int a;cin>>a;if(a>maxn){maxn=a;x=i;}if(i<=c)manx=max(manx,a);else if(f==0&&manx<=a){y=i;manx=a;f=1;}}cout<<y<<" "<<x<<endl;return 0;
}


题意明朗,注意输出不能重复即可也是一个模拟题思路较为直接

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[1005][1005];
int vis[1005][1005];
int main() {int n,m;cin>>n>>m;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>a[i][j];int x,y,t;cin>>x>>y>>t;vector<int>vec;int maxn=abs(a[x][1]-t);vec.push_back(1);for(int i=2;i<=m;i++){if(abs(a[x][i]-t)<maxn){vec.clear();vec.push_back(i);maxn=abs(a[x][i]-t);}else if(abs(a[x][i]-t)==maxn){vec.push_back(i);}}for(int i=0;i<vec.size();i++){printf("(%d,%d)\n",x,vec[i]);}vec.clear();maxn=abs(a[1][y]-t);vec.push_back(1);for(int i=2;i<=n&&i!=x;i++){if(abs(a[i][y]-t)<maxn){vec.clear();vec.push_back(i);maxn=abs(a[i][y]-t);}else if(abs(a[i][y]-t)==maxn){vec.push_back(i);}}for(int i=0;i<vec.size();i++){printf("(%d,%d)\n",vec[i],y);}return 0;
}


压轴题有点考思维但是我们可以从正负分开处理
排序后处理
(1)正的最大值一定是原始序列其中一个的5倍,之后将其2倍数和自身标记起来避免重复,从大到小遍历。
(2)负数的最小值一定是原始序列其中一个的5倍,之后将其2倍数和自身标记起来避免重复,从小到大遍历。
我采用的是双端队列时间复杂度o(N)

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int h[100005];
int vis[1000005];
deque<int>qu;
vector<int>vec;
int main() {int n;cin>>n;for(int i=1;i<=n;i++){cin>>h[i];}sort(h+1,h+n+1);for(int i=1;i<=n;i++){qu.push_back(h[i]);//cout<<h[i]<<" ";}//cout<<endl;int sum=0;while(sum<n/3){int f=qu.front();if(f<0) {qu.pop_front();if (vis[f + 500000] == 0) {// vis[f + 500000]++;vis[f / 5 + 500000]++;vis[f / 5 * 2 + 500000]++;vec.push_back(f / 5);sum++;//cout << f << " f" << endl;} else {vis[f + 500000]--;}}int t=qu.back();if(t>=0){qu.pop_back();if(vis[t+500000]==0){//vis[t+500000]++;vis[t/5+500000]++;vis[t/5*2+500000]++;//cout<<t<<" t"<<endl;vec.push_back(t/5);sum++;}else {vis[t+500000]--;}}}sort(vec.begin(),vec.end());for(int i=vec.size()-1;i>=0;i--){if(i!=vec.size()-1)cout<<" ";cout<<vec[i];}return 0;
}

达成120分

pta520钻石争霸赛题解相关推荐

  1. PTA-520钻石争霸赛题解【c/c++ 完整思路+代码】

    写在前面:因为在家上课水了一学期的网课,最近开始着手复习(预习).所以这次做这个比赛明显感觉到有点生疏了,这东西还是得每天练一点保持一点手感. 1个小时八道题,我写完前六道的时候记得时间只剩24分钟左 ...

  2. 520 钻石争霸赛 题解

    说好的钻石难度,结果本人菜的一地..只有88分.... 文章目录 7-1 考试周 7-2 真的恭喜你 7-3 平均成绩 7-4 古风A+B 难度开始上升 7-5 猜近似数字 7-6 随机输一次 7-7 ...

  3. PTA 520钻石争霸赛题解

    第一题 7-1 考试周 (5分) 考试周快到了,浙江大学的电子屏又调皮了-- 本题请你帮小编写一个自动倒计时的程序,对给定的日期(例如"腊八"就对应 8)和倒计时天数(例如电子屏上 ...

  4. 520 钻石争霸赛 2023

    活动链接 520 钻石争霸赛 2023 520-1 520无尽爱 520-2 心动指数 520-3 不要怕,爱! 520-4 天生一对 520-5 翻倒数 520-6 情侣数 520-7 撒狗粮 52 ...

  5. 520 钻石争霸赛 2021 PTA 1-6题

    520 钻石争霸赛 2021 PTA 7-1 自动编程 (5 分) 7-2 加油冲鸭 (10 分) 7-3 520的表白 (10 分) 7-4 奇葩楼层 (15 分) 7-5 大勾股定理 (15 分) ...

  6. PAT 520 钻石争霸赛 2021 118分题解(满分120)

    序: 为了锻炼自己的编程水平,参加了此次520的编程比赛,因此没有好好准备520礼物(大哭.png),下次520练习赛再也不参加了,还是npy更重要.但不过这次既然参加了,就总结一下吧.这次总分118 ...

  7. 【拼题A】 520 钻石争霸赛 2023 题解

    520-1 520无尽爱 分数 5 作者 陈越 单位 浙江大学 <I Love You 1000 Times>是 The Platters 于 2019 年演唱的歌曲.在 520 这个日子 ...

  8. PTA 520 钻石争霸赛 2021

    有一道题没来得及做,目前的排名是57,不知道后面会被挤到哪里. 文章目录 7-1 自动编程 (5 分) 7-2 加油冲鸭 (10 分) 7-3 520的表白 (10 分) 7-4 奇葩楼层 (15 分 ...

  9. 520 钻石争霸赛 2021

    文章目录 7-1 自动编程 (5 分) 输入格式: 输出格式: 输入样例: 输出样例: Code 7-2 加油冲鸭 (10 分) 输入格式: 输出格式: 输入样例 1: 输出样例 1: 输入样例 2: ...

最新文章

  1. 网络摄像头 登录绕过 RCE漏洞 数据分析报告
  2. Java NIO学习系列六:Java中的IO模型
  3. 创业新力量缔造新未来,岳麓峰会再增“长沙势能”
  4. authpuppy mysql_authpuppy 认证服务器搭建
  5. Java 数值的二进制中1的个数和整数次方
  6. 虚拟机上部署的项目 访问路径怎么写_桌面虚拟化即将流行开来——基于Hyper-V虚拟机的桌面虚拟化部署...
  7. 面向对象相关知识及常用操作(二)
  8. 英文版-Plan9汇编器-A Manual for the Plan 9 assembler
  9. 蓝桥杯(java)个人赛真题:书号验证
  10. 三角(Triangle)
  11. if控制条件——BMI
  12. 黑苹果OC配置工具:OpenCore Configurator for Mac(2.48.0.0中文)
  13. Axway API Management以及移动互联技术实现价值型
  14. 版本管理·玩转git(快速入门git)
  15. 大数据市场年均增长30% “个人信用当钱花”安全吗?
  16. Metrics 使用
  17. 2007年下半年全国计算机技术与软件专业技术资格(水平)考试湖南省报考工作实施细则...
  18. K8S中容器不能解析域名的问题
  19. cp1025 linux驱动下载,HP LaserJet 专业 CP1025 彩色打印机驱动下载
  20. ABBYY FineReader 12破解版中的快捷键怎样设置

热门文章

  1. 【重庆SEO教程】如何诊断一个网站SEO优化的好坏
  2. 如何批量图片重命名不同名字?
  3. 服务器一般装在哪个位置,立尔讯塔式服务器一般使用在哪些地方?
  4. 【华为OD统一考试B卷 | 100分】5键键盘(C++ Java JavaScript Python)
  5. Iviews视频搜索引擎
  6. Idea 提示 “Cannot resolve symbol‘‘ 解决办法
  7. office2021与365你还在纠结吗?快来看看
  8. Android Studio中的button修改不了背景颜色
  9. VMware:速修复这三个严重的 Workspace ONE Assist 软件漏洞
  10. 小程序 点击图片放大预览