总结:用时2小时出头,写了 8道简单题,学到了一些处理方法;比如使用map,long long;

回文串,简单模拟题

#include<iostream>
#pragma warning(disable:4996)
using namespace std;int main() {string ss;cin >> ss;int i;for (i = 0; i < ss.size()/2; i++) {//不需要等于if (ss[i] != ss[ss.size() - 1 - i]) {break;}}if (i < ss.size() / 2) {cout << "NO\n";}else {cout << "YES\n";}return 0;
}

题目详情 - 1009 说反话 (pintia.cn)

思路:输入数组中,再逆序输出即可;值得注意的是输入时用到EOF;

#include<iostream>
#include<vector>
#pragma warning(disable:4996)
using namespace std;int main() {vector<string>v;string s;while (cin>>s&&!cin.eof()) {v.push_back(s);}for (vector<string>::iterator i = v.end() - 1; i != v.begin(); i--) {cout << *i << ' ';}cout << *v.begin();return 0;
}

题目详情 - 1011 A+B 和 C (pintia.cn)

idea:才知道long就是long int,都是32位,所以这题可能溢出,选择long long即64位整数,不会溢出;

#include<iostream>
using namespace std;int main() {int n;long long a, b, c;int index = 1;cin >> n;while (n--) {cin >> a >> b >> c;cout << "Case #" << index << ": ";if (a + b > c) {cout << "true\n";}else {cout << "false\n";}++index;}return 0;
}

题目详情 - 1016 部分A+B (pintia.cn)

没啥说的,好简单

#include<iostream>
using namespace std;int main() {int a, da, b, db;cin >> a >> da >> b >> db;int sum = 0,sum2=0;while (a) {if (a % 10 == da) {sum = 10 * sum + da;}a /= 10;}while (b) {if (b % 10 == db) {sum2 = 10 * sum2 + db;}b /= 10;}cout << sum + sum2;return 0;
}

题目详情 - 1026 程序运行时间 (pintia.cn)

#include<iostream>
using namespace std;
#define CLK_TCK 100
int main() {int c1, c2;cin >> c1 >> c2;int time = 1.0*(c2 - c1)/CLK_TCK+0.5;//四舍五入int m = time / 60 % 60;int s = time % 60;int h = time / 60 / 60;printf("%02d:%02d:%02d",h,m,s);//2位return 0;
}

题目详情 - 1046 划拳 (pintia.cn)

#include<iostream>
#include<vector>
#pragma warning(disable:4996)
using namespace std;int main() {int n;int x, x1, y, y1;cin >> n;int ctn1 = 0, ctn2 = 0;for (int i = 0; i < n; i++) {cin >> x >> x1 >> y >> y1;if (x + y == x1&&x+y!=y1) {++ctn2;}if (x + y != x1 && x + y == y1) {++ctn1;}}cout << ctn1 <<' '<< ctn2;return 0;
}

题目详情 - 1008 数组元素循环右移问题 (pintia.cn)

思路:这题值得一提,之前写过很多次,最近记录的是用三次翻转搞定,省事;一看书上答案,是我上个学期学的直接打印出来,抓住系统漏洞,太搞了;

#include<iostream>
#include<vector>
using namespace std;void reverse(int arr[], int k) {for (int i = 0; i < k/2; i++) {int temp = arr[i];arr[i] = arr[k - i-1];arr[k - i-1] = temp;}
}
int main() {int n, k;cin >> n >> k;k%=n;//注意k>n的情况int arr[101];for (int i = 0; i < n; i++) {cin >> arr[i];}//3 reversereverse(arr, n);reverse(arr, k);reverse(arr + k, n - k);//printfor (int i = 0; i < n; i++) {if (i != 0) {cout << ' ';}cout << arr[i];}return 0;
}

偷鸡:

题目详情 - 1012 数字分类 (pintia.cn)

思路:用2个数组储存,一个答案,一个是否出现此情况,方便后面的打印;用switch也使代码简单易读;

#include<iostream>
#include<vector>
using namespace std;int main() {int n,m,flag=1;cin >> n;int arr[5] = { 0 };int ctn[5] = { 0 };double A4 = 0;for (int i = 0; i < n; i++) {cin >> m;switch (m%5){case 0:if (m % 2 == 0) {arr[0] += m;ctn[0]++;}break;case 1:arr[1] += flag * m;flag = -flag;ctn[1]++;break;case 2:++arr[2];ctn[2]++;break;case 3:A4 += m;++arr[3];ctn[3]++;break;case 4:ctn[4]++;if (arr[4] < m) {arr[4] = m;}break;default:break;}}for (int i = 0; i < 5; i++) {if (i != 0) {cout << ' ';}if (ctn[i] == 0) {cout << 'N';}else if(i==3) {printf("%.1f", A4 / arr[i]);}else {cout << arr[i];}}return 0;
}

题目详情 - 1018 锤子剪刀布 (pintia.cn)

这题值得一写,主要是字符和数字的互相转换这一块

#include<iostream>
#include<map>
using namespace std;int main() {map<char, int>mp;//字符转成数字,按字母序排列mp['B'] = 0;//0>1,1>2,2>0---win: (c1+1)%3==c2 , same: c1=c2, lose: elsemp['C'] = 1;mp['J'] = 2;char trans[3] = { 'B','C','J' };//数字转成字符int n;cin >> n;char c1,c2;int arr[3] = { 0 }, arr2[3] = { 0 };//胜负平次数int ch[3] = { 0 }, ch2[3] = { 0 };//bcj次数while (n--) {cin >> c1 >> c2;int x = mp[c1], y = mp[c2];if ((x + 1) % 3 == y) {++ch[x];//获胜手势次数加1++arr[0];//胜利加1++arr2[2];//另外的人失败加1}else if (x == y) {++arr[1];++arr2[1];}else {++ch2[y];++arr[2];++arr2[0];}}cout << arr[0] << ' ' << arr[1] << ' ' << arr[2] << endl;cout << arr2[0] << ' ' << arr2[1] << ' ' << arr2[2] << endl;int max1 = 0, max2 = 0;for (int i = 0; i < 3; i++) {if (ch[i] > ch[max1]) {max1 = i;}if (ch2[i] > ch2[max2]) {max2 = i;}}cout << trans[max1] << ' ' << trans[max2];return 0;
}

pta数据结构day12相关推荐

  1. PTA数据结构与算法题目集6-4 6-3 6-8

    PTA数据结构与算法题目集(中文) 6-4 链式表的按序号查找 ElementType FindKth( List L, int K ){int index = 0;while(L){++index; ...

  2. PTA数据结构与算法题目集 6-9 二叉树的遍历

    PTA数据结构与算法题目集(中文) 6-9 二叉树的遍历 void InorderTraversal( BinTree BT ){if(BT==NULL)return;if(BT->Left){ ...

  3. PTA数据结构期末练习 - 单选题、判断题

    PTA选择.判断题答案搜索 PTA排序易错题 输入若干英文单词,对这些单词按长度从小到大排序后输出.如果长度相同,按照输入的顺序不变 https://www.it610.com/article/129 ...

  4. MOOC浙大数据结构课后题记录——PTA数据结构题目集(全)

    目录 第一周--最大子列和算法.二分查找 01-复杂度1 最大子列和问题 (20分) 01-复杂度2 Maximum Subsequence Sum (25分) 01-复杂度3 二分查找 (20分) ...

  5. 2021-10-27 PTA 数据结构 链表 两个有序链表序列的合并

    题目:两个有序链表序列的合并 (本题来自PTA) 以下是AC代码(代码来源于老师所给的题解) #include<stdio.h> #include<stdlib.h> #inc ...

  6. 7-10 公路村村通 (最小生成树Prim算法) | PTA数据结构与算法——C语言实现

    公路村村通 非常直白的最小生成树问题. 原题链接:PTA | 程序设计类实验辅助教学平台 题目描述 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通 ...

  7. pta数据结构-线性表(判断题和选择题)

    数据结构 判断题 选择题 ##这是博主小白做过的一些pta题,分 判断题和 选择题 判断题 1-1 对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N). 答案: ...

  8. PTA 数据结构与算法题目集(中文) 7-10 公路村村通 (30分) 最小生成树(kruskal算法)

    我的GIS/CS学习笔记:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes <一个浙江大学本科生的计算机.地理信息科学知识库 > 还有不少 ...

  9. 7-16 Sort with Swap(0, i) | PTA数据结构与算法——C语言实现

    2013年浙江大学免试研究生上机考试真题. 原题链接:PTA | 程序设计类实验辅助教学平台 题目描述 给定包含数字 {0, 1, 2,..., N−1} 的任一排列,很容易对它们进行升序排序. 但是 ...

最新文章

  1. 边缘计算Edage Computing
  2. SAP RETAIL 我的第一个寄售类型的跨公司采购订单
  3. 【引用】Android程序实现完全退出
  4. 【arduino】继续arduino玩CyberPi童芯派之官方arduino库
  5. Activity 与ListActivity的区别
  6. NYU Hand Pose Dataset
  7. Struts2的action中处理JSONP方式提交的中文乱码问题:
  8. WebLogic启动失败:java.lang.AssertionError: Could not obtain the localhost address.
  9. python设置文件编码_python批量修改文件编码格式的方法
  10. 微软测试新工具:让Windows 10和Android设备文件同步更方便
  11. 【收藏干货】axios配置大全
  12. L2-002 链表去重 (25 分)—团体程序设计天梯赛
  13. php实现标签打印,标签打印软件怎么实现批量套打标签?
  14. 使用tinyxml2将gps经纬度转换为kml和gpx格式文件
  15. 计算机无法启动print,本地计算机无法启动print spooler服务,错误1069怎么处理
  16. java压缩图片大小_java压缩图片、等比例压缩图片
  17. 6种继承的优点和缺点
  18. 文件服务器不能打印,服务器不能用作打印服务器 - Windows Server | Microsoft Docs
  19. Datawhale学习 - 天池大赛比赛全流程体验
  20. 机器学习-无监督学习-聚类:聚类方法(一)--- k-Means(k-均值)算法,k-Means++算法【使用最大期望值算法(EM算法)来求解】

热门文章

  1. 使用第三方APPKey授权 跳转登录 QQ
  2. openwrt学习:make menuconfig的一些笔记
  3. 365.水壶问题笔记
  4. 还原SQL数据库,执行 Transact-SQL 语句或批处理时发生了异常
  5. 咖说 | TON 项目宣告终止!但社区还将继续进行开发和发币
  6. NetNut住宅代理,超500万个IP可选!
  7. font-size 单位
  8. Python的线程12 简易限流器
  9. python re re.compile search groupdict 正则多取值
  10. 微信公众平台认证步骤详解及服务号和订阅号区别---之微信开发一