欢迎来到天天文库
浏览记录
ID:38684207
大小:27.50 KB
页数:4页
时间:2019-06-17
《聪明的KK【河南2010ACM试题及答案】》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、聪明的kk时间限制:1000ms
2、 内存限制:65535KB难度:3描述聪明的“KK”非洲某国展馆的设计灵感源于富有传奇色彩的沙漠中陡然起伏的沙丘,体现出本国不断变换和绚丽多彩的自然风光与城市风貌。展馆由五部分组成,馆内影院播放名为《一眨眼的瞬间》的宽银幕短片,反映了建国以来人民生活水平和城市居住环境的惊人巨变。可移动“沙丘”变戏法的灵感源于其独特而雄伟的自然景观——富于传奇色彩的险峻沙丘。宏伟的结构、可循环的建材,与大自然相得益彰。环绕一周,发现它正是从沙丘那不断变换的形态中汲取灵感的。外形逼真到无论从哪个角度去观察,都能清楚地辨识出沙丘的特征。它“坡面”高达20米,微风吹
3、来,你是否感觉到沙的流动?用手去触碰,却发现原来是“魔术戏法”。它表面的不锈钢面板呈现出一种富于变幻的色彩,从不同角度观察,呈现不同色泽,由此来模仿流动沙丘的光感。走进第三展厅有一个超大的屏幕,通过奇妙的特效,让观众犹如亲身来到浩瀚的沙漠。更为奇妙的是,只见一个小动物“KK”正从沙漠区域(矩形)的左上角沿着向右或向下的方向往右下角跑去。KK太聪明了,它居然能在跑的过程中会选择吃掉尽可能多的虫子线路。你知道它吃掉多少虫子吗?输入第一行:NM(1≤NM≤200≤Xij≤500(i=1,2„.N,j=1,2„,M))表示沙漠是一个N*M的矩形区域接下来有N行:每行有M个正整数,Xi1
4、Xi2……Xim表示各位置中的虫子数(单个空格隔开)假设“KK”只能向右走或向下走。输出输出有一个整数,表示“KK”吃掉最多的虫子数。样例输入34312853461023样例输出24来源第三届河南省程序设计大赛/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////我的
5、算法#include"stdio.h"inta[20][20];intN;intM;intMax;intSum;voidfunc(int,int);intmain(){ scanf("%d%d",&N,&M); inti,j; for(i=0;i6、7、j==M) return; Sum+=a[8、i][j]; if(Sum>Max) Max=Sum; func(i,j+1); func(i+1,j); Sum-=a[i][j];}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////可通过算法#includeusingnamespacestd;inta[21][21];intm[21][21];main(){ intN9、,M; cin>>N>>M; for(inti=1;i<=N;i++) { for(intj=1;j<=M;j++) cin>>a[i][j]; } m[1][1]=a[1][1]; for(inti=2;i<=M;i++) m[1][i]=m[1][i-1]+a[1][i]; for(inti=2;i<=N;i++) m[i][1]=m[i-1][1]+a[i][1]; for(inti=2;i<=N;i++) for(intj=2;j<=M;j++) { if(m[i-1][j]>m[i][j-1]) m[i][j]=m[i-1][j]+a[i][j10、]; else m[i][j]=m[i][j-1]+a[i][j]; } cout<
6、
7、j==M) return; Sum+=a[
8、i][j]; if(Sum>Max) Max=Sum; func(i,j+1); func(i+1,j); Sum-=a[i][j];}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////可通过算法#includeusingnamespacestd;inta[21][21];intm[21][21];main(){ intN
9、,M; cin>>N>>M; for(inti=1;i<=N;i++) { for(intj=1;j<=M;j++) cin>>a[i][j]; } m[1][1]=a[1][1]; for(inti=2;i<=M;i++) m[1][i]=m[1][i-1]+a[1][i]; for(inti=2;i<=N;i++) m[i][1]=m[i-1][1]+a[i][1]; for(inti=2;i<=N;i++) for(intj=2;j<=M;j++) { if(m[i-1][j]>m[i][j-1]) m[i][j]=m[i-1][j]+a[i][j
10、]; else m[i][j]=m[i][j-1]+a[i][j]; } cout<
此文档下载收益归作者所有