ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:166KB ,
资源ID:4210302      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-4210302.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(10.7模拟赛 题目+分析(二试)NEW.doc)为本站会员(11xg27ws)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

10.7模拟赛 题目+分析(二试)NEW.doc

1、冲刺 NOIP2011 八校联军复赛模拟二(巴蜀中学) 提高组第 1 页 信息学奥林匹克联赛(NOIP2011)八校联军复赛模拟二提高组第二试2011 年 10 月 7 日 8:30-11:30(请选手务必仔细阅读本页内容)一、题目概况中文题目名称 文件列表 编译优化 收费站英文题目名称 file compile cost可执行文件名 file compile cost输入文件名 file.in compile.in cost.in输出文件名 file.out compile.out cost.out每个测试点时限 1 秒 1 秒 1 秒测试点数目 10 20 10每个测试点分值 10 5 1

2、0附加样例文件 有 有 有结果比较方式 全文比较过滤行末空 格及文末回车 全文比较过滤行末空 格及文末回车 全文比较过滤行末空 格及文末回车题目类型 传统 传统 传统二、 提交源程序文件名对于 pascal 语言 file.pas compile.pas cost.pas对于 C 语言 file.c compile.c cost.c对于 C+语言 file.cpp compile.cpp cost.cpp三、 编译命令(不包含任何优化开关)对于 pascal 语言 fpc file.pas fpc compile.pas fpc cost.pas对于 C 语言 gcc o file file.

3、c -lm gcc o compile compile.c -lm gcc o cost cost.c -lm对于 C+语言 g+ -o filefile.cpp -lm g+ -o compile compile.cpp -lm g+ -o cost cost.cpp -lm四、 运行内存限制内存上限 256M 256M 256M五、 注意事项1、 文件名(程序名和输入输出文件名)必须使用小写。2、 C/C+中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。3、 全国统一评测时采用的机器配置为:CPU 1.9GHz,内存 1G,上述时限以此配置为准。各省在自测

4、时可根据具体配置调整时限。冲刺 NOIP2011 八校联军复赛模拟二(巴蜀中学) 提高组第 2 页 1.文件列表(file.pas/c/c+)【问题描述】 BSOI 在线评测机被不明身份的人入侵了!系统中大量的数据遭到恶意破坏,数据文件残缺不全。现在,老师正在尽力抢救数据文件。为了检查数据文件是否完整,老师打印出了所有文件的列表,但数据文件太多,老师眼睛都要看花了。所以,为了方便老师检查,需要你写个程序处理一下文件列表,转换成下面这样统一的格式:(/后面为注释)data /data 文件夹,根目录|-prob /data 下面的文件夹| |-a.in /prob 下面的文件| |-a.out|

