- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NOIP2005提高组解题报告
第一题:scholar
题意分析
给出N(1≤N≤100)个人的情况,按照5条不同的奖学金条件发奖金(可重复得奖),求得到最多奖学金的人是谁,并求总奖学金数。
算法分析
这是一道简单题,没有什么更好或更坏的算法。只需按照实际情况模拟即可,每人判断5个条件,该发多少发多少就行了。要注意的是每人最多得15850元,总数最多1585000元,注意长整的使用。
参考程序
#include stdio.h
#define MAXN 100 /*最大人数*/
FILE *fpi,*fpo;
char name[MAXN+1][21]; /*人名*/
int n;
int main(){
long s=0,max=0,maxi, money;
int i,mark,clmark,paper;
char g,w;
fpi=fopen(scholar.in,r);
fpo=fopen(scholar.out,w);
fscanf(fpi,%d,n);
for(i=1;i=n;i++){
money=0;
fscanf(fpi,%s %d %d %c %c %d,name[i],mark,clmark,g,w,paper);
if(mark80 paper0) money+=8000; /*判断各个奖*/
if(mark85 clmark80) money+=4000;
if(mark90) money+=2000;
if(mark85 w==Y) money+=1000;
if(clmark80 g==Y) money+=850;
s+=money;
if(moneymax){
max=money;
maxi=i;
}
}
fprintf(fpo,%s\n%ld\n%ld\n,name[maxi],max,s);
fclose(fpi);
fclose(fpo);
return(0);
}
第二题:river
题意分析
一个青蛙要过一个宽为P米(1≤P≤10^9)的河,他一步能跳S到T米(1≤S≤T≤10),他不喜欢踩到河里的石子(石子数M≤100),给出每个石子的坐标,问最少踩到多少石子能过河。
算法分析
这道题在没看数据规模之前以为是一道简单的DP,但是数据开到十亿,无论在时间还是空间复杂度都过大,所以就要进行优化了。
解一:
简单方法:预期得分30。简单动态规划,f[i]代表青蛙跳到i点时所可能踩到的最少石子数,所以有f[i]=min{f[k]+map[i]}(i-s≤k≤i-t),其中map[i]代表i上是否有石子,有是1,否则0。算法复杂度O(n^2)。
解二:
改进方法:预期得分100。我们会发现,虽然桥很长,但上面最多只有100个石子,想到能否用石子DP,而应该是不行的。那能否基于第一种方法?由于石子排布非常的疏,我们还会发现,如果两个石子相隔甚远,那他们中间的f[i]大部分将会是同一个数,能否把两个石子的距离缩短,使之还与原来等效?要是行的话怎么缩?王乃岩同学考试时做了一个方法能够过全部数据,用的滚动数组存储,下面列出了他的程序。我自己也写了个程序,和他不尽相同:我令L=stone[i]-stone[i-1](stone[i]代表按坐标由小到大顺序排列的石块坐标),当L能够被t整除时(L%t==0),令k=t;当L不能被t整除时(L%t!=0),令k=L%t。然后令k为k+t,最后判断如果kL,那么map[]数组中stone[i]和stone[i-1]两石头的距离就被等效成为L(也就是没变);如果k=L,那么map[]数组中stone[i]和stone[i-1]两石头的距离就被等效成为k,可以看出来,这样处理完,两石子最大间距为2*t,大大的缩短了数组,再按解一进行DP,就可以通过了。
参考程序
王乃岩:
Program River;
Var
f1, f2 : Text;
x, Temp, i, l, s, t, p, q, n : Longint;
Stone : Array[1..100] Of Longint;
a : Array[0..9] Of Integer;
Procedure Qsort(l, r : Longint);
Var
i, j, x, Temp : Longint;
Begin
i := l; j := r; x := Stone[(l + r) Shr 1];
Repeat
While Stone[i] x Do In
您可能关注的文档
- 《算法艺术与信息学竞赛》的学习指导【信息技术】.pdf
- 《算符破译》解题报告【信息技术】.doc
- 0.回溯法【信息技术】.doc
- 01广搜hash优化【信息技术】.ppt
- 1.高逸涵《与圆有关的离散化方法》【信息技术】.doc
- 1.高逸涵《与圆有关的离散化方法》【信息技术】.ppt
- 1.深度优先搜索【信息技术】.doc
- 1.杨弋《Hash在信息学竞赛中的一类应用》【信息技术】.ppt
- 1_数论初步【信息技术】.ppt
- 1-2【信息技术】.pdf
- 2025年新疆克孜勒苏柯尔克孜自治州单招职业倾向性考试题库附答案.docx
- 2025年新疆克孜勒苏柯尔克孜自治州单招职业适应性考试必刷测试卷及参考答案.docx
- 2025年新疆交通职业技术学院单招职业技能测试题库带答案.docx
- 2025年新疆伊犁哈萨克自治州单招职业倾向性测试题库完美版.docx
- 2025年新疆乌鲁木齐市单招职业适应性考试题库推荐.docx
- 2025年新疆乌鲁木齐市行政职业能力测验题库必考题.docx
- 2025年新疆克孜勒苏柯尔克孜自治州行政职业能力测验题库及答案1套.docx
- 2025年新疆乌鲁木齐市行政职业能力测验模拟试题审定版.docx
- 2025年新疆乌鲁木齐市单招职业倾向性考试必刷测试卷1套.docx
- 2025年新疆乌鲁木齐市行政职业能力测验题库及答案1套.docx
最近下载
- 水工建筑物外观质量评定标准.docx VIP
- 英语国际音标表(8个)打印版.doc VIP
- 升立德 E系列控制卡快速入门.pdf VIP
- 高级财务会计(第4版)-习题答案-周华人民大学.pdf VIP
- 欧盟发布电池和废电池的新规(EU) 附中译文参照_182518812544822.pdf VIP
- 9.3抗日战争80周年阅兵九三阅兵小小爱国者探索手册PPT(优质ppt).pptx VIP
- 部编版六年级语文上册《 开国大典》PPT课件(含教案).pptx VIP
- 2024年快递员赛项技能大赛理论参考试题库(含答案).doc VIP
- 2025年新学期小学三年级开学家长会PPT课件.pptx
- 欧盟新电池和废电池的法规(EU)20231542中文版.docx VIP
文档评论(0)