现在的位置: 首页 > 综合 > 正文

NOIP基本程序题集

2013年09月19日 ⁄ 综合 ⁄ 共 1924字 ⁄ 字号 评论关闭
 NOIP是一个比较基础的比赛,大家都说NOIP是考察基本算法的熟练掌握,所以个人认为无论是普及组还是提高组,都要从最最基本的题做起,要达到:只要是简单题,编完就对——不用编译;一般的题,写出来的都是对的——运行后几本上是正确的。为了提高,于是做了一个基本程序题集,以便查找自己的不足之处。

 


 

题集目录

一、              贪心算法

Problem1删数问题

Problem2旅行家的预算

Problem3线段覆盖

Problem4背包问题

Problem5任务调度

Problem6果子合并

Problem7射击竞赛

Problem8任务安排

Problem9最小差距

二、              分治算法

Problem1一元三次方程的解

Problem2查找第k大元素

Problem3麦森数

Problem4逆序对个数

Problem5寻找最近点对

Problem6剔除多余括号

Problem7赛程安排

三、              搜索算法

Problem1皇后问题

Problem2八数码问题

Problem3拼图

Problem4质数方阵

Problem5埃及分数

Problem6字符串变换

Problem7聪明的打字员

Problem8 01序列

Problem9生日蛋糕

四、              图论算法

Problem1一笔画问题

Problem2 Car的旅行路线

Problem3求割点与桥

Problem4十字绣

Problem5舞会

Problem6休息中的小呆

Problem7最优布线问题

Problem8磁盘碎片整理

Problem9说谎岛

Problem10 01串问题

Problem11海岛地图

五、              数学问题

Problem1数的划分

Problem2最优分解方案

Problem3出栈序列统计

Problem4百事世界杯之旅

Problem5电子锁

Problem6堆塔问题

Problem7取数游戏

Problem8球迷购票

Problem9 Fibonacci公约数

Problem10传球问题

Problem11约瑟夫问题

Problem12青蛙过河

Problem13棋盘游戏

六、              数据结构

Problem1火车栈

Problem2括号表达式

Problem3银河英雄传说

Problem4矩形覆盖

Problem5最短路径问题

Problem6果子合并

七、              字符串处理

Problem1相对分子质量

Problem2表达式求值

Problem3侦探推理

Problem4最长公共子串

Problem5一元一次方程的解

Problem6多项式乘法


 

一、   贪心算法

Problem1删数问题

题目描述:

    给定一正整数n(n的位数小于240),现要删除数n中的s个数码,使其得到的新数最小,求这个最小数。

输入

    输入有两行,第一行为整数n,第二行即为s

输出

输出一行,即最小的那个数

 

Problem2旅行家的预算

题目描述

    一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数NN可以为零),油站i离出发点的距离i、每升汽油价格Pii=12,……N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No Solution”。

输入

    输入第一行有5个数:D1cD2PN(前四个为实数,N为整数,N<=1000)

    后面有N行,每行两个实数,分别表示对应的加油站离出发点的距离,与每升汽油的价格

输出

    输出仅一行,即最少花费

 

Problem3线段覆盖

题目描述

    给定数轴上的n条线段(n<100),每个线段有其端点aibi组成(-999<=ai<bi<=999),由于有些线段会相互覆盖,所以求出至少去掉多少条线段,才能使剩下的所有线段之间互相没有内部公共点(若只是端点重合,则不是内部公共点)

输入

    输入第一行为整数N,接下来有N行,分别描述每条线段

输出

    输出第一行为最少删除的线段数s

    后面s行描述一个可行的删除方案,即删除那些线段

 

Problem4背包问题

题目描述

    有一个贼在偷窃一家商店时发现有N件物品:i件物品值Vi元,重Wi磅,(1in),此处ViWi都是整数。他希望带走的东西越值钱越好,但他的背包中最多只能装下W磅的东西(W为整数),小偷可带走某个物品的一部分(只带走其中的几磅),小偷应该带走哪几件东西,每件东西的重量是多少?

输入

    输入第一行为N(N<=10000),后面N行描述每个物品,每行两个数,即为ViWi

输出

抱歉!评论已关闭.