题链接:A. A Prank

题意:给定一个长度为n的递增序列数组,你可以进行删除任意连续序列的操作,要求删除之后还可以还原该数组,输出最大删除数。

例如:n = 6

数组 = {1,3,4,5,6,9}

可以删除数字4,5,此时可以还原

数据范围:  n <= 100                    1 <= a[i] <= 1000

自我理解:此题很坑,细节也很多,如果只用纯模拟的话,必须考虑很多种情况。有结果为0的情况,结果为连续数组个数 - 2,

结果为连续数组个数 - 1的情况

题解:如果三个三个为一组判断是否连续,就可避免很多种判断。

数组从1位置开始到位置。a[0] = 0,    a[n+1] = 1000,   循环从0到n+1。

纯模拟

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>using namespace std;int a[110];int n;int main()
{scanf("%d", &n);for(int i = 0; i < n; i++) scanf("%d", &a[i]);int l = 0, r;int t = 0;int res = 0;int ans = 0;for(int i = 1; i <= n; i++){if(a[i] - a[i-1] == 1){ans++;} else{res = ans + 1;int temp;r = i - 1;l = r - res + 1;if(res <= 1||(res == 2&&a[n-1] < 1000&&a[0] > 1)) temp = 0;else if((l == 0&&r == n-1&&a[r] == n)||(l == 0&&r == n-1&&a[r] == 1000)||(l == 0&&r < n-1&&l != r&&a[r] == res)||(l > 0&&r == n-1&&a[r] == 1000)) temp = res - 1;else temp = res - 2;t = max(t, temp);ans = 0;}}printf("%d\n", t);return 0;
}

思维,技巧(三个三个判断模拟)

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>using namespace std;int a[110];int n;int main()
{scanf("%d", &n);for(int i = 1; i <= n; i++) scanf("%d", &a[i]);a[n+1] = 1001;int c = 0;int ans = 0;for(int i = 1; i <= n+1; i++){if(a[i+1] - a[i-1] == 2){c++;//printf("******* %d\n", c);} else{ans = max(ans, c);c = 0;} }printf("%d\n", ans);return 0;
}

A. A Prank相关推荐

  1. Learning to Rank中Pointwise关于PRank算法源码实现

    [学习排序] Learning to Rank中Pointwise关于PRank算法源码实现 标签: 学习排序PRankPointwiseLearning to Rank代码实现 2015-01-28 ...

  2. 【学习排序】 Learning to Rank中Pointwise关于PRank算法源码实现

    最近终于忙完了Learning to Rank的作业,同时也学到了很多东西.我准备写几篇相关的文章简单讲述自己对它的理解和认识.第一篇准备讲述的就是Learning to Rank中Pointwise ...

  3. Neko and Aki's Prank

    https://codeforces.com/contest/1152/problem/D 题解:DP+规律 /* *@Author: STZG *@Language: C++ */ #include ...

  4. CodeForces#520 div2 1062A - A Prank

    题目大意: 一个递增的数组,每个数字$a_{i}\in\left [ 1,10^3 \right ]$,问最多可以擦掉几个数字,仍可以让数组恢复成原来的样子. 分析: 比较容易想到,如果一个数字满足$ ...

  5. CodeForces 1152D Neko and Aki's Prank

    说明 Catalan(i) 表示卡特兰数的第 i 项. 题目链接:http://codeforces.com/problemset/problem/1152/C 题目大意 有 n 个左括号和 n 个右 ...

  6. python 密度聚类 使用_使用wgd进行全基因组复制分析

    因为全基因组复制(Whole genome duplications, WGD)是生物进化的重要因素之一, 所以WGD分析也是基因组分析经常用到的一种分析方法.举个例子,我们之所以能在多条染色体之间发 ...

  7. NBT:人类肠道培养细菌的1520个基因组

    人类肠道培养细菌培养组的参考基因组集 人类肠道培养细菌的1520个基因组扩展微生物组功能分析 1,520 reference genomes from cultivated human gut bac ...

  8. [USACO12MAR]拖拉机

    题目描述 After a long day of work, Farmer John completely forgot that he left his tractor in the middle ...

  9. Codeforces Round #520 (Div. 2)

    A.prank 题意:给出一个含有n个数的递增的序列,问最多能删除多少个连续的数字,使得这个数列还是只可能有这一种形式. 分析:那就找出一段最长的差为1的序列就行. 1 #include <cs ...

最新文章

  1. C++继承中构造函数、析构函数调用顺序及虚析构函数
  2. Nanopi NEO Air串口代码
  3. 【大学课程】计算机网络知识点
  4. Windows Form -----内容(2)
  5. System Test GIS压力测试利器
  6. 【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)(转载)
  7. timer控件的使用
  8. java treeset比较,java中TreeSet的两种排序比较的方式
  9. mysql中try的意思_java中try是什么意思
  10. 图表框架HelloCharts(3)饼状图
  11. 图像处理(1)----入门教程
  12. flex 只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源
  13. 小白白红队初成长(5)win权限维持
  14. 步进电机正反转实验_电机正反转控制电路图原理图解
  15. 三星堆的青铜机器人_身穿“燕尾服”的青铜大立人是谁?探秘三星堆,从这些自带神秘光环的宝藏开始...
  16. 自组织神经网络介绍:自组织特征映射SOM(Self-organizing feature Map),第一部分
  17. 2019美国数学建模大赛A+D题翻译
  18. 战舰世界换服务器改什么文件,战舰世界国服更新账号继承并合区,直营服已更新092...
  19. 资源:在10天内建立区块链知识框架
  20. C/C++银行账户管理系统

热门文章

  1. 阿里云时空数据库引擎HBase Ganos上线,场景、功能、优势全解析
  2. 【文文殿下】快速傅里叶变换(FFT)学习笔记
  3. windows系统命令行下常用命令收集
  4. Android存储数据到本地文件
  5. Xiotech任命新CEO EMC又少一员大将
  6. Python LDA主题模型实战
  7. 数据结构C语言实现课后第1-2章答案
  8. float占几个字节_一个HashMap对象占多少字节?
  9. mybatis执行查询的所有分析和创建代理对象的分析
  10. Python 技术篇-sha256()加密的使用方法,sha1、md5加密方法