首页 ACM程序设计试题及参考答案

ACM程序设计试题及参考答案

举报
开通vip

ACM程序设计试题及参考答案ACM程序设计试题及参考答案 猪的安家 Andy和Mary养了很多猪。他们想要给猪安家。但是Andy没有足够的猪圈,很多猪只能够在一个猪圈安家。举个例子,假如有16头猪,Andy建了3个猪圈,为了保证公平,剩下1头猪就没有地方安家了。Mary生气了,骂Andy没有脑子,并让他重新建立猪圈。这回Andy建造了5个猪圈,但是仍然有1头猪没有地方去,然后Andy又建造了7个猪圈,但是还有2头没有地方去。Andy都快疯了。你对这个事情感兴趣起来,你想通过Andy建造猪圈的过程,知道Andy家至少养了多少头猪。 输入 ...

ACM程序设计试题及参考答案
ACM程序设计试题及参考答案 猪的安家 Andy和Mary养了很多猪。他们想要给猪安家。但是Andy没有足够的猪圈,很多猪只能够在一个猪圈安家。举个例子,假如有16头猪,Andy建了3个猪圈,为了保证公平,剩下1头猪就没有地方安家了。Mary生气了,骂Andy没有脑子,并让他重新建立猪圈。这回Andy建造了5个猪圈,但是仍然有1头猪没有地方去,然后Andy又建造了7个猪圈,但是还有2头没有地方去。Andy都快疯了。你对这个事情感兴趣起来,你想通过Andy建造猪圈的过程,知道Andy家至少养了多少头猪。 输入 输入包含多组测试数据。每组数据第一行包含一个整数n (n <= 10) – Andy建立猪圈的次数,解下来n行,每行两个整数ai, bi( bi <= ai <= 1000), 表示Andy建立了ai个猪圈,有bi头猪没有去处。你可以假定(ai, aj) = 1. 输出 输出包含一个正整数,即为Andy家至少养猪的数目。 样例输入 3 3 1 5 1 7 2 样例输出 16 答案: // 猪的安家.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "iostream.h" void main() { int n; int s[10][2]; bool r[10]; char ch; cout<<"请输入次数:"<>n; for (int i=0;i>s[i][0]>>ch>>ch>>s[i][1]; } for (i=0;i<10;i++) r[i]=true; for (int sum=1;;sum++) { for (i=0;i using namespace std; #define MAX_N 30 #define MAX_M 30000 void squareNumber(int *A,int *B,int N,int M); void main() { int A[MAX_N]; int B[MAX_M]; int N,M; cin>>N>>M; int i; while (N!=0||M!=0) { for (i=0;i>A[i]; } for (i=0;i>B[i]; } squareNumber(A,B,N,M); cin>>N>>M; } } void squareNumber(int *A,int *B,int N,int M) { int i,j,k,t; bool flag; int num[MAX_N]={0}; int temp=1; int len_max=0; int r=0; int f=0; for (i=0;i 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 输入包含多组数据。 每组数据的第一行有六个整数W (1 <= W <= 20), H (1 <= H <= 20), P (1 <= P <= 10), Q (1<= Q <= 10), R (1 <= R <= 10), M (0 <= M <= 5). 迷宫是由一个W*H的矩形区域构成。M表示怪物的数量。Andy每个单位时间可以移动到相邻的4个格中,当然,必须得保证目标格在矩形区域中。默认的起始时间是0。与怪物战斗不会花费额外的时间。 其后H行每行严格包含W个字符。用如下的各字符表示这个迷宫的地图: [#]表示一堵墙(Andy是不会穿墙术的) [.] Marks an empty space, into which you can move.表示一块空地。 [S]表示Andy的初始位置。 [E]表示迷宫的入口。 [0]表示各怪物。 [A]表示属性增加地点。(使用次数仅限于一次) 其后一行有三个整数,表示Andy的能量,攻击力,和防御力。 其后M行,每行有四个整数,表示怪物的编号,和这个怪物的各属性。 输出 对于每组输入数据,输出 能量/耗时 的最大值,并保留4位小数。如果Andy不能到达出口,输出“impossible”。数据之间无空行。 样例输入 6 17 7 5 4 3 ################# ##E......#......# #A#....#.0.##.#B# #1###########2### #.S............C# ################# 100 59 10 0 23 48 0 1 65 41 0 2 20 27 0 样例输出 3.7037 答案: #include #include #include using namespace std; #define MAX_MAP_SIZE 20 #define MAX_MON_SIZE 5 #define Time 100 int W,H,P,Q,R,M; char map[MAX_MAP_SIZE][MAX_MAP_SIZE]; typedef struct Andy { int p; int q; int r; } *pAndy; typedef struct Monster { int id; int p; int q; int r; }*pMonster; typedef struct Node { int x; int y; }* pNode; Andy andy; Monster mons[MAX_MON_SIZE]; char keywords[4+MAX_MON_SIZE]; int shortestPath(pNode path,int len_path,char des,char * revs,int len_rev,int time); float escape(char *revs,int len_revs,int time,Andy andy); bool getPosition(char ch,pNode p); void main() { ifstream in("data.in"); in>>W>>H>>P>>Q>>R>>M; int i; for (i=0;i>map[i]; //cout<>andy.p>>andy.q>>andy.r; for(i=0;i>mons[i].id; in>>mons[i].p; in>>mons[i].q; in>>mons[i].r; } in.close(); keywords[0]='E'; keywords[1]='A'; keywords[2]='B'; keywords[3]='C'; for (i=0;ix][p->y]==des) //ÕÒµ½Ä¿?ê { return len_path-1; } if (time<1) //ûÓÐÊ? ¼ä¼ÌÐøÑ?ÕÒ { return -1; } int i,j,k; for (i=0;ix][p->y]==revs[i]) { Node nodes[4]={{p->x,p->y-1},{p->x,p->y+1},{p->x-1,p->y},{p->x+1,p->y}}; int min=W*H; int temp; int bid=-1; bool flag; for (j=0;j<4;j++) { flag=true; for (k=0;k0&&tempx=i; p->y=j; return true; } } } return false; } float escape(char *revs,int len_revs,int time,Andy andy) { int i,j; int tempTime; float max=-1; float temp; Node path[MAX_MAP_SIZE*MAX_MAP_SIZE]; int len_path=1; Andy newAndy; bool flag; for (i=0;i<4+M;i++) { flag=false; for (j=1;j0) { if (keywords[i]=='E') //ÕÒµ½³ö¿Ú { temp=(float)andy.p/(Time-time+tempTime); /*cout<r) { newAndy.p=-1; //¸ù? ¾¹ý²»È¥£¬¹ÖÊÞ&mi cro;Ä?ÀÓùÌ«¸ß } else if (pMon->qq-andy.r)*(pMon->p/(andy.q-pMon->r)); } newAndy.q=andy.q; newAndy.r=andy.r; } revs[len_revs]=keywords[i]; temp=escape(revs,len_revs+1,time-tempTime,newAndy); } max=max>temp? max:temp; } } return max; }
本文档为【ACM程序设计试题及参考答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_601191
暂无简介~
格式:doc
大小:41KB
软件:Word
页数:22
分类:互联网
上传时间:2017-10-01
浏览量:85