预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

更多企业学院:?中小企业管理全能版?183套讲座+89700份资料?总经理、高层管理?49套讲座+16388份资料?中层管理学院?46套讲座+6020份资料?国学智慧、易经?46套讲座?人力资源学院?56套讲座+27123份资料?各阶段员工培训学院?77套讲座+324份资料?员工管理企业学院?67套讲座+8720份资料?工厂生产管理学院?52套讲座+13920份资料?财务管理学院?53套讲座+17945份资料?销售经理学院?56套讲座+14350份资料?销售人员培训学院?72套讲座+4879份资料安徽省2021“达内杯〞程序设计大赛解题报告A-幸运数字此题只需题目描述解即可,没有任何算法和trick...#include<iostream>usingnamespacestd;intmain(){intn;while(scanf("%d",&n)!=EOF){intt=n,s=0;while(t){s+=t%10;t/=10;}if(n%s==0)printf("yes\n");elseprintf("no\n");}return0;}B-转换二叉树首先根据先序序列和中序序列建立二叉树,然后按要求先序遍历一遍二叉树即可。当然,由于建树过程实际也是在先序遍历二叉树,所以可以不用实际建树,只是模拟那个过程,然后再过程中输出即可。建树过程简单的说就是以先序序列定根节点,以中序序列和和根节点定左右子树。#include<iostream>#include<string.h>usingnamespacestd;constintmaxn=27;intN;charPreOrder[maxn],InOrder[maxn];voidDFS(intPreStart,intPreEnd,intInStart,intInEnd){intpos;for(pos=InStart;PreOrder[PreStart]!=InOrder[pos];pos++){}if(pos!=InStart){printf("(");DFS(PreStart+1,PreStart+pos-InStart,InStart,pos-1);printf(")");}printf("%c",PreOrder[PreStart]);if(pos!=InEnd){printf("(");DFS(PreStart+pos-InStart+1,PreEnd,pos+1,InEnd);printf(")");}}intmain(){inti,len;scanf("%d",&N);getchar();for(i=0;i<N;i++){scanf("%s%s",PreOrder,InOrder);len=strlen(PreOrder);DFS(0,len-1,0,len-1);printf("\n");}return0;}C-取石子首先给出必胜结论,只要n!=2^x,那么先手必胜。证明:假设n=12,将它转换为二进制那么为'1100'。先手第一次取只需把二进制中从低位数起第一个'1'取走即可。在这个例子中,先手留给后手石子数的二进制为'1000'。这样后手能取的石子数的二进制范围为'0001'-'0100',无论后手怎么取,它都不可能把所有数字都取完,而且取了之后剩下的石子数的二进制后3位肯定有一个'1'。先手只需再次将从低位数起的第一个'1'取走即可重复上述过程直至游戏结束。而如果先手第一次面对的石子数是2^x个,由于他第一次不能把石子都取完,所以他无论如何取都会把上述必胜状态留给对手。同样根据上述证明方法可以证明如果先手必胜,那么他第一次取的最少石子数就是石子数的二进制中,从低位数起的第一个'1'。#include<iostream>usingnamespacestd;intmain(){intn,t;while(scanf("%d",&n)!=EOF){t=1;while(!(n&1)){n>>=1;t<<=1;}if(n==1)printf("lose\n");elseprintf("win%d\n",t);}return0;}D-关键词统计这题最正确解法是先建立单词的字典树,然后再把文章中的单词一个一个抠出来进行匹配,时间复杂度是O(m+n)。m是文章长度,n是单词总长度。但是省赛时我们数据放得比拟松,只要是把单词一个一个抠出来比拟的都能过。#include<iostream>usingnamespacestd;constintmaxn=10162;constintmaxm=200005;structNode{intnext[26];intindex;voidinit(){memset(next,-1,sizeof(next));index=-1;}}tire[maxn*5];cha