模拟、排序(归并排序)算法

模拟、排序算法

  • 一、模拟
    • 例题
      • 1、错误票据
        • 题目信息
        • 思路
        • 题解
      • 2、回文日期
        • 题目信息
        • 思路
          • 方法一:暴力做法
          • 方法二:优化解法
        • 题解
          • 方法一:暴力求解
          • 方法二:优化解法
  • 二、排序
    • 例题
      • 1、归并排序
        • 题目信息
        • 思路
        • 题解

一、模拟

例题

1、错误票据

题目信息

在这里插入图片描述

思路

先对数组进行排序,然后遍历数组,如果出现两个一样的,就是重号,如果连续的两个数之间相差大于1就是断号

题解
#include <bits/stdc++.h>
#define int long long 
#define endl '\n'
#define maxsize 10010
using namespace std;int n;
int a[maxsize];signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;int m=0;string line;stringstream ss;getline(cin,line);   //因为getline可以读入换行,消除前面一个输入的换行for(int i=0;i<n;i++){getline(cin,line);ss<<line;while(ss>>a[m]) m++;ss.clear();}sort(a,a+m);int res1,res2;for(int i=1;i<m;i++){if(a[i]==a[i-1]) res1=a[i];if(a[i]-a[i-1]>1) res2=a[i]-1;}cout<<res2<<" "<<res1<<endl;return 0;
}

stingstream的用法可以参考以下文章:
stringstream用法总结

2、回文日期

题目信息

在这里插入图片描述

思路
方法一:暴力做法

枚举date1到date2的所有数字:
(1)判断是否是回文数
(2)判断这个回文数是否符合日期

方法二:优化解法

(1)枚举回文数
只要枚举前4个,后4个将前4个颠倒即可形成一个回文数
所以枚举的范围为1000~9999
(2)判断数字是否在范围中
判断形成的回文数是否在刚刚输入的两个日期中
(3)判断是否符合日期

题解
方法一:暴力求解
#include <bits/stdc++.h>
#define int long long 
#define endl '\n'
using namespace std;signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);string date1,date2;cin>>date1>>date2;stringstream ss1,ss2;int d1,d2;ss1<<date1;ss2<<date2;ss1>>d1;ss2>>d2;int count=0;for(int i=d1;i<=d2;i++){int tmp=i;int res=0;while(tmp>0){res=res*10+tmp%10;tmp /=10;}if(i==res){int date=i%100;int month =(i%10000)/100;int year=i/10000;if((year%4==0&&year%100!=0)||year%400==0){if(month==2){if(date>=1&&date<=29) count++;}}else{if(month==2){if(date>=1&&date<=28) count++;}}if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){if(date>=1&&date<=31) count++;}else if(month==4||month==6||month==9||month==11){if(date>=1&&date<=30) count++;}}}cout<<count<<endl;return 0;
}
方法二:优化解法
#include <bits/stdc++.h>
#define int long long 
#define endl '\n'
using namespace std;//优化解法
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);string date1,date2;stringstream ss1,ss2;int d1,d2;cin>>date1>>date2;ss1<<date1;ss2<<date2;ss1>>d1;ss2>>d2;int count=0;for(int i=1000;i<=9999;i++){int tmp=i;int res=i;while(tmp>0){res=res*10+tmp%10;tmp /=10;}if(res>=d1&&res<=d2){int date=res%100;int month =(res%10000)/100;int year=res/10000;if((year%4==0&&year%100!=0)||year%400==0){if(month==2){if(date>=1&&date<=29) count++;}}else{if(month==2){if(date>=1&&date<=28) count++;}}if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){if(date>=1&&date<=31) count++;}else if(month==4||month==6||month==9||month==11){if(date>=1&&date<=30) count++;}}}cout<<count<<endl;return 0;
}

二、排序

例题

1、归并排序

题目信息
思路
题解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/493466.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot222学生网上选课系统的设计与实现

学生网上选课系统的设计与实现 摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统学生选课信息管理难度大&…

MDC500-16-ASEMI工业电机专用MDC500-16

