由于这题对于学过数据结构的我来说,真的是很简单,为了减少时间上的损失,链表无疑是最好的选择(因为数组要往后移位子)。然后,因为最近想玩些STL的骚操作,所以就用<list>了,然后顺便学了下迭代器的用法,其原理其实和指针差不多,就是比指针安全。然后,在a题的过程中发现指针的+—还是有些问题的,所以,就用数值代替了。闲话不多说,奉上ac代码:

#include <iostream>
#include<math.h>
#include <iomanip>
#include<cstdio>
#include<string>
#include<map>
#include<vector>
#include<list>
#include<algorithm>
#include<stdlib.h>
#include<iterator>
using namespace std;int main()
{int n,m;while(cin>>n>>m){if(n==0&&m==0){break;}list<int>num;list<int>::iterator p;list<int>::iterator q;list<int>::iterator r,beg,e_d;int ck;for(int i=0;i<n;i++){cin>>ck;num.push_back(ck);}q=num.begin();for(p=num.begin();p!=num.end();p++){if(*p>=m){q=p;break;}}num.insert(q,m);// beg=num.begin();// e_d=num.end()--;int daxiao=num.size();r=num.begin();for(int i=0;i<daxiao;r++){if(i<daxiao-1){cout<<*r<<" ";}else{cout<<*r;}i++;}cout<<endl;}return 0;
}

然后,再奉上用数组写的代码:

#include <iostream>using namespace std;int main()
{int n,m,*input_str,flag=-1;while(cin>>n>>m){//n=0,m=0结束输入if(n==0&&m==0)break;//为输入的数据分配空间,因为最后要插入一个数,所以分配大小为n+1input_str=new int[n+1];for(int i=0; i<n; i++){cin>>input_str[i];//flag记住第一次比m大的位置,最后是要把m放在flag这个位置if(input_str[i]>=m&&flag==-1){flag=i;}}for(int j=n; j>flag; j--){//将flag后面的元素都后移1位input_str[j]=input_str[j-1];}//将m放入flag位置input_str[flag]=m;//格式输出for(int k=0; k<n+1; k++){if(k==n)cout<<input_str[k]<<endl;elsecout<<input_str[k]<<" ";}//重新初始化flag,方便下次使用flag=-1;delete input_str;}return 0;
}

转载于:https://www.cnblogs.com/William-xh/p/6827798.html

杭电2019 数列有序!(STL解法)相关推荐

  1. 杭电acm2019数列有序!

    数列有序! http://acm.hdu.edu.cn/showproblem.php?pid=2019 Time Limit: 2000/1000 MS (Java/Others)    Memor ...

  2. C++描述杭电OJ 2019. 数列有序 ||

    C++描述杭电OJ 2019. 数列有序 || Problem Description 有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新 ...

  3. hdu 2019 数列有序!(c语言)

    hdu 2019 数列有序! 点击做题网站链接 题目描述 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...

  4. HDU 2019 Multi-University Training Contest 1 杭电2019多校联合训练赛 第一场 1001 Blank (6578)

    HDU 2019 Multi-University Training Contest 1 杭电2019暑期多校集训第一场 1001 Blank (6578) Problem Description T ...

  5. 杭电oj 1002 C语言解法

    杭电oj这道题的解法是要通过字符数组储存数字在进行运算的,同时涉及到数值进位的问题,以下是代提供码参考. #include<stdio.h> #include<string.h> ...

  6. 杭电acm2151题java的解法,杭电ACM题型分类

    杭电ACM题型分类 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.1032.1037.1040.1048.1 ...

  7. 杭电1716排列2 stl

    排列2 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  8. 杭电2019多校第三场 HDU-6608 Fansblog

    题目:Fansblog 题意大致描述:给定一个质数P(1e9≤P≤1e14),找到比P小的最大的质数Q,并求出Q!%P 需要了解的知识 威尔逊定理 在初等数论中,威尔逊定理给出了判定一个自然数是否为素 ...

  9. 杭电2019多校第三场 HDU-6608 Fansblog(威尔逊定理+素数间隔+逆元)

    威尔逊定理:在初等数论中,威尔逊定理给出了判定一个自然数是否为素数的充分必要条件.即:当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p ),但是由于阶乘是呈爆炸增长的,其结论对于实际操 ...

最新文章

  1. Carrier frequency 和 EARFCN的关系
  2. Event and Delegate
  3. nginx通过lua从日志中获得请求响应体
  4. 带有Prometheus的Spring Boot和测微表第6部分:保护指标
  5. 基于Docker的Redis集群简单搭建
  6. hibernate 第二天
  7. 牛客练习赛52 C 烹饪(容斥+扩展欧几里得)
  8. 高斯滤波opencv-python
  9. android 6.0截屏的实现,android截屏实现
  10. Python中Scapy使用方法,模块中的常用函数,简单的端口扫描编写
  11. echarts实现左右滑动
  12. spark(scala) shell 里面输入多行代码
  13. K8S高可用集群架构部署 dashborad插件部署 Nginx实现动静分离 K8S在线升级
  14. 攻防世界--看雪看雪看雪
  15. 转发和重定向的区别和使用
  16. Siki_Unity_4-4_丛林战争_Socket/TCP网络游戏开发
  17. 桥接模式和中继模式的区别
  18. matlab中dde23求解时滞微分方程
  19. 鸿蒙系统软件数量,华为5G必要专利数量全球领先 鸿蒙系统逐步应用
  20. 项目管理到底在管什么?第一次带项目,就因为这搞黄了

热门文章

  1. PyTorch | torch.zeros()如何使用?torch.zeros使用方法 | torch.zeros()例子
  2. 图形学大神纯FPGA实现Doom游戏芯片,无CPU、无操作码、无指令计数器
  3. 实现API接口调用--来源阿里云大学-归档
  4. 5中sender方法介绍_【成长】开学第一次自我介绍如何作?5步方法留下好印象受益5年...
  5. idea 编译 maven 项目
  6. java setcolumnwidth_Java XSSFSheet.setColumnWidth方法代码示例
  7. 设计一个可以变换的c语言图案,关于图形和变换专题的数学试题
  8. 软考网络管理员学习笔记4之第四章局域网技术
  9. python脚本打包成linux命令_Python脚本文件打包成可执行文件的方法
  10. 静态资源详解和帮助文档的使用