- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
noipXX普及组解题报告
NOIPXX普及组解题报告 From贴吧idu007zzt 金币 国王将金币作为工资,发放给忠诚的骑士。 第一天骑士收到一枚金币;之后两天,每天收到两枚金币;之后三天,每天收到三枚金币;之后四天,每天收到四枚金币,以此类推;这种工资发放模式会一直延续下去,当连续N天收到N枚金币后,骑士会在之后的N+1天,每天收到N+1枚金币。 请计算前K天里,骑士一共获得了多少金币。 输入格式 输入包含一个正整数K,表示发放金币的天数。 输出格式 输出一个正整数,即骑士收到的金币数。 样例1 样例输入1 6 样例输出1 14 样例2 样例输入2 1000 样例输出2 29820 对于全部数据,1≤K≤10000。 这种题目,简直就属于水题狂做的那种。不多说,附C++代码。 #include intk,ans=0; intmain(){ freopen(,r,stdin); freopen(,w,stdout); scanf(%d,k); inti=1; while(k){ if(k=i){ ans+=i*i; k-=i; }else{ ans+=k*i; k=0; } i++; } printf(%d\n,ans); return0; } 扫雷游戏 扫雷游戏是一款十分经典的单机小游戏。 在n行m列的雷区中有一些格子含有地雷,其他格子不含地雷。 玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。 游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。 现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。 注:一个格子的周围格子包括其上、下、左、右、左上、左下、右上、右下八个方向上与之直接相邻的格子。 输入格式 第一行用一个空格隔开的两个整数n和m,分别表示雷区的行数和列数。接下来n行,每行m个字符,描述了雷区中的地雷分布情况。字符?表示相应的格子是地雷格,字符(?)`表示相应的格子是非地雷格子。相邻字符之间无分隔符。 输出格式 输出文件包括n行,每行m个字符,描述了整个雷区。用?表示地雷格,用周围地雷格数表示非地雷格。相邻字符之间无分隔符。 样例1 样例输入1 33 *?? ??? ?*? 样例输出1 *10 221 1*1 样例2 样例输入2 23 ?*? *?? 样例输出2 2*1 *21 对于所有的数据,1≤n≤100,1≤m≤100。 又是水题一道,请允许我吐槽一下pj组的难度……别的没什么,注意字符的读入。附C++代码。 #include usingnamespacestd; intmatrix[105][105]; charstr[105]; intdir[3]={0,1,-1}; intn,m; intmain(){ freopen(,r,stdin); freopen(,w,stdout); scanf(%d%d,n,m); inti,j,k,t; for(i=1;i intn,m,i,j,x,y,a[55][55]; intmain(){ scanf(%d,n);m=n*n;x=1;y=(n+1)/2;a[x][y]=1; for(i=2;i #include #defineN usingnamespacestd; intn,i,tm,tp,now,ans,sz,to[N],dfn[N],low[N],st[N];boolis[N]; voiddfs(intx){ dfn[x]=low[x]=++tm;st[++tp]=x;is[x]=1; inty=to[x]; if(!dfn[y])dfs(y),low[x]=min(low[x],low[y]); elseif(is[y])low[x]=min(low[x],dfn[y]); if(low[x]==dfn[x]){ for(sz=now=0;now!=x;)now=st[tp--],sz++; if(sz1)ans=min(ans,sz); } } intmain(){ for(ans=1e9,scanf(%d,n),i=1;i #include #include #definemxh usingnamespacestd; intans,T,n,i,x
文档评论(0)