NOIP注意事项
信息学竞赛NOIP考试10大建议(编程竞赛考试经验)
信息学竞赛NOIP考试10大建议——编程竞赛考试经验对参加NOIP全国青少年信息学奥赛的考生,我们整理和收集了10个建议给家长和学生参考。
目录:1先思考→2考虑全面→3要灵活→4认真读题→5特殊数据→6思路清晰→7勿着急→8查错误→9要骗分→10成败观→灵感补充一、先思考一定要想好了算法,思路清晰了再编。
分析问题时遇到一些即兴问起的情况,马上要深入下去,看已有的算法思路是否有问题。
经验证明,这种即兴提起的问题往往是决定算法正误的关键问题。
这是一种本能的质疑,本能的差错,一定不要想:我一会再来看这个问题。
一定要立即想清楚,看算法怎么样处理才能解决这样一个问题。
确认算法没有什么错误了再编。
如果思路没清晰,算法不对,编到一半时才发现错了,这种情况没有考虑到,浪费了很多时间,或者编完了都还不知道算法是错的,最后由于样例特殊,过了样例,以为对了,但实际上只得10分,或者根本不得分。
二、考虑全面对于简单的题,一定要考虑全面,不是编好了程序再来考虑全面,而是想算法的时候就要考虑全面。
不要知道个大概就开始写,后来发现一些特殊数据要作特殊处理,又把程序改过去改过来,改得面目全非,最后老是改不对,不但影响心情,而且还是错的。
三、要灵活看题要灵活,不要绊死在一道题,不要怕。
NOIP的题不想就做出来,怎么可能,肯定是需要想的。
但是最好先写好写的题,不一定是前两道题。
其实很多时候你是有能力做起的,只是你一看就怕了,也没有去认真想,随便敷衍想了一点特殊情况的算法,认为可以骗到分。
但经验证明最后基本是没有分,即使有,最多不过10。
时间是3个小时,要积极一点,经验证明,很多题想到一定时候便想出来了,并且很简单。
四、认真读题一定要认真读题,读的时候积极思考,看看这某句话到底是个什么意思,要会转换。
特别是对于有时间的问题,到底把时间看成一个点,还是一个区间,具体题目具体分析,一定要符合题意。
题没读懂就开始做,100%是错的。
题错,思路也就错,时间浪费了,数据还是1个都不过。
noip不会做咋办,快用骗分导论,高效得分
noip不会做咋办,快用骗分导论,高效得分【1】遇到难题时心态要稳定,先搞定简单的题目,最后思考难题。
心态是第一位。
【2】如果难题实在不能解决也不能放弃,虽然写不出完美的算法,但可以用象贪心,搜索之类的算法,虽然不能AC 但一般能过几个,有分总比没分好。
举个例子例如下图中,存在3 个磁场,白点表示机器人的位置,黑点表示矿石的穿越磁场(cross)探险机器人在Samuel 星球上寻找一块奇特的矿石,然而此时它陷入了一片神秘的磁场区域,动弹不得。
探险空间站立刻扫描了这片区域,绘制出该区域的磁场分布平面图。
这片区域中分布了N 个磁场,每个磁场呈正方形,且边与坐标轴平行。
位置:科学家们分析平面图,进一步发现:这些磁场为大小不一的正方形,可能相交,甚至覆盖,但是它们的边缘不会重合,顶点也不会重合。
例如下面的两种情形是不会出现的:科学家们给探险机器人启动了磁力罩,这样它就可以在磁场中自由穿越了。
初始时,探险机器人和所有矿石都不在任何磁场的边缘。
由于技术限制,XYO3在穿越过程中机器人只能够水平或垂直移动,且不能够沿着磁场的边缘行动。
由于磁力罩的能量有限,科学家们希望探险机器人穿越尽量少的磁场边缘采集到这块矿石。
例如上图中,探险机器人最少需要穿越两次磁场边缘。
现在小联请你编写程序,帮助科学家们设计探险机器人的路线,统计探险机器人最少需要穿越多少次磁场边缘。
输入(CROSS.IN):第一行有一个整数N,表示有N 个磁场(1 < N < 100)。
随后有N 行,每行有三个整数X、Y、C(0 < X ,Y ,C < 10000),表示一个磁场左下角坐标为(X,Y),边长为C。
接下来有一行,共有四个整数SX, SY, TX,TY,表示机器人初始坐标为(SX, SY),矿石坐标为(TX,TY)(其中,0 < S X,SY, TX, TY < 10000)。
输出(CROSS.OUT):单行输出一个整数,表示机器人最少需要穿越多少次磁场边缘。
信息学奥赛(NOIP)常见问题汇总
信息学奥赛(NOIP)常见问题汇总
这里大家汇总了信息学奥赛(NOIP)常见问题,欢迎大家点击查看!
1、普及组的题目难度分配是怎样的?
第一题是相对简单的题,但是一般会有操作起来较麻烦,考虑情况很多,数据类型很大这样的特点来考你。
第二题是模拟,需要你抽象化问题,把问题的人工解决方法模拟出来,建立一个合适的数学模型,再用代码动手实验它。
模拟的题一般比较麻烦,出错多很正常,甚至3个小时你不一定能解决一道模拟。
第三题是一个跳板,一般是考不难的DP、图论、搜索,需要有足够的算法知识和做题经验。
第四题相对比较难吧,会考一些像“单源最短路”、“SPFA”这样的比较“高级”的算法,所用到的数据结构也会比较“高级”,对于技巧、经验和心理都是一个考验。
(对于各位新生来说,如果有难度,时间紧张,不妨放弃3、4两道题,第一题和第二题AC了也能有200分。
)
2、拿到试卷后该做些什么?
不要着急下手做题,先浏览一下试题,对题目的难易有个把握,哪些题目自己能做出来心里要有数。
先做相对简单的题,做题之前先在纸上写写画画,优化可不可行什么的都要试一下。
然后,看看哪些题目可以简单的骗分(比如没有答案就输出-1这样的),先把骗分程序写一个拷贝到对应文件夹下,等到考试最后你忙着做题就没时间写骗分程序了。
再有,有时候你看到一个题后脑子里蹦出另外一个相似的题。
这个时候切记生拉硬套把那道题的算法搬过来。
因为那样的话会把你引导入一个误区,很多人进入误区就出不来了,最后导致写出的代码总是WA,那时候再改就来不及了。
NOIP考前知识大总结
NOIP考前知识大总结第一篇:NOIP考前知识大总结数据类型TypeByteShortintSmallintWordIntegerCardinalLongintLongwordInt64QWordRealSingleDoubleCompExtended算法思想:1.搜索2.归纳3.分治4.贪心实现技巧: NOIP考前知识大总结作者:于俊超ID:MiniDragonXG2006年11月RangeSize in bytes0..2551-128..1271-32768..3276720..655352either smallint, longint or int64size 2,4 or 8either word, longword or qwordsize 2,4 or 8-2147483648..2***..42949672954-***5808..***580780..***70955161582.9E-39..1.7E3861.5E-45..3.4E3845.0E-324..1.7E3088-9.2E18..9.2E1883.4E-4932..1.1E493210(Search)枚举(穷举)/ 遍历 / 剪枝 / 产生式系统(估价函数)查找(字典):折半查找(二分法)/ 树形查找(二叉排序树)/ Hash(To 数学方法)>递推式> DP(ex: 4 Hanoi Tower Problem)(Divided and Conquer)(Greedy)5.模拟循环递推(顺推/倒推)> 博弈 / 动态规划递归(栈/DFS)滚动数组幂:x ^ y = exp(y*ln(x))x ^(1/n)= exp(1/n*ln(x))math单元里的Power数学方法:1.数论:质数 / 因数 / 约数个数(种数)/ 最大公约数 / 最小公倍数/ 回文数....2.进制转换注意负进制3.高精度运算(int64...)4.排列组合: 全排列5.经典递推关系:Fibonacci:fib(n)=fib(n-1)+fib(n-2)fib(1)=1fib(2)=1通项:设g5=sqrt(5)则fib(n)=(1/g5)*(((1+g5)/2)^n-((1-g5)/2)^n)f(n)=a1*f(n-1)+a2*f(n-2)+....+ak*f(n-k)(ai<>0 & n>k)叫k阶常系数线性齐次递推关系可以利用矩阵性质和快速幂在O(logn)内求解错位排列:F(1)=0F(2)=1Fn=(x-1)*(Fn-1 +Fn-2)Catalan数:Catalan(n)=C(n,2*n)/(n+1)第二类Stirling数 s(n,k)= { s(n-1,k-1)+k*s(n-1,k)}(n>k>=1)6.高斯消元数据结构(Data Structure):1.物理结构:I: 数组>二维平面/字符串(Ansistring)及其操作II: 指针>链表(单链表 / 双向链表 / 环状链表)抽象数据类型(Abstract Data Type)2.初级ADT:I: 集合II: 线性结构A: 栈(stack)(LIFO)operation: push/popa: 后缀表达式b: 进出站序列问题(Catalan 枚举 > 归纳)c: 栈优化最长不下降(上升)序列B: 队列(queue)>循环队列(FIFO)operation: push/popa: 广度优先搜索b: 求和广义线性表C: 字典 DictionaryIII: 非线性结构A: 树Tree(二叉树Binary Tree)树的遍历:前序/中序/后序(递归)最优二叉树(哈夫曼树Huffman tree)(贪心)树形DPB: 图Grapha: 图的遍历:Depth first Search(DFS / 回溯 / 递归)Breadth first Search(BFS / 队列 / FloodFill 种子染色法) b: 最小生成树:(贪心)Prim: 边集密Kruskal: 边集疏(排序 + 并查集)c: 最短路径Dijkstra(单源 O(n^2)BFS)Floyed(所有点间 O(n^3))Bellman-Ford(负权环)d: 拓扑序列e: 关键路径(AOV网)f: 无向图传递闭包有向图强连通分量SCC(Strong Connected Component)g: 路与回路欧拉路(Euler Route)所有边哈密尔顿路(Hamilton Route)所有点h: 割顶和桥去除之后图变得不连通的顶点和边3.高级ADT:I: 集合型A: 并查集(disjoint-set)operation: Find/Union/InsertII: 字典型哈希表(Hash)哈希函数opertaion: Find/InsertIII: 树型A: 二叉堆(Heap)>Treapoperation: Insert/Delete(Pop)/GetMax/GetMinB: Binary Search Tree(BST)C:平衡二叉树......排序算法:复杂度思路 InsertChooseExchange O(n^2)直接插入排序直接选择排序冒泡排序(Inserting Sort)(Choosing Sort)(Bubble Sort)O(nlogn)希尔排序堆排序快速排序(Shell Sort)(Heap Sort)(Quick Sort)O(n)计数排序桶排序基数排序(Counting Sort)(Bucket Sort)(Radix Sort)归并(Merge Sort)Quick Sort: 分治Merge Sort: 分治Bucket Sort: 哈希表Heap Sort: 堆还有二叉排序树..........动态规划(Dynamic programming)=记忆化搜索+用Table记录免去重复计算(解决满足具有最优子结构且无后效性)1.状态转移方程+边界条件2.合适的实现方法(To 实现技巧)3.要掌握最经典的动规题目a: 最长不下降(上升)序列b: 最大子段和&最大M子段和c: 最长公共子序列(LCS)d: 石子合并(链,环)e: 背包问题01背包-可重复(DP)01背包-不可重复(DP)部分背包(贪心)博弈问题:1.关键字:必胜态 / 必败态2.递推找规律3.归纳计算几何三角形面积s=|x1y2+x2y3+x3y1-x3y2-x2y1-x1y3|二维仿射变换反射 / 镜像 / 旋转计算二维凸包……这东西我直接听不懂……网络流 & 匹配(二分图)& 线段树 & 树状数组 & NP完全……∵九成不考∴略……Copyright ©2006 By MiniDragonXG.All rights reserved.第二篇:教师职业道德考前知识总结教师职业道德考前知识总结教师职业道德——教师在从事教育工作时所应该遵循的行为规范和必备品德的总和,是调节教师和他人、和社会关系时必须遵守的基本道德规范和行为准则,以及在此基础上所表现出来的道德观念、道德品质、道德情操。
noip信息学奥赛规则及要求
noip信息学奥赛规则及要求嗨,朋友们!今天咱们来聊聊NOIP(全国信息学奥林匹克竞赛)的规则和要求,想必这对那些对编程感兴趣的小伙伴们来说,绝对是个重头戏。
别担心,我会尽量把这些枯燥的规则变得生动有趣,让大家更容易理解。
准备好了吗?那咱们就开始吧!1. NOIP竞赛简介1.1 竞赛概况NOIP,全名叫“全国信息学奥林匹克竞赛”,是一个面向中学生的编程比赛。
它的目的是通过这个比赛来发现和培养信息学方面的优秀人才。
如果你对计算机编程充满热情,NOIP就是你展示才华的绝佳平台!1.2 竞赛分级NOIP比赛分为两个级别:初赛和决赛。
初赛一般是在各地的赛区进行,决赛则是全国范围的总决赛。
通过初赛的同学,可以晋级到决赛,争夺更高的荣誉。
2. 竞赛规则2.1 竞赛时间比赛时间通常为一天,上午和下午各有一个环节。
上午的环节主要是理论考试,主要考察大家对算法和数据结构的理解;下午则是编程实践,测试大家的编程能力。
比赛时间安排紧凑,所以大家一定要合理安排时间,不要慌张。
2.2 题目类型NOIP的题目分为两种:算法题和编程题。
算法题主要考察你对各种算法的掌握程度,比如排序、查找等;编程题则是让你在给定的时间内,解决一些实际编程问题。
两者相辅相成,一定要全面准备,才能在比赛中取得好成绩。
3. 参赛要求3.1 参赛资格NOIP的参赛者一般是中学生,具体的年级要求可能会根据年份有所不同。
不过,通常来说,初中和高中生都是可以参赛的。
参赛之前,建议大家先了解一下自己的赛区的具体规定。
3.2 准备工作为了能在NOIP中表现出色,平时的准备可是少不了的。
大家可以通过做往年真题、参加编程培训班等方式来提升自己的能力。
此外,平时也要多动脑筋,学会将理论知识运用到实际编程中。
4. 评判标准4.1 分数计算NOIP的评分方式主要是根据你解决问题的正确性和效率来评分的。
解决一个问题的分数不仅取决于你提交的答案是否正确,还会考虑到你算法的效率,比如时间复杂度和空间复杂度。
2013NOIP浙江省复赛考生须知及上机环境
NOIP2013复赛考生须知一、比赛不提供纸质试题,只提供电子版试题文件。
该文件压缩包保存在计算机桌面上。
监考人公布密码后,选手自行解密试题。
二、今年我省复赛选手上机可选择使用使用windows或linux操作系统。
中国计算机学会将使用NOI linux下的Arbiter评测系统进行评测。
三、比赛时选手注意事项:1、除经允许的、必须的竞赛用品外,选手不得将书包、手机、U盘、图书等带入考场,一经发现,取消本次竞赛资格或竞赛成绩为零分。
2、选手须将身份证和准考证正面向外放在考桌上参赛标签旁。
选手应仔细核对考桌上参赛标签信息是否正确,如有错误须立刻上报监考人员,否则视为默认同意,赛后不得更改。
如选手和准考证上标明的选手不一致,视为替考,替考者和被替考者竞赛成绩均为零分,并受三年之内不得参赛处罚。
3、开始15分钟后不得进人考场,以旷考处理;竞赛结束30分钟前,选手不得退出考场(上厕所除外)。
4、竞赛期间利用各种方式向其他选手传递信息等违规行为,该选手将被立刻取消参赛资格,并从次年算起被禁赛3年。
5、选手听到监考人员竞赛结束的指令后,须停止答卷,待监考人员检查无误后离开考场。
如竞赛结束的指令下达后继续答题,该选手成绩以零分记。
6、选手如发现监考人员及相关人员在竞赛过程中有违纪行为或有影响公平竞赛的行为,可向CCF署名投诉。
7、监考人公布密码后,选手自行解密试题,并在已有的目录下(已由竞赛组织方事先建立,目录名为选手的参赛编号),由选手为每道试题再单独建立一个子目录。
四、目录结构、文件名规则比赛开始前,选手应仔细核对考桌上参赛标签信息是否正确。
竞赛组织方事先已在E盘根目录下(E:\)建立以选手参赛编号命名的文件夹,选手应检查该文件夹名称是否正确(包括编号及大小写字母),如有错误须立即上报监考人员,由监考人员进行更改。
确认无误后,选手须为每道试题再单独建立一个子文件夹,子文件夹名与对应的试题英文名相同(参见试题封面页)。
NOIP标准评测系统及相关问题
主要内容▪NOIP复评及常见问题▪NOI评测系统标准插件说明▪标准评测系统(Arbiter)概述▪Arbiter的使用方法▪Arbiter的常识问答NOIP复评及常见问题▪平台差异问题▪文件名大小写问题▪输出格式问题▪超时问题▪内存超限问题▪整型变量类型问题▪数学库问题▪STL问题▪上报成绩平台差异问题▪操作系统差异-大小写问题Linux大小写敏感,Windows大小不敏感▪编译器差异-不同编译器的行为不一致(变量初始化,数组下表越界) -不同版本编译器的行为不一致(gcc, fpc)-每年竞赛开始前3-5个月NOI网站上公布具体版本▪评测系统差异-超时检查的差异-内存限制检查的差异平台差异问题▪Windows平台只是为了各省方便开展活动,但不作为评测和申诉的依据▪评测结果只以NOILinux下Arbiter评测结果为准文件名大小写问题▪答案文件名需要全部小写▪输入文件名需要小写,并且不能拼写错误▪输出文件名不能拼写错误输出格式问题每行结束后应有换行符-文件结束应有换行符超时问题▪时间限制是在《竞赛规则》中规定配置的机器上测试得出▪规定时限远超过正确程序运行时间的2-5倍▪评测机性能一般情况下优于竞赛用机内存限制问题▪选手程序占用内存上限,以MB为单位(虚拟内存)▪静态申请内存空间和动态申请内存空间整型变量类型问题以往评测中不允许使用64位整型-64位整型在编译器中声明存在差异-Windows下一般为int64,而在Linux下一般为long long数学库问题▪缺省支持libc和libm中的常用函数-strlen,strcpy,strcmp,memcpy,strchr等-sqrt,sin,cos等▪对于其他库的支持以竞赛题面要求为准STL问题以往评测中不支持STL-STL中包含有复杂数据结构-Pascal中不存在类似STL的库-竞赛使用语言的公平性上报成绩▪选手名单,包含选手编号和姓名,csv格式▪成绩单,包含各题目分数和总分数,csv格式▪选手目录,players/目录下的所有内容▪选手评测结果目录,result/目录下的所有内容NOI评测系统标准插件说明▪字符串比较插件▪整数比较插件▪浮点数比较插件字符串比较标准插件将答案内容按文本格式读入进行比较▪单行比较-过滤空格-不过滤空格▪多行比较-过滤空格-不过滤空格▪全文比较单行字符串比较—不过滤空格考生答案文件(1)This is a test.\n This is a test.标准答案文件▪除第一行外其他内容被忽略▪行内空格不被忽略▪行尾换行符被忽略考生答案文件(2)This is a test.The second line.单行字符串比较—过滤空格Thisisatest.考生答案文件(3)This is a test.标准答案文件▪除第一行外其他内容被忽略▪行尾换行符被忽略▪行内和行尾空格被忽略This is a test .考生答案文件(4)多行字符串比较This is a test.Second line.标准答案文件▪以标准答案的行数为准进行比较▪超过标准答案行数的内容被忽略▪忽略空格情况与单行字符串比较相同考生答案文件(5)This is a test.Second line.Third line.全文比较▪逐字节比较标准答案和考生答案▪最严格▪考生答案的多余数据不被忽略▪行末换行符不忽略整数比较标准插件将答案内容按整数格式读入进行比较根据答案行数和每行整数个数:▪单行单整数▪单行多整数▪多行单整数▪多行多整数单行单整数比较插件只比较第一行的第一个数字其他内容被忽略1024标准答案文件1024Second line.1024 2048考生答案文件(2)2048 1024考生答案文件(3)单行多整数比较插件▪比较第一行多个整数▪整数个数以标准答案为准▪其他内容被忽略1024 2048标准答案文件1024 2048 4096考生答案文件(4)多行单整数比较插件▪以标准答案的行数为准,每行只比较一个数字▪其他内容被忽略10242048标准答案文件1024 123420484096考生答案文件(5)多行多整数比较插件▪比较的行数和每行整数个数以标准答案为准▪其他内容被忽略1024 2048 3072 4096标准答案文件1024 2048 1234 3072 4096 4321 2345考生答案文件(6)浮点比较插件将答案内容按浮点数格式读入进行比较比较方式:▪单行单数▪单行多数▪多行单数▪多行多数浮点比较插件精确位数-精确到小数点后几位(1-5)-例如精确到小数点后3位,则只比较到小数点后3位3.1415标准答案文件3.1414考生答案文件(1)3.141考生答案文件(2)NOIP标准评测系统(Arbiter)概述▪Arbiter的历史▪Arbiter的使用情况▪Arbiter的系统特征Arbiter的历史▪NOIP标准评测系统(Arbiter)是NOIP信息学联赛指定的唯一标准评测工具▪Arbiter目前的版本是1.02,具备良好的可靠性和稳定性Arbiter的使用情况▪在NOIP2006和NOIP2007中部分省份评测和全国复评中使用,验证了正确性和效率等关键性能▪NOIP2006中有7个省试用,NOIP2007中有20个省试用,NOIP2008中有23个省试用评测结果与全国复评结果几乎没有差异,而使用非标准评测系统的省份成绩存在明显差异的选手数量较多Arbiter的系统特征▪支持当前主流的Linux 发行版本-RedHat,Fedora Core,Ubuntu…-推荐使用NOILinux 1.0.2▪支持多种语言(C/C++/Pascal)▪配置灵活,功能多样化▪时间控制的精确性(误差不大于5ms)▪有效的内存使用限制Arbiter的使用方法▪基本安装和运行▪工作原理▪竞赛配置▪考试评测▪成绩统计▪评测插件编写基本安装和运行▪从下载最新的评测系统安装文件,保存至当前用户home文件夹,并双击打开▪安装完成后,会在桌面上创建一个快捷方式,双击即可启动评测系统▪可打开附带的示例考试(example)测试系统是否工作正常工作原理标准输入数据problem.in 标准答案文件problem.ans 选手程序problem 选手答案文件problem.out评测插件problem_e选手成绩选手源程序problem.c/.cpp/.pas竞赛配置▪一次比赛可以配置多场考试▪一场考试可以配置多道试题▪每道试题都提供了多个配置点,为比赛的组织提供了很大的灵活性竞赛配置▪试题配置▪选手名单▪评测数据▪选手文件▪注意事项试题配置(1)▪试题名称-题目及相关数据的唯一命名-决定了选手程序、评测数据的命名规则-使用英文,4-10个字符▪提交方式-源代码-答案文件试题配置(2)▪测试点数目/分值-测试点数目,及每个测试点的权值,总权值可以设置▪数据输入方式-文件输入(建议使用)-标准输入试题配置(3)▪时间限制-选手程序运行时间上限,以秒为单位-为了防止在时限上出现的临界行为,给予选手1.5倍运行时间限制,超时将被强行终止。
NOIP复赛注意事项
NOIP复赛注意事项1、做好准备。
核对座位、机号等,阅读决赛须知或竞赛说明,按要求建好目录(文件夹)。
试用Pascal系统是否能正常使用(包括TP或BP和FP)。
听清监考老师的说明或讲解、要求等。
2、读懂题目。
拿到试题,不要急于上机编程,先彻底看明白题目的意思,已知什么条件,要求什么结果,必须很清楚,然后在草稿纸上设计一下方法或算法,再上机编程,效果就会很好,效率就会很高。
3、注意文件名。
包括保存文件名,输入、输出数据文件名、扩展名等要与要求完全一致。
4、注意使用文件结束函数eof(data);data为数据文件名。
5、注意数据类型。
数据范围即变量类型的设计,要对变量可能的值进行估算,确定哪些用整形(integer)、长整形(Longint)、实型(real)、扩展型(extended)等,在free Pascal中还可以用加长整形(int64)。
6、注意语句配对。
注意Begin与End的配对使用,还有If- then- else等,for do等。
7、注意测试数据。
(1)分段测试,(2)测试样例,(3)测试特例 (4)测试输入/输出文件 (5)自己设计几个数据试试,(6)注意边界及特殊的数据(条件)试试。
特别要注意输入/输出文件名(包括扩展名)要与题目要求完全一致。
8、及时保存文件,注意设定当前路径,注意文件名,盘符及路径名。
9、注意输入/输出格式与题目要求一致,输出文件中不能有多余的空行,等,也不能有等待命令readln等,以及多余的输出到屏幕的。
10、充分利用电脑中的“计算器”进行验算结果(例如数值转换、阶乘、乘方、高精度运算等)。
11、学会使用“帮助”查看命令、函数及其中的样例。
12、学会“投机得分”对难题,若不会做,又有时间,不妨针对样例和一些特例测试数据得分。
13、注意局部变量和全局变量,在子程序中慎用全局变量(除非必须)。
14、合理分配时间,按照先易后难的原则做题。
15、用有把握的方法。
NOI及NOIP需要知道的与自己的心得
一、(搜索)双向广度搜索广度搜索虽然可以得到最优解,但是其空间消耗增长太快。
但如果从正反两个方向进行广度搜索,理想情况下可以减少二分之一的搜索量,从而提高搜索速度。
范例:有N个黑白棋子排成一派,中间任意两个位置有两个连续的空格。
每次空格可以与序列中的某两个棋子交换位置,且两子的次序不变。
要求出入长度为length的一个初始状态和一个目标状态,求出最少的转化步数。
问题分析:该题要求求出最少的转化步数,但如果直接使用广度搜索,很容易产生数据溢出。
但如果从初始状态和目标状态两个方向同时进行扩展,如果两棵解答树在某个节点第一次发生重合,则该节点所连接的两条路径所拼成的路径就是最优解。
对广度搜索算法的改进:1。
添加一张节点表,作为反向扩展表。
2。
在while循环体中在正向扩展代码后加入反向扩展代码,其扩展过程不能与正向过程共享一个for循环。
3。
在正向扩展出一个节点后,需在反向表中查找是否有重合节点。
反向扩展时与之相同。
对双向广度搜索算法的改进:略微修改一下控制结构,每次while循环时只扩展正反两个方向中节点数目较少的一个,可以使两边的发展速度保持一定的平衡,从而减少总扩展节点的个数,加快搜索速度。
二、(搜索)分支定界分支定界实际上是A*算法的一种雏形,其对于每个扩展出来的节点给出一个预期值,如果这个预期值不如当前已经搜索出来的结果好的话,则将这个节点(包括其子节点)从解答树中删去,从而达到加快搜索速度的目的。
范例:在一个商店中购物,设第I种商品的价格为Ci。
但商店提供一种折扣,即给出一组商品的组合,如果一次性购买了这一组商品,则可以享受较优惠的价格。
现在给出一张购买清单和商店所提供的折扣清单,要求利用这些折扣,使所付款最少。
问题分析:显然,折扣使用的顺序与最终结果无关,所以可以先将所有的折扣按折扣率从大到小排序,然后采用回溯法的控制结构,对每个折扣从其最大可能使用次数向零递减搜索,设A为以打完折扣后优惠的价格,C为当前未打折扣的商品零售价之和,则其预期值为A+a*C,其中a为下一个折扣的折扣率。
noip阅读程序技巧
noip阅读程序技巧NOIP(全国青少年信息学奥林匹克竞赛)是中国青少年信息学领域的重要竞赛之一,对于参赛选手来说,阅读程序是解题的关键技巧之一。
本文将为大家介绍几种提高阅读程序的技巧。
一、审题仔细阅读程序前,首先要仔细审题,弄清题目的要求和限制条件。
阅读程序时,要特别注意题目中的关键词和需要解决的问题,以便在阅读程序时能够有针对性地寻找关键信息。
二、了解程序结构阅读程序时,要先了解程序的结构和主要功能。
可以从程序的注释、变量名和函数名入手,通过阅读代码的结构和关键函数的实现,分析程序的逻辑和运行过程。
这样有助于理解程序的整体思路和解题思路。
三、注重细节阅读程序时,要注意细节。
程序中的每一行代码都有其作用和意义,不能忽略任何一行代码。
要详细阅读每一行代码的含义和功能,并理解其在整个程序中的作用。
特别要注意程序中的循环和条件语句的判断条件,以及变量的赋值和使用过程。
四、调试程序阅读程序时,可以通过调试程序来加深理解。
可以在程序中插入输出语句,观察程序的执行过程和结果,以此来验证自己对程序的理解是否正确。
通过调试程序,可以更深入地了解程序的运行机制和细节。
五、查阅资料阅读程序时,有时会遇到一些不熟悉的函数或语法,此时可以查阅相关资料来了解其具体用法和功能。
可以查阅语言的官方文档、教材、参考书籍等,以便更好地理解和掌握程序。
六、多练习阅读程序是一种技巧,需要不断的练习和积累。
可以多阅读一些程序,尝试理解并分析其中的逻辑和实现方式。
通过不断的练习,可以逐渐提高自己的阅读程序的能力。
七、与他人交流阅读程序时,可以与他人交流讨论,分享彼此的理解和思考。
可以参加编程社区或论坛,与其他程序员交流经验和技巧。
通过与他人的讨论,可以获得不同的思路和观点,有助于拓宽自己的思维方式和解题思路。
总结起来,NOIP阅读程序的技巧包括审题仔细、了解程序结构、注重细节、调试程序、查阅资料、多练习和与他人交流。
通过掌握这些技巧,可以提高自己的阅读程序的能力,更好地解决问题和完成竞赛任务。
北京Noip2010复赛环境使用说明及注意事项
北京Noip2010 复赛环境使用说明及注意事项1、本次竞赛采用windowsXP下运行virtualbox 3.2.10,虚拟运行noi linux。
对于windowsXP系统,虚拟机是一个普通的程序。
对于noi linux系统,虚拟机提供了虚拟的硬件。
2、本次竞赛配置环境时所采用的iso文件是直接从noi官网下载的。
noilinux 是noi官方创建的基于ubuntu7.10的linux发行版。
常见的linux命令都可运行。
3、竞赛所用的环境都已经配置完全。
监考人员不予回答的问题包括但不限于:linux基本操作、竞赛环境的使用。
4、虚拟机的配置为:512MB内存以上,3G硬盘(约1.3G可用)。
Virtualbox热键为右Ctrl,常用快捷键包括:热键+F 虚拟机全屏、热键+home 显示虚拟机主菜单、热键+i切换是否自动捕获鼠标模式、单按热键释放鼠标键盘。
在虚拟机中,凡是含有右ctrl的快捷键都已经失效,例如只能用左ctrl+C进行复制。
5、如鼠标不能移动到屏幕某区域,可以尝试按热键释放鼠标键盘,之后再点击屏幕。
也可以尝试按热键+i切换鼠标捕获。
6、选手参赛时使用的用户名及登陆密码将在考前告知。
选手桌面上将会有加密的试题,解压密码将在考前告知。
选手桌面上会有一个以选手准考证号命名的提交文件夹,竞赛结束后就要提交这个文件夹。
7、选手需按照noi要求为每道试题在提交文件夹下由选手为每道试题再单独建立一个子目录,子目录名与对应的试题英文名相同(英文小写,参见试题封面页)。
例如:BJ-01如果使用pascal语言,假设本次竞赛的题目名称是a,b,c,d,那么他需要提交的目录是桌面上的BJ-01文件夹,目录中包含四个子目录a,b,c,d,子目录下分别有a.pas, b.pas, c.pas,d.pas。
选手提交的每道试题的源程序必须存放在相应的子目录下,未按规定建立子目录、建立的子目录名出现错误、或提交的源程序没有存放在相应的子目录下等都会导致选手成绩为0分,责任由选手承担。
noip承诺书
noip承诺书
无标题
本人郑重承诺,参加NOIP(全国青少年信息学奥林匹克联赛)的考试。
一、考试守则
1. 本人保证严格遵守NOIP的考试规定,不违反任何考试纪律,不参与任何作弊行为。
2. 本人将诚实、客观地完成考试任务,不抄袭他人作品,不使用任何未经许可的辅助工具。
3. 本人将在规定的时间内完成考试,不早退、不延误。
二、知识保密
1. 本人承诺将保守NOIP考试中的试题内容,不泄露给他人,不在任何形式的网络平台上公开分享考试题目。
2. 本人将不主动获取其他选手的答案或试题,不传播答案或试题。
三、公平竞争
1. 本人将尊重其他选手的作品和努力,不进行任何恶意攻击、诽谤或抹黑行为。
2. 本人将以公平和正直的态度对待所有参赛选手和裁判,不进行任何行为上的不当影响。
四、遵守组织要求
1. 本人将遵守组织者的相关要求和规定,如参赛证明,作品提交等等,不提供虚假材料。
2. 本人将积极配合组织者的工作,如出示有效证件,按时参加各项活动。
五、违约责任
1. 若本人违反上述任何一条承诺,本人愿意接受组织者依据NOIP 规定所作出的相应处罚,包括但不限于取消考试成绩、取消参赛资格等。
2. 本承诺书的签署并不免除组织者根据规定追究本人法律责任的权力。
本人郑重承诺以上所有内容均属实,如有违反,愿意接受组织者的处罚。
签署人: [你的姓名]
日期: [日期]。
马井堂-NOIP考前总结
考试注意点:1 、通读题目并仔细审题!2 、数组要开的稍大一些3 、注意初始化4 、注意变量名5 、先对题目分析清楚,写下伪代码或大体步骤再写程序6 、出现问题先静态查错,在打印输出调试7 、文件名注意!8 、动态规划和搜索注意边界处理9 、模拟题一定要把问题分析清楚再下手!10 、做题应先易后难。
算法知识总结:一、数论算法最大公约数function gcd(x,y:longint):longint; beginif x=0 then exit(y);if y=0 then exit(x); exit(gcd(y,x mod y));end;最小公倍数function lcm(x,y:longint):longint; beginexit(x*y div gcd(x,y));end; 组合数生成 1c[0,0]:=1;for i:=1 to n dobeginc[i,0]:=1;for j:=1 to i doc[i,j]:=c[i-1,j]+c[i-1,j-1];end;组合数生成2fillchar(p,sizeof(p),1);for i:=2 to n doif p[i] thenbegininc(np); pp[np]:=i;j:=i;while j<=n dobegin■i;thentmp:=j; tsum:=0;while tmp mod i=0 do begintmp:=tmp divinc(tsum);end;inc(c[np],tsum);if j<=mdec(c[np],tsum);if j<=n-mdec(c[np],tsum);p[ j]:=false; j:=j+i;end;p[i]:=true;end;fillchar(ans,sizeof(ans),0);l:=1; ans[1]:=1;for i:=1 to np dofor j:=1 to c[i] dobeginfor k:=1 to l do ans[k]:=ans[k]*pp[i];for k:=1 to l dobeginans[k+1]:=ans[k+1]+ans[k] div 10;ans[k]:=ans[k] mod 10; end;while ans[l+1]>0 dobegininc(l);ans[l+1]:=ans[l] div 10;ans[l]:=ans[l] mod 10;end;end;for i:=l downto 1 do write(ans[i]); writeln;素数判定1function prime(x:longint):boolean;var i:longint;beginfor i:=2 to trunc(sqrt(x)) doif x mod i=0 then exit(false); exit(true);end;素数判定2fillchar(p,sizeof(p),true);for i:=2 to n doif p[i] thenbegininc(np); pp[np]:=i;■ ■亠■j:=i*i;while j<=n dobeginp[ j]:=false;j:=j+i;end;end;素数判定3function exp(a,p,k:longint):int64;var t:int64;begint:=a; exp:=1;while p>0 dobeginif p and 1=1 then exp:=(exp*t)mod k;t:=t*t mod k;p:=p>>1;end;end;function check(x:longint):boolean;var s:longint;beginthen thenif x in [2,3,5,7,11] then exit(true); for s:=1 to 5 doif exp(c[s],x-1,x)<>1 exit(false);if x=3215031751 then exit(false);exit(true);end;二、图论算法Floyedfor k:=1 to n dofor i:=1 to n dofor j:=1 to n doif dis[i,k]+dis[k,j]<dis[i,j]dis[i,j]:=dis[i,k]+dis[k,j];DIJKSTRAfor i:=1 to n dodis[i]:=g[1,i]; fillchar(v,sizeof(v),0);v[1]:=true; for i:=2 to n dobeginmin:=inf;for j:=2 to n do if not v[ j] then ifdis[ j]<min then beginmin:=dis[ j]; minj:=j;end;v[minj]:=true;for j:=2 to n doif not v[ j] thenif dis[ j]>min+g[minj,j] then dis[ j]:=min+g[minj,j] end;SPFAfillchar(v,sizeof(v),0); v[1]:=true;for i:=2 to n do dis[i]:=inf;h:=0; t:=1; q[1]:=1;while h<>t dobeginh:=h mod n+1;v[q[h]]:=false; p:=e[q[h]];while p<>nil dobeginifdis[pA ・data]>dis[q[h]]+pA .w the nbegindis[p A.data]:=dis[q[h]]+p A.w;if not v[pA .data] the nbegint:=t mod n+1;q[t]:=pA.data;v[q[t]]:=true;end;end;p:=pA.next;end;end;最小环for k:=1 to n dobeginfor i:=1 to k-1 dofor j:=i+1 to k-1 doans:=min(ans,dis[i,j]+g[i,k]+g[k,j]);for i:=1 to n dofor j:=1 to n dodis[i,j]:=min(dis[i,j],dis[i,k]+dis[k,j]);end;传递闭包for k:=1 to n do(map[i,k] for i:=1 to n dofor j:=1 to n do map[i,j]:=map[i,j] or and map[k,j]); PRIMfor i:=1 to n do cost[i]:=g[1,i]; fillchar(v,sizeof(v),0); v[1]:=true; for i:=2 to n dobeginmin:=inf;for j:=1 to n do if not v[ j] then if min>cost[ j] then beginmin:=cost[ j];minj:=j;end;v[minj]:=true;varans:=ans+cost[minj];writeln(ans);for j:=1 to n doif not v[ j] thenif cost[ j]>g[minj,j] thencost[ j]:=g[minj,j];end;KRUSAKALprocedure swap(var x,y:longint); t:longint; begin t:=x; x:=y; y:=t; end; procedure qsort(l,r:longint); var i,j,t:longint;begini:=l; j:=r; t:=e[(l+r)>>1]; repeat while e[i]<t do inc(i);while e[ j]>t do dec( j); if i<=j thenbeginswap(e[i],e[ j]); swap(x[i],x[ j]);swap(y[i],y[ j]); inc(i); dec( j);end;until i>j;if l<j then qsort(l,j);if i<r then qsort(i,r);end;function get(x:longint):longint;beginif f[x]=x then exit(x);f[x]:=get(f[x]);exit(f[x]);end;function same(x,y:longint):boolean; beginexit(get(x)=get(y)); end;procedure union(x,y:longint); beginf[get(x)]:=get(y); end;for i:=1 to n do f[i]:=i;for i:=1 to m doread(x[i],y[i],e[i]);qsort(1,m); j:=1;for i:=1 to n-1 dobeginwhile same(x[ j],y[ j]) do inc( j); union(x[ j],y[ j]); ans:=ans+e[ j]; end;、高精度算法( VIJOS p1047 ) type arr=array[-1..400]of integer;varans,a,b:arr;procedure init;vari:integer;s1,s2:string;do do beginreadln(s2);s1:=copy(s2,1,pos(' ',s2)-1); a[0]:=length(s1);for i:=1 to a[0]a[a[0]+1-i]:=ord(s1[i])-48; delete(s2,1,pos(' ',s2));b[0]:=length(s2);for i:=1 to b[0]b[b[0]+1-i]:=ord(s2[i])-48;end;function jia(a,b:arr):arr;vari:integer;else c:arr;beginfillchar(c,sizeof(c),0);if a[0]<b[0] then c[0]:=b[0]c[0]:=a[0];for i:=1 to c[0] dobegin c[i]:=a[i]+b[i]; c[i+1]:=c[i+1]+a[i] div 10; c[i]:=c[i] mod 10;end;if c[c[0]]>0 then inc(c[0]);jia:=c;end;function jian(a,b:arr):arr;vari:integer;c:arr;beginfillchar(c,sizeof(c),0); for i:=1 to a[0] dobeginif a[i]<b[i] then begin dec(a[i+1]);inc(a[i],10); end;c[i]:=a[i]-b[i]; end;c[0]:=a[0];while (c[c[0]]=0) and (c[0]>1) dodec(c[0]);jian:=c;end;function cheng(a,b:arr):arr;vari,j:integer;c:arr;beginfillchar(c,sizeof(c),0);for i:=1 to a[0] dofor j:=1 to b[0] doc[i+j-1]:=c[i+j-1]+a[i]*b[ j];c[0]:=a[0]+b[0]-1;for i:=1 to c[0] dobeginc[i+1]:=c[i+1]+c[i] div 10; c[i]:=c[i]mod 10;end;while c[c[0]+1]<>0 dobegininc(c[0]);c[c[0]+1]:=c[c[0]] div 10;c[c[0]]:=c[c[0]] mod 10;end;cheng:=c;end;function compare(a,b:arr):boolean; var i:integer;beginif a[0]>b[0] then exit(true); if b[0]>a[0]then exit(false);for i:=a[0] downto 1 doif a[i]<>b[i] thenif a[i]>b[i] then exit(true) else exit(false);exit(false);end;procedure move1(var a,b:arr);var i:integer;beginwhile compare(a,b) dobegininc(b[0]);for i:=b[0] downto 2 dob[i]:=b[i-1];inc(b[-1]);b[1]:=0;end;if compare(b,a) thenbeginan dfor i:=1 to b[0]-1 do b[i]:=b[i+1]; b[b[0]]:=0;dec(b[0]);dec(b[-1]);end;end;procedure move2(var a,b:arr); var i:integer;beginwhile (compare(b,a))(b[-1]>0) dobeginfor i:=1 to b[0]-1 do b[i]:=b[i+1]; b[b[0]]:=0;dec(b[-1]); dec(b[0]);if b[-thenend;function chu(a,b:arr):arr;varc:arr;beginfillchar(c,sizeof(c),0);move1(a,b);while not compare(b,a) dobegina:=jian(a,b);inc(c[b[-1]+1]);c[0]:=b[-1]+1;end;if b[-1]>0 then move2(a,b);end;chu:=c;end;function yu(a,b:arr):arr;beginmove1(a,b);while not compare(b,a) dobegina:=jian(a,b);move2(a,b);end;yu:=a;end;or function gcd(a,b:arr):arr; var t:arr;beginwhile compare(a,b) compare(b,a) dobegin if compare(b,a) then begin t:=a; a:=b; b:=t; end; if (b[0]=1) and (b[1]=0) thenexit(a); if (b[0]=1) and (b[1]=1) thenexit(b);a:=yu(a,b);end;gcd:=a;end;function lcm(a,b:arr):arr;varji,g:arr;begin ji:=cheng(a,b); g:=gcd(a,b);lcm:=chu( ji,g);end;procedure outit;var i:integer;beginfor i:=ans[0] downto 1 dowrite(ans[i]);end;begininit;ans:=lcm(a,b);outit;end.。
NOIp考试技巧
NOIp考试技巧2018年09月17日13:55:35cqbzlytina阅读数:665本文转自江苏信息学竞赛本文作者许昊然毕业于南京外国语学校,曾获NOIP 2012一等奖(590分,江苏第一名)、NOI 2012金牌(485分,全国第19名)、IOI 2013金牌(世界第三名),高一获清华保送资格,2014年被美国麻省理工学院录取。
Part I. 赛场策略与技巧∙首先,如果你的水平已经远超NOIP,自然是想怎么考怎么考了。
∙同理,如果你什么都不会,那么策略再好也是没用的。
∙因此,下面说的策略、技巧主要是针对水平中等,游走在分数线附近的同学们的。
赛场策略的最终目标就是一句话:多拿分。
这是考试,为了分数应当使用任何你能想到的手段。
(当然作弊啥的除外……)多拿分,具体来说就是两部分:∙会做的subtask不丢分∙不会做的subtask多骗分1、先讲一下“会做的subtask不丢分”。
subtask就是每道题目里各个部分分。
如果一个subtask你会做,比如遇到了水题,或者某道题你会写30分的小数据,那么请务必确保你能拿到这部分分数。
以及,不要嫌分数少而懒得写!30分也是分,10分也是分,在分数拉不开的情况下(如果你水平并不优秀,这就是你总是要面对的情况),10分的差距就决定了你是一等还是二等。
记住,如果你因为粗心大意,一个简单的subtask没拿到分,你就不得不依靠更难的题目来把这部分分数拉回来。
举个例子,某A,第一题因打错文件名爆零,其余两题满分。
某B,只会前两题,第三题写了朴素得30分。
最后A得200分,B得230分。
难题和水题都是100分,评奖可不管你到底写对的是难题还是水题。
请大家记住:在大多数OI比赛中,只要暴力分全部拿到,就是一等奖(或金牌)。
但问题是,大家都会写暴力,为啥一等奖只有总名额的10%呢?因为大多数人都会把暴力写错,或看暴力分少懒得写。
如果你正确写出了所有暴力,不出意外你就是一等奖了。
noip 测评编译条件
noip 测评编译条件一、基本要求参加noip测评考试,首先需要满足基本条件,包括:1. 具备相应的知识水平和技术能力,能够完成相应的测评任务。
2. 按照规定的时间和地点参加测评考试,并遵守考试规则。
3. 提交正确的测评结果和相关材料,确保符合要求。
二、编译环境编译条件是noip测评考试的重要环节,主要包括以下几个方面:1. 操作系统:测评系统支持Windows、Linux、Mac等主流操作系统。
2. 编程语言:目前主要以C/C++为主,考生需要根据考试要求选择合适的编程语言。
3. 编译器:系统提供了多种编译器,如Visual Studio、GCC 等,考生可以根据自己的习惯和喜好进行选择。
4. 代码编辑器:系统提供了代码编辑器,如Sublime Text、Visual Studio Code等,方便考生编写代码。
三、编译过程在满足基本条件和编译环境要求后,考生需要按照以下步骤进行编译:1. 打开编译器,创建或打开一个空白的代码文件。
2. 根据题目要求,编写相应的代码。
3. 保存代码文件,并确保文件名与题目要求一致。
4. 打开测评系统,输入代码文件路径和文件名进行编译。
5. 系统会根据代码进行编译,并在短时间内生成相应的结果。
四、注意事项在编译过程中,考生需要注意以下几点:1. 确保编译器和代码编辑器已正确安装和配置。
2. 确保代码文件名与题目要求一致,避免因文件名错误导致编译失败。
3. 仔细阅读题目要求,确保代码编写正确。
4. 注意编译时间,避免超时导致无法完成考试。
5. 在考试过程中,不得使用任何作弊手段,如使用外部工具等。
总的来说,noip测评编译条件是考生需要认真对待的一个环节,需要考生在满足基本条件、选择合适的编译环境和按照正确的步骤进行编译的基础上,仔细阅读题目要求,认真编写代码,确保能够成功完成考试。
NOIP中C++注意事项
NOIP中windows环境下C++编程要注意的事项CCF关于复赛用机与评测结果的重申与说明由于评测环境不同而产生的问题(例如,windows下C/C++的__int64类型在Linux下无法通过编译,输入文件中windows下换行符与Linux下换行符的表示方式不同,等等)其有关责任由选手和省组织单位自行承担,NOI科学委员会一概不受理相关申诉。
注意点:1、64位(long long )输入输出:如果用scanf和printf语句时,注意不要用”%I64d”,这个Linux下是不能编译通过的,要用”%lld”,或用流输入输出。
注:NOIP一般没有64位数据。
2、linux下的字符串换行是/13/10,在windows下是/13。
3、主函数int main() ,必须要以return (0); 正确结束。
如果少了这句,测试系统可能出现错误结果。
4、linux下注意文件名、目录名是区分大小写的。
5、建议加上<cstdio>、<cstdlib>、<cstring>、<cmath>、<algorithm>等库。
6、尽量用标准简单的程序风格。
例如错误1:全局变量不要用find,power,max之类单词, 甚至不能用y0,y1变量。
错误2:读n个点的坐标:for(int i=0;i<n; i++)cin >> x[i] >> y[i++] ;在linux下是错误的。
错误3:typedef long long ll;void T_add(int x, int l, int r, int ll, int rr, ll v){}在linux下编译不通过!附一:关于输入文件格式与输出文件的比较方式约定2.1 输入文件中除相邻元素间的一个空格符外,没有其它多余的空格。
输入数据的每一行末尾都有一个回车,包括文件的最后一行数据在内(即输入文件最后一行数据的末尾也有一个回车)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由于编译及评测均在NOI Linux下进行,所有文件名、语
句一般小写(题目有要求除外)。
5
数据类型
整型:integer(16位):-32768…32767
Long int:-2147483648…2147483647
Long long : -9223372036854775808…9223372036854775807
(较少用,不可作为循环变量)
实型:float ,Double 字符型:char
衡阳市第一中学计算机代表队@DX8080
6
关联文件操作
freopen(“ 文件名.in”,”r”,stdin); freopen(“ 文件名.out”,”w”,stdout);
fclose(stdin); fclose(stdout);
试题解压密码其实会影响一个人的心情,一定要仔细输入
衡阳市第一中学计算机代表队@DX,要对自己有自信。
3
比赛中注意事项
每道题参赛程序(.c或.cpp)源文件不得大于100KB,如
选手在规定目录下另建其它子目录,这些子目录中的 文件均会被评测系统忽略。 选手程序应正常结束并返回Linux系统,(main)主函 数的返回值必须为0,选手程序中所使用的静态和动 态内存空间总和不得超过128MB。 程序禁止使用内嵌汇编和以下划线开头的库函数或宏 (自己定义的除外)。 64位整数只能使用long long类型及unsigned long long类型。 C++ 可以使用STL中的模板。
所位置,测试电脑有无故障,更改软件、系统为自己所喜 欢的设置,如:取消桌面背景、更改Dev C++字体等。
利用熟悉考场时间写下重要且易错内容,如:快速排序
(qsort)、文件操作,头文件等。 (stdio.h,stdlib.h,string.h, ctype.h,math.h) 注意头文件不是越多越好,写上必要的就行了!
注意:主程序中return 0前、务必加fclose!!!
以防文件非正常关闭造成错误。
衡阳市第一中学计算机代表队@DX8080
7
赋初值
置为0:
置为极大值: 置为极小值:
不设置初始值,结果可能会出现不可预料的错误,造成调
试难度。
衡阳市第一中学计算机代表队@DX8080
8
程序操作注意的特殊情况
注意数组是否越界!!! 全局变量与局部变量尽量不相同。
递归有层次限制,最多10000层。
针对数据考虑特殊情况和极限情况。 特别注意程序写完一个后要在电脑的磁盘上做备份,
保存好,以免机器发生故障!!!
程序操作注意的特殊情况
C语言编译运行错误,仔细根据编译器抛出的错误信
息,逐行调整(建议了解C语言常见错误分析) 读入读出数据错误(特别是读完数字后再读字符,通 常字符最容易被空格换行给吃掉)
题目要求
注意程序文件名、输入文件名、输出文件名,测试点个数。 注意空间限制(一般为128MB)、时间限制(一般为
1S)。数组定义在函数中时,占用的内存来自栈空间,栈空间是在
进程创建时初始化的,有固定的大小一般几M,所以太大的数组会耗 光栈空间。全局变量占用的堆空间,堆空间中的内存是按需分配,自 由增长的,可以非常大。
注意输出格式,如字母大小写、有无空格换行,是否
有错误输出。 行末有无空格、文末有无换行对成绩无影响,但建议 行末无空格、文末换行。 注意准考证及监考老师的说明,是否需要、如何建立 文件夹,有问题请监控老师帮助。
比赛前
1、准考证 2、身份证(或其它有效证件) 3、笔 4、少量水
禁止携带U 盘、MP3、计算器、手机等任何与存储、计算、通
信有关的电子设备;禁止携带一切书籍和其他无关物品;一经 发现按作弊处理。草稿纸考场会发,无需自己准备。
赛前15分钟
比赛提前15分钟进场,熟悉考场环境,找到自己座位及厕