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<