编辑&#xff1a;ll MDC500-16-ASEMI工业电机专用MDC500-16 型号&#xff1a;MDC500-16 品牌&#xff1a;ASEMI 正向电流&#xff08;Id&#xff09;&#xff1a;500A 反向耐压&#xff08;VRRM&#xff09;&#xff1a;1600V 正向浪涌电流&#xff1a;600A 正向电压&a…

MATLAB Function转C代码实战

文章目录 前言1. 准备工作2. 使用MATLAB Coder2.1 确定输入输出的类型2.2 MATLAB Coder过程 3. 代码调整和优化4. 编译和测试5. 性能分析和优化结语 前言 在科学与工程领域&#xff0c;MATLAB&#xff08;Matrix Laboratory&#xff09;是一种广泛使用的高级技术计算软件&…

【C之·预处理器】

系列文章目录 文章目录 前言一、预处理指令1. #line的用法1.1 概述 2. #error2.1 概述 二、示例1. #line2. #error 总结 前言 C 预处理器不是编译器的组成部分&#xff0c;但是它是编译过程中一个单独的步骤。简言之&#xff0c;C 预处理器只不过是一个文本替换工具而已&#x…

从0到1入门C++编程——08 函数模板和类模板

文章目录 函数模板1.函数模板基本语法2.函数模板使用的注意事项3.函数模板案例——数组排序4.普通函数和函数模板的区别5.普通函数和函数模板的调用规则6.模板的局限性 类模板1.类模板2.类模板和函数模板的区别3.类模板中成员函数创建时机4.类模板对象做函数参数5.类模板与继承…

飞机订票系统

飞机订票系统 获取源码——》公主号&#xff1a;计算机专业毕设大全

Sora背后团队大揭秘!天才00后?

现在世界上最受关注的技术团队是哪一支&#xff1f; Sora 团队&#xff0c;已经来到聚光灯中心。 不仅项目负责人评论区被挤爆&#xff0c;成了&#x1d54f;最火“景点” 。 当 OpenAI 出手发布 Sora 之后&#xff0c;给人一种降维打击的感觉 —— 效果和之前的技术相比高出…

「哈哥赠书活动 - 48期」-『商业分析思维与实践:用数据分析解决商业问题宣传文案』

⭐️ 赠书 - 《商业分析思维与实践》 ⭐️ 内容简介 本书以业务为导向&#xff0c;详细地讲解了如何通过大数据分析来解决商业问题。其目的在于运用大数据分析思维&#xff0c;帮助读者把学术知识应用于真实的业务场景&#xff0c;解决实际的业务问题。本书基于业务问题&#x…

应急响应实战笔记03权限维持篇(3)

0x00 前言 攻击者在获取服务器权限后&#xff0c;会通过一些技巧来隐藏自己的踪迹和后门文件&#xff0c;本文介绍Linux下的几种隐藏技术。 0x01 隐藏文件 Linux 下创建一个隐藏文件&#xff1a;touch .test.txt touch 命令可以创建一个文件&#xff0c;文件名前面加一个 点…

MYSQL--(1.存储引擎 *2.事务*)

一 存储引擎: 1.介绍 1>在数据库管理系统当中通过使用数据引擎来实现数据的增删改,查询 2>不同的存储引擎提供的有不同的存储机制,索引技巧等功能 MYSQL的核心,就是存储引擎 3>同样的,用户也可以根据自己的需要进行选择,更改自己需要…

学习 LangChain 的 Passing data through

学习 LangChain 的 Passing data through 1. Passing data through2. 示例 1. Passing data through RunnablePassthrough 允许不改变或添加额外的键来传递输入。这通常与 RunnableParallel 结合使用&#xff0c;将数据分配给映射中的新键。 RunnablePassthrough() 单独调用&…

【GAD】DOMINANT个人解读/学习

SDM2019&#xff0c;这是一篇图异常检测领域的经典方法. 问题定义 在本文中&#xff0c;我们使用手写体来表示集合&#xff08;例如&#xff0c; V \mathcal{V} V&#xff09;&#xff0c;粗体小写字母&#xff08;例如&#xff0c; x \mathbf{x} x&#xff09;来表示向量&…