摘要: 第七届(2001)分区联赛复赛试题(提高组)内存限制128MB,时限1秒第一题:一元三次方程求解(p1.pas p1.in p1.out)问题描述有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。提示:记方程f(x)=0,若存在2个数x1和x2,且x1<x2,f(x1)*f(x2)<0,则在(x1,x2)之间一定有一个根。样例输入:1 -5 阅读全文
posted @ 2012-08-20 20:38 jiangzh 阅读(358) 评论(0) 推荐(0)
摘要: 第一题:一元三次方程求解(p1.pas p1.in p1.out)问题描述有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。提示:记方程f(x)=0,若存在2个数x1和x2,且x1<x2,f(x1)*f(x2)<0,则在(x1,x2)之间一定有一个根。样例输入:1 -5 -4 20输出:-2.00 2.00 5.00这一题数据范围是-100~ 阅读全文
posted @ 2012-08-20 20:28 jiangzh 阅读(562) 评论(0) 推荐(0)
摘要: 第二题:数的划分(p2.pas/c/cpp p2.in p2.out)问题描述将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5; 1,5,1; 5,1,1;问有多少种不同的分法。输入:n,k (6<n<=200,2<=k<=6)输出:一个整数,即不同的分法。样例输入: 7 3输出:4 {四种分法为:1,1,5;1,2,4;1,3,3;2,2,3;}题目范围很小,深搜可以轻松过主要是判重,方法有两种 ①类似字符串检索,每求出一种方案就将其排序,然后判重用hash就很方便了,但是时间不理想 ②枚举 阅读全文
posted @ 2012-08-20 20:27 jiangzh 阅读(366) 评论(0) 推荐(0)
摘要: 第三题:统计单词个数(p3.pas/c/cpp p3.in p3.out)问题描述给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个)。要求将此字母串分成k份(1<k<=40),且每份中包含的单词个数加起来总数最大(每份中包含的单词可以部分重叠。当选用一个单词之后,其第一个字母不能再用。例如字符串this中可包含this和is,选用this之后就不能包含th)。单词在给出的一个不超过6个单词的字典中。要求输出最大的个数。输入格式:输入数据放在文本文件p3.in中,其格式如下:第一行为一个正整数(0<n<= 阅读全文
posted @ 2012-08-20 20:24 jiangzh 阅读(460) 评论(0) 推荐(0)
摘要: 第四题:CAR的旅行路线(p4.pas/c/cpp p4.in p4.out)问题描述又到暑假了,住在城市A的Car想和朋友一起去城市B旅游。她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第I个城市中高速铁路了的单位里程价格为Ti,任意两个不同城市的机场之间均有航线,所有航线单位里程的价格均为t。那么Car应如何安排到城市B的路线才能尽可能的节省花费呢?她发现这并不是一个简单的问题,于是她来向你请教。任务:找出一条从城市A到B的旅游路线,出发和到达城市中的机场可以任意选取,要求总的花费最少。输入文件:输入文件名p4.in输 出:p4. 阅读全文
posted @ 2012-08-20 20:23 jiangzh 阅读(490) 评论(0) 推荐(0)
摘要: NOIP第二次模拟赛1.暴走的猴子(walk.pas/c/cpp)【题目描述】从前有一个森林,森林里生活着一群猴子,这里猴子有个恶趣味——暴走。现在给你这个森林里的树木描述,你能计算出这只猴子在暴走k步后会蹦达到哪里吗(友情提示:由于你上周帮助猎人写程序打死了猴子父亲,所以今天猴子特别不爽,故意暴走了很多很多步来为难你,从而导致了k非常的大,做好心里准备噢~)【输入数据】第一行两个数n,m表示树木数和询问次数接下来n行,第i行一个数ai表示这只猴子当前在第i棵树的话,下一步会走到第ai棵树接下来m行,每行两个数t,k,询问如果当前猴子在第t棵树,k步之后它会到第几棵树【输出数据】m行为每次询问 阅读全文
posted @ 2012-08-20 19:48 jiangzh 阅读(210) 评论(0) 推荐(0)
摘要: 1.暴走的猴子(walk.pas/c/cpp)【题目描述】从前有一个森林,森林里生活着一群猴子,这里猴子有个恶趣味——暴走。现在给你这个森林里的树木描述,你能计算出这只猴子在暴走k步后会蹦达到哪里吗(友情提示:由于你上周帮助猎人写程序打死了猴子父亲,所以今天猴子特别不爽,故意暴走了很多很多步来为难你,从而导致了k非常的大,做好心里准备噢~)【输入数据】第一行两个数n,m表示树木数和询问次数接下来n行,第i行一个数ai表示这只猴子当前在第i棵树的话,下一步会走到第ai棵树接下来m行,每行两个数t,k,询问如果当前猴子在第t棵树,k步之后它会到第几棵树【输出数据】m行为每次询问的结果【样例输入】3 阅读全文
posted @ 2012-08-20 19:46 jiangzh 阅读(209) 评论(0) 推荐(0)
摘要: 3.无聊的游戏(boring.pas/c/cpp)【题目描述】有一个很无聊的游戏,就是——根据递推公式计算数列没错,这道题就是这么无聊!给你数列f(0)=1, f(n)=f(n-1)^2+1 (n > 0)求出f(n)(既然题目已经这么无聊了,那就不让大家写高精度了,取个模好了)【输入格式】一个整数n【输出格式】一行一个整数f(n),结果对1200007取模【样例输入】3【样例输出】26【数据规模】10%数据 1<=n<=1030%数据 1<=n<=10^6100%数据 1<=n<=10^9【时限】1s①如果你直接按题目暴力能拿30分②遇到这种按公式, 阅读全文
posted @ 2012-08-20 19:45 jiangzh 阅读(271) 评论(0) 推荐(0)
摘要: 2.划分数列(seq.pas/c/cpp)【题目描述】给你一个有n个元素的数列,要求把它划分成k段,使每段元素和的最大值最小【输入格式】第一行两个正整数n,k第二行为此数列ai【输出格式】一行一个数,为题目所求答案【样例输入】5 22 1 3 4 5【样例输出】9【数据规模】30%数据 n <= 30, k <= 10100%数据 n <= 100000, k <= n, ai <= 10^9【时限】1s前面已经说了,如果只用动规,是O(n3)的时间复杂度,只能拿50分而看到这种求最大值最小,或者最小值最大的题(类似关押罪犯)就应该想到去二分答案,就能拿100分C 阅读全文
posted @ 2012-08-20 19:45 jiangzh 阅读(411) 评论(0) 推荐(0)
摘要: NOIP模拟题(3小时完成)题目一览题目名称NBA工资迷宫最大数列安装服务器程序文件名NBA.pasmaze.passequence.passerver.pas输入文件名NBA.inmaze.insequence.inserver.in输出文件名NBA.outmaze.outsequence.outserver.out时限1秒1秒1秒1秒分值100分100分100分100分NBA工资(NBA.pas/c/cpp)【问题描述】NBA为了控制球员工资的总额,推出了奢侈税制度。NBA球队的工资总额一旦超过奢侈税起征点,超出的部分就将按1比1征税。也就是说每超出1美元,就要支付给联盟1美元。比如说起征 阅读全文
posted @ 2012-08-20 11:29 jiangzh 阅读(441) 评论(0) 推荐(0)
摘要: NBA工资(NBA.pas/c/cpp)【问题描述】NBA为了控制球员工资的总额,推出了奢侈税制度。NBA球队的工资总额一旦超过奢侈税起征点,超出的部分就将按1比1征税。也就是说每超出1美元,就要支付给联盟1美元。比如说起征点是6000万美元,而球队的工资总额是7000万美元,那么球队在工资上将要花费8000万美元。球队老板为了在新赛季中进行球员交易,因此需要得知球队当前的阵容在下个赛季需要花费多少的工资(包括奢侈税)。请你根据当前球队的工资表来计算如果使用当前球员,那么这个赛季将花费多少钱。【输入文件】输入文件NBA.in,第一行是一个整数,表示奢侈税起征点,第二行是球队的名字,第三行是一个 阅读全文
posted @ 2012-08-20 11:26 jiangzh 阅读(360) 评论(0) 推荐(0)
摘要: 迷宫(maze.pas/c/cpp)【问题描述】电脑游戏中有许多令人头疼的迷宫,会花费玩家相当多的时间,你通过秘笈获得了游戏迷宫的地图,你希望找到最短的一条走出迷宫的道路,并且想知道一共有多少条最短的道路,但是由于地图非常庞大,所以你不能在短时间找出这些道路,因此,你需要编写一个程序来找出这些最短的道路,并且统计一下一共有多少条这样的道路。例如,对于下图所示的迷宫:SXXXXEX表示障碍物,不可以通过,S表示迷宫的入口,E表示迷宫的出口。显然,从入口到出口至少需要走6步,而长度为6的道路一共有两条。【输入文件】输入文件maze.in,第一行是一个整数n(1 ≤n ≤ 25),表示迷宫是一个n& 阅读全文
posted @ 2012-08-20 11:24 jiangzh 阅读(322) 评论(0) 推荐(0)
摘要: 最大数列(sequence.pas/c/cpp)【问题描述】有一个N项的数列a1, a2 ... aN (|ai| <=10000, 1 <= i <= N)。S定义为你的任务是求S的值,即为求一个序列的两个不相交子序列的最大和。【输入文件】输入文件sequence.in的第一行是一个整数N(2 <= N <= 100000),表示数列的项数。第二行有n个整数,用空格分隔,第i个整数Ai(|Ai| <=10000)是第i位数。【输出文件】输出文件sequence.out包括一行,这一行只包含一个整数,就是S。【样例输入】5-5 9 -5 11 20【样例输出 阅读全文
posted @ 2012-08-20 11:23 jiangzh 阅读(256) 评论(0) 推荐(0)
摘要: 安装服务器(server.pas/c/cpp)【问题描述】政府计划建立一个大型的服务器中心,为各个城市提供网络服务。每个城市对网络的需求量是不一样的,而需求量越大,对线路的要求也就越高,线路的成本也就越高。因此需要选择合适的地点修建。每个城市用一个二维整数坐标表示,两个点之间的距离定义为水平距离+垂直距离,即a,b两点间距离为D(a,b)=|Xa-Xb|+|Ya-Yb|。对于每个城市,线路的费用为:费用=距离×人口×城市的网络需求程度。总的费用为各个城市的费用的总和。请你找出最适合安装服务器(既总费用最小)的整数坐标(不一定要在城市上)。【输入文件】输入文件server.i 阅读全文
posted @ 2012-08-20 11:20 jiangzh 阅读(471) 评论(0) 推荐(0)
摘要: 简单说说 就是保证队列是单调递增或递减的,第一个一定是最大(或最小的)并且不同于一般队列,它从队首和队尾都可以插入元素由于详解比较多,所以这里发个压缩包,大家下载看看吧http://files.cnblogs.com/oijzh/dandiaoduilie.rar 阅读全文
posted @ 2012-08-20 10:41 jiangzh 阅读(178) 评论(0) 推荐(0)
摘要: 带权中位数算法及应用信息学奥赛中有这样一类题:给出若干个排列在一条直线上的点,每个点有一个权值,比如说货物量或者人数等,然后让我们找出使所有点的货物或人集合到一个点的总代价值最小得位置。这类问题实际上就是求带权中位数位置问题。 一、带权中位数问题中位数是统计学中的一个名词,把一组数据按大道小顺序排列,处在最中间闻之的那个数就叫做中位数。中位数,将数据分成前后两个部分,用来表示一组数据的“中等水平”。中位数的位置与样本数的奇偶性有关,当样本数为奇数时,中位数为第(n+1)/2个数据;当样本数为偶数时,中位数为第n/2与第n/2+1个数据的算术平均值。所谓带权中位数,就是给定的n个有序的数,每个数 阅读全文
posted @ 2012-08-20 10:21 jiangzh 阅读(2411) 评论(0) 推荐(0)
摘要: 样例输入输出ball.in 1 1 0 0 ball.out 0.00考察带权中位数,知识点很简单,理解了题目就出来了http://www.cnblogs.com/oijzh/archive/2012/08/20/2647125.html样例window.in 8 3 1 3 -1 -3 5 3 6 7 window.out -1 -3 -3 -3 3 3 3 3 5 5 6 7枚举能得30分加上链表优化和判断最大(小)是否出解可以得100分(我的方法)用快排优化,用空间换时间,可以得100分(最后附上代码)当然最标准的是单调队列,可以得100分http://w... 阅读全文
posted @ 2012-08-20 10:15 jiangzh 阅读(235) 评论(0) 推荐(0)
摘要: 样例输入输出ball.in 1 1 0 0 ball.out 0.00这是一道有关带权中位数(http://www.cnblogs.com/oijzh/articles/2647134.html)的题分析题目不难发现,xy坐标是不相关的,所以应该离散化分开来,并且最终的目标位置必定在某一个人的点上(如果不在某一个点上,那么必定可以把这个点向左或向右移来找到一个更优的位置!)了解了带权中位数,这道题就很好做了Pascal Codeprogram ball;type arr=array[0..500000+10] of longint;var n,total:longint; ... 阅读全文
posted @ 2012-08-20 10:14 jiangzh 阅读(603) 评论(0) 推荐(0)
摘要: 样例service.in 5 9 0 1 1 1 1 1 0 2 3 2 1 1 0 4 1 2 1 5 0 1 4 2 3 4 0 4 2 4 1 5 4 3 2 1 service.out 5每次询问后我们都需直到三个服务员的位置,所以我们可以用一个四元组来维护状态f[i,a,b,c]表示第 i 次询问后三个服务员的位置分别在 a b c 那么 f[i,a,b,c]+cost->f[i+1,a,p[i+1],c] ->f[i+1,p[i+1],b,c] ->f[i+1,a,b,p[i+1]]但是这样效率很低!经过分析,我们不... 阅读全文
posted @ 2012-08-20 10:13 jiangzh 阅读(229) 评论(0) 推荐(0)
摘要: 样例window.in 8 3 1 3 -1 -3 5 3 6 7 window.out -1 -3 -3 -3 3 3 3 3 5 5 6 7前面已经说了朴素能得30分,加上优化后能得100分这里说说单调队列http://www.cnblogs.com/oijzh/articles/2647166.html利用单调队列的单调性,每次入队,算最小的时候,只要当前最小的没出队,那么其他比它大的就根本不可能作为最小的输出,所以每次入队判断即可算最大的同理如果大家对单调队列理解不是很清楚,可以看看资料,或者看看代码,是这理解一下单调队列 Pascal Codeprogram wind... 阅读全文
posted @ 2012-08-20 10:13 jiangzh 阅读(234) 评论(0) 推荐(0)