5、-qq /data 下面的文件夹| |-new /qq 下面的文件夹| | |-ok.txt /new 下面的文件| |-old /空文件夹|-xxx.rmvb生成的列表格式有如下要求:1.属于同一层的文件或文件夹位于相同的缩进处,相邻两层文件间差距 5 个字符;2.每个文件夹或文件前有 4 个-( 根目录除外) ,文件夹下方属于文件夹的部分有| ;3.属于统一文件夹下的文件或子文件夹按字典序排列;【文件输入】第一行一个整数 n(nusing namespace std;struct triebool end;int c28;void clear()memset(c,0,sizeof(c);e

6、nd=0;tr600001;int n,ct=0;bool xxxxx=0;int get(char x)if(x=atr0.clear();for(i=1;is;set(s);out(0,0,“);/system(“pause“);return 0;2.编译优化(compile.pas/c/cpp)【问题描述】众所周知,衡量一个编译器是否优秀的标准,除了它的编译速度和正确性以外,编译出的代码的质量也很重要。最近,作为 XCC 系列编译器作者的 Dr. X 发明了一种跨时代的优化算法:“NanGe 不等式优化 ”。一个程序可以看成是由若干个连续的函数构成的,NanGe 不等式算法能针对某一个函

7、数进行优化,得到一个优化效果值, 不同的函数的效果值可能是不同的。但这个算法还有一个很大的 Bug:该算法不能同时优化相邻的两个函数,否则就会直接 Compile Error,值得注意的是,一个程序的第一个函数和最后一个函数也算是相邻的。现在给你一个程序从头到尾每个函数的优化效果值,Dr. X 想用 NanGe 不等式对该程序的 M 个函数进行优化,他该怎么选择才能使总的优化效果值最大(前提是不能出现错误)?如果错误不能避免,请输出“Error!”冲刺 NOIP2011 八校联军复赛模拟二(巴蜀中学) 提高组第 5 页 【输入文件】输入文件的第一行包含两个正整数 n、m 。第二行为 n 个整数

8、 Ai。【输出文件】输出文件仅一个整数,表示最后对该程序进行优化后的最大效果值。如果无解输出“Error!”,不包含引号。【样例输入输出 1】compile.in compile.out7 31 2 3 4 5 6 715【样例输入输出 2】compile.in compile.out7 41 2 3 4 5 6 7Error!【数据规模】对于全部数据:musing namespace std;int n,m;int L200001,R200001;int d200001,pos200001,a200001;void up(int x) int i=x;while(i1swap(posdi,p

9、osdi/2);i/=2;void down(int x) int i=x,j;while(i*2adi*2+1)j=i*2;else j=i*2+1;冲刺 NOIP2011 八校联军复赛模拟二(巴蜀中学) 提高组第 7 页 if(adiadj)return;swap(di,dj);swap(posdi,posdj);i=j;int main() int i,j;cinnm;if(n/2ai;di=i;posi=i;up(i);Li=i-1;Ri=i+1;L1=n;Rn=1;int ans=0;while(m-) int x=d1;ans+=ax;ax=aLx+aRx-ax;aLx=-1111

10、;down(posLx);aRx=-1111;down(posRx);down(1);Lx=LLx;Rx=RRx;RLx=x;LRx=x;coutminW。则跟 maxW 是最小生成树的边矛盾,因为在添加 maxW 之前 minW 已经添加了。【方法 1】转成 LCA+RMQ于是我们可以先构造出这个图的一棵最小生成树。然后问他就转为求树上任意两点的最大边权LCA+RMQ【算法】求二叉树上任意两点的最短路径上的边权最大值【问题】给出一棵树,每条边有一边权。对于任意给定的两点,求此两点的最短路径上边权的最大值。冲刺 NOIP2011 八校联军复赛模拟二(巴蜀中学) 提高组第 9 页 对于下图:蓝圈

11、中任意一点与红圈中任意一点的路径上的最大边必定是 8。根据这个现象,可以把上述的树重建成如下图所示。新图的叶子结点为原图的所有结点,内部结点为原图的边权,建边顺序为从小到大。如图所示:新图的红色编号为原图的结点编号,蓝色编号为原图的边。这样,问题就转换为求新图中,任意两个叶子节点的最小公共祖先问题了。【分析时间复杂度】:对于一棵树,n 个结点,m 条边,n=m-1。1、对所有的边进行排序:O(mlgm);2、建图采用并查集维护集合,并查集当前集合的根结点时间复杂度平均为 O(1),建图一共要建立 n+m 个点,所以时间复杂度为 O(n+m);3、查询任意两个结点的最近公共祖先,采用 RMQ 处

12、理,预处理的时间复杂度为O(n+m),回答时间复杂度为 O(1);所以,总的时间复杂度 O(nlogn)。#include#include#includeconst int maxn=11000,maxm=110000,logn=30;struct edgeint u,v,c; emaxm;int E=1,n,q,m,i,x,y,famaxn,lamaxnlogn,Maxmaxnlogn;int pointmaxm*2,nextmaxm*2,lenmaxm*2,firmaxn,dmaxn;bool fmaxn;int CMP(const void *a,const void *b)return

13、 (edge*)a)-c-(edge*)b)-c;int get(int x)if(fax=x)return x;return fax=get(fax);void add(int u,int v,int c)pointE=v;nextE=firu;lenE=c;firu=E+;int maxi(int a,int b)return ab?a:b;void dfs(int x,int fa,int w,int deep)dx=deep;fx=1;lax0=fa;Maxx0=lenw;for(int i=1;lalaxi-1i-1;i+)laxi=lalaxi-1i-1;冲刺 NOIP2011 八

14、校联军复赛模拟二(巴蜀中学) 提高组第 10 页 Maxxi=maxi(Maxxi-1,Maxlaxi-1i-1);for(int k=firx;k;k=nextk)if(!fpointk)dfs(pointk,x,k,deep+1);int ask(int x,int y)int ans=0,i;if(dxdy)int tmp=x;x=y;y=tmp;for(i=logn-1;i=0;i-)if(layiy=layi;if(dlayi=dx)break;if(x=y)return ans;for(i=logn-1;i=0;i-)if(layiy=layi;ans=maxi(ans,Maxxi

15、);x=laxi;ans=maxi(ans,maxi(Maxy0,Maxx0);return ans;int main()freopen(“cost.in“,“r“,stdin);freopen(“cost.out“,“w“,stdout);scanf(“%d%d“,for(i=1;i#include#include#includeusing namespace std;const int MaxN=20005,MaxM=100005;struct LinkTypeint a,b,c;冲刺 NOIP2011 八校联军复赛模拟二(巴蜀中学) 提高组第 11 页 LinkType wMaxM,eM

16、axM,tMaxN,qMaxN,rMaxN;int heMaxM,hqMaxN,hrMaxN;int fatherMaxN,mvMaxN,markMaxN;int ansMaxN;int N,M,Q,e0=0,q0=0,r0=0;void Addq(int x,int y,int z) q0+; qq0.a=y; qq0.b=hqx; hqx=q0; qq0.c=z;void Adde(int x,int y,int z) e0+; ee0.a=y; ee0.b=hex; hex=e0; ee0.c=z;void Addr(int x,int y) r0+; rr0.a=y; rr0.b=hr

17、x; hrx=r0;void Read() int i;scanf(“%d%d“,for(i=1;i#include #include using namespace std;const int maxn = 100009+10009;struct arrint x,y,z;emaxn;int depmaxn,premaxn22,famaxn,two22,n,m,q,vmaxn;struct cmpbool operator ()(const arr p,const arr q) return p.z =1; i-)depi = depprei0+1;for (int i=0; i depy)

18、 for (int i=20; i=0; i-)if (twoi depx) for (int i=20; i=0; i-)if (twoi=depy-depx) y = preyi; break;冲刺 NOIP2011 八校联军复赛模拟二(巴蜀中学) 提高组第 14 页 elseif (x != y) for (int i=1; i=20; i+)if (prexi=preyi) x = prexi-1; y = preyi-1; break; return x;void conect(int x,int y) prey0 = x; int find(int x)if (fax=x) ret

19、urn x;fax = find(fax);return fax;int main()freopen(“cost.in“,“r“,stdin);freopen(“cost.out“,“w“,stdout);two0 = 1;for (int i=1; i=20; i+) twoi = twoi-1*2;scanf(“%d%dn“,for (int i=1; i=m; i+)scanf(“%d%d%dn“,sort(e+1,e+m+1,cmp();for (int i=1; i=n+m; i+) fai = i;for (int i=1; i=m; i+)if (find(ei.x)!=find(ei.y)v+n = ei.z;int x = find(ei.x);int y = find(ei.y);fax = n; fay = n;conect(n,x); conect(n,y);冲刺 NOIP2011 八校联军复赛模拟二(巴蜀中学) 提高组第 15 页 prep();scanf(“%dn“,for (int i=1; i=q; i+)int x,y;scanf(“%d%dn“,int tmp = iask(x,y);printf(“%dn“,vtmp);return 0;

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报