201312专题

CCF - 201312-1 - 出现次数最多的数

问题描述 试题编号:201312-1试题名称:出现次数最多的数时间限制:1.0s内存限制:256.0MB问题描述: 问题描述   给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式   输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。   输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1

CSP-CCF 201312-2 ISBN号码

目录 一、题目 二、解答 方法1:char字符数组,但比较复杂的写法 方法2:char字符数组,相对简单的写法 方法3: 三、总结 一、题目 问题描述   每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-8

C++ //CCF-CSP计算机软件能力认证 201312-1 出现次数最多的数

CCF-CSP计算机软件能力认证 201312-1 出现次数最多的数 问题描述               给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式               输入的第一行只有一个正整数 n ( 1 ≤ n ≤ 1000 ) n\ (1 ≤ n ≤ 1000) n (1≤n≤1000),表示数字的个数。

【CSP试题回顾】201312-3-最大的矩形

CSP-201312-3-最大的矩形 解题思路 1. 遍历所有可能的矩形高度: 通过遍历所有矩形高度来找到最大的矩形,即对每个可能的高度 it(从直方图中的最小高度到最大高度 heightMax),代码将尝试找到在这个高度或以上的最长连续条形段。这是通过再次遍历直方图中的所有条形实现的,这次是为了测量每个可能高度下的最长连续段。 2. 计算给定高度下的最大长度: 对于直方图中的每个高度

CCF 201312-3 最大的矩形 题解

问题描述   在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。          请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。        输入格式   第一行包含一个整数n

CCF 201312-2 ISBN号码 题解

问题描述   每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二

CSP认证201312-5 I’m stuck![C++题解]:dfs、两次dfs

文章目录 题目解答题目链接 题目解答 来源:acwing 分析: 条件1:可以从起点走到该点。用st1[][]数组表示能否从起点到达该点。 条件2:不可以从该点走到终点。 对于条件2的处理:从终点反向遍历能到达的点,就是所有可以走到终点的点。打上标记,剩下的是满足条件2的点。用st2[][]数组表示能否从终点反向到达该点。 求满足条件1和2的点的数量。 下面是

CSP认证 201312-4有趣的数[C++题解]:组合数、数学

文章目录 题目解答题目链接 题目解答 来源:acwing 分析: 题目要求:n位数,只能放0,1,2,3;0必须在1前面,2必须在3前面;0不能放在首位。 由于0和1有限制关系,2和3有限制关系,所以把它们分成两组。总共有n位,用组合数学的角度来考虑。具体思考过程如下图所示,n位中0和1这一组占多少位,剩下的位数让2和3来占。 不失一般性,对于A组占k位,B组占n-k

CSP认证201312-3最大的矩形[C++题解]:枚举

文章目录 题目解答题目链接 题目解答 来源:acwing 分析:面积最大,下边界一定是直方图的最下边,上边界一定和某个长条高度重合。这样枚举所有的高度,同时看左右宽度能够到哪儿,这样就可以通过长*宽算出来面积,然后取一个最大的即可。 时间复杂度 O ( n 2 ) O(n^2) O(n2) ac代码 #include<bits/stdc++.h>using na

CSP认证201312-2 ISBN号码[C++题解]:简单题

文章目录 题目解答题目链接 题目解答 来源:acwing 分析:读入时去掉‘-’,方便进行计算余数。后面就是字符串输出。 ac代码 #include<bits/stdc++.h>using namespace std;int main(){string a,b;cin >> a;char last = 'X';for(auto s :a) if(s != '-')

CCF 201312-1 出现次数最多的数 C++语言实现

#include<iostream>#include<map>using namespace std;int main(){// 读入一共有多少个数据 -> nint n;cin>>n;// 使用 map容器 来管理map<int,int> store;int input;for(int k=0;k<n;k++){cin>>input;// map容器 "key值" 表示出现的正整数 /

CCF I’m stuck(满分代码 + 解题思路 + 技巧总结) 201312-5

技巧总结 数组中上下左右的移动可以使用偏移量数组,方便操作当要遍历数组中的点能否到达点T时,可以通过从点T反向遍历,先反向判断后再移动,遍历到的所有点即正向可达 解题思路 题目中需要找满足 (从起点可以到达该点 && 从该点不能到达终点)这两个条件的点的个数 所以可以开设两个数组记录是否分别满足上述两个条件 st1数组记录从起点可以遍历到的所有点 st2数组记录从终点可以反向遍历

CCF-201312-1-出现次数最多的数

出现次数最多的数 问题描述   给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式   输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。   输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。 输出格式   输出这n个次数中出现次数最多的数