CCF真题及答案.pdf_第1页
CCF真题及答案.pdf_第2页
CCF真题及答案.pdf_第3页
CCF真题及答案.pdf_第4页
CCF真题及答案.pdf_第5页
已阅读5页,还剩33页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CCF 历年真题历年真题(C+实现实现) 目录目录 CCF 历年真题(C+实现) . 1 2015 年 9 月 . 2 数列分段 . 2 日期计算 . 3 模板生成工具 . 4 2015 年 3 月 . 8 图像旋转 . 8 数字排序 . 10 节日 . 11 2014 年 12 月 . 14 门禁系统 . 14 Z 字形扫描 15 2014 年 9 月 . 18 相邻数对 . 18 画图 . 19 字符串匹配 . 22 2014 年 3 月 . 24 相反数 . 24 窗口 . 26 命令行选项 . 28 2013 年 12 月 . 32 出现次数最多的数 . 32 ISBN 号码 34 最大的矩形 . 35 2015 年年 9 月月 数列分段数列分段 试题编号: 201509-1 试题名称: 数列分段 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述问题描述 给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数 列中共有多少段? 输入格式输入格式 输入的第一行包含一个整数 n,表示数列中整数的个数。 第二行包含 n 个整数 a1, a2, , an,表示给定的数列,相邻的整数之 间用一个空格分隔。 输出格式输出格式 输出一个整数,表示给定的数列有多个段。 样例输入样例输入 8 8 8 8 0 12 12 8 0 样例输出样例输出 5 样例说明样例说明 8 8 8 是第一段,0 是第二段,12 12 是第三段,倒数第二个整数 8 是 第四段,最后一个 0 是第五段。 评测用例规模与约定评测用例规模与约定 1 n 1000,0 ai 1000。 答案参考(仅代表个人观点) # include using namespace std; int main() int a1000,b,c=0,d; cinb; for(int i=0;iai; d=a0; c=1; for(int i=0;iyear; cinday; if(year%4=0) for(int i=0;ilineNumvarNum; cin.ignore(); for(int i=0;imn; typedef vector valVec; vector arr(m,vector(n,0); for(int i=0;ivalue; arrij=value; for(int i=n-1;i=0;i-) for(int j=0;jn; int arr1000 = 0; map countMap; for(int i=0;ivalue; arri=value; +countMapvalue; vector valueVector(countMap.begin(),countMap.end(); sort(valueVector.begin(),valueVector.end(),CmpByValue(); for (int i = 0; i != valueVector.size(); +i) coutabcy1y2; int MonthDays13=0,31,28,31,30,31,30,31,31,30,31,30,31; for(int i=y1;iMonthDaysa) coutn; for(int i=0;irecordi; +analMaprecordi; recordi=analMaprecordi; for(int i=0;in; typedef vector typeVec; vector arr(n,vector(n,0); for(int i=0;ivalue; arrij=value; for(int i=1;in; for(int i=0;ivalue; valueVec.push_back(value); sort(valueVec.begin(),valueVec.end(); for(int i=0;in; int * values= new int*n; for(int i=0;ivaluesij; for(int a=valuesi0+1;an; typedef vector typeVec; vector values(n,vector(4,0); for(int i=0;ivaluesij; for(int a=valuesi0+1;asearchflaglineNum; for(int i=0;iline; valVec.push_back(line); for(int i=0;in; for(int i=0;ivalue; if(value0) pluMap.insert(valType(value,1); else miuMap.insert(valType(value,1); map:iterator iter=pluMap.begin(); map:iterator minIter=miuMap.begin(); int size = pluMap.size()-miuMap.size(); if(size0) while(minIter!=miuMap.end() int s = minIter-first; if(pluMap.count(s - 1) count+; +minIter; else while(iter!=pluMap.end() int s = iter-first; if(miuMap.count(s +1) count+; +iter; coutNM; for(int i=0;ipos; line.push_back(pos); area.push_back(line); for(int i=0;iclikij; for(int i=0;i=0;q-) if(cliki0=areaq1) coutlineNum; cin.ignore(); for(int i=0;i1) for(int j=1;jn; for(int i=0;inum; countnum+; if(countnummax) max = countnum; maxNum=num; else if(countnum=max) if(numn; for(int i=0;ivalue; val.push_back(value); for(int i=0;in;i+) int rN=0,lN=0,area=0; for(int j=i;jn;j+) if(vali=0;j-) if(vali=valj) lN+; else break; area = vali*(rN+lN-1); maxMap.insert(valType(i,area); vector maxVec(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论