云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > ACM程序设计 赛题样例

ACM程序设计 赛题样例

  • 62 次阅读
  • 3 次下载
  • 2025/5/1 22:32:09

if(i==0); else {

if((i+1)%2==0) a[i]=0; else a[i]=1; sum=sum+a[i]; } }

a[0]=m-sum;

printf(\可得到:%d\\n\,a[0]); }

void main() {

int n,m; //n国家数, m油田数 printf(\); scanf(\,&n,&m); hanshu(n,m); }

三色二叉树

一棵二叉树可以按照如下规则表示成一个由0、1、2组成的字符序列,我们称之为“二叉树序列S”:

的任务是要对一棵二叉树的节点进行染色。每个节点可以被染成红色、绿色或蓝色。并且,一个节点与其子节点的颜色必须不同,如果该节点有两个子节点,那么这两个子节点的颜色也必须不相同。给定一棵二叉树的二叉树序列,请求出这棵树中最多和最少有多少个点能够被染成绿色。

输入输出格式

输入数据由多组数据组成。

每组数据仅有一行,不超过10000个字符,表示一个二叉树序列。 对于每组输入数据,输出仅一行包含两个整数,依次表示最多和最少有多少个点能够被染成绿色。

样例输入 1122002010

样例输出 5 2

无归之室

金字塔中有一个房间名叫“无归之室”。房间地面完全由相同的矩形瓷砖覆盖。房间里布满无数的机关和陷阱,这正是其名字的由来。考古队花了几年时间研究对策,最后他们想出了一个方案。一台遥控的机器人将被送入房间,解除所有机关,然后返回。为了不触动机关,机器人必须走在瓷砖的中心区域上,绝对不能碰到瓷砖的边缘。如果走错一步,机器人会被落下的岩石砸成薄饼。

当考古队正准备行动的时候,他们发现了一件可怕的事情:他们没有考虑到机器人携带的工具箱。由于机器人必须将工具箱放在地面上才能开始解除机关,工具箱不可碰到瓷砖的边缘。现在他们急需你编程判断工具箱可否放下。

输入格式

输入文件有多组数据组成。每组数据仅含一行A, B, X, Y (1<=A, B, X, Y<=50000,均为实数)。A, B为瓷砖的长和宽,X, Y为工具箱底面的长和宽(工具箱为长方体)。最后一组数据A=B=X=Y=0,标志文件结束,不需要处理。

输出格式

若工具箱能以某种方式放在地上,则输出”Escape is possible.”,否则输出”Box cannot be dropped.”。

样例输入 10 10 8 8 8 8 10 10 0 0 0 0

样例输出

Escape is possible. Box cannot be dropped.

#include #include using std::cin; using std::cout;

bool baifang(double a,double b,double x,double y) {

const double l=sqrt(x*x+y*y); if(l*l>a*a+b*b||y>b) return false; if(x

double n; n=acos(a/l)+m;

const double pi=3.14159265; if(n>pi/2) return false; n+=m;

if(l*sin(n)

int main() {

double a,b,x,y; while(cin>>a>>b>>x>>y) {

if(a==0&&b==0&&x==0&&y==0)break; bool k=baifang(a,b,x,y);

if (k) cout<<\<<'\\n'; else cout<<\<<'\\n'; } return 0; }

#include main() {

int a , b , x , y;

scanf(\,&a,&b,&x,&y);

while(a != 0 && b != 0 && x != 0 && y != 0) {

int min1 , max1 , min2, max2; max1 = (a > b) ? a:b; max2 = (x > y) ? x:y; min1 = (a < b) ? a:b; min2 = (x < y) ? x:y;

if(max1 > max2 && min1 > min2)printf(\); else printf(\); scanf(\,&a,&b,&x,&y); } }

青蛙的约会

Description

两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面。

我们把这两只青蛙分别叫做青蛙A和青蛙B,并且规定纬度线上东经0度处为原点,由东往西为正方向,单位长度1米,这样我们就得到了一条首尾相接的数轴。设青蛙A的出发点坐标是x,青蛙B的出发点坐标是y。青蛙A一次能跳m米,青蛙B一次能跳n米,两只青蛙跳一次所花费的时间相同。纬度线总长L米。现在要你求出它们跳了几次以后才会碰面。

Input

输入只包括一行5个整数x,y,m,n,L,其中x≠y < 2000000000,0 < m、n < 2000000000,0 < L < 2100000000。 Output

输出碰面所需要的跳跃次数,如果永远不可能碰面则输出一行\

Sample Input 1 2 3 4 5

Sample Output 4

#include #include #include using namespace std; bool O(long &n); void main() {

unsigned long X(0),Y(0),M(0),N(0),L(0),Num(1); cout << \请输入青蛙A的起跳点\\n\; cin >> X;

cout << \请输入青蛙B的起跳点\\n\; cin >> Y;

cout << \青蛙A能够跳的距离为\\n\; cin >> M;

cout << \青蛙B能够跳的距离为\\n\; cin >> N;

cout << \纬线总长为\\n\; cin >> L;

搜索更多关于: ACM程序设计 赛题样例 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

if(i==0); else { if((i+1)%2==0) a[i]=0; else a[i]=1; sum=sum+a[i]; } } a[0]=m-sum; printf(\可得到:%d\\n\,a[0]); } void main() { int n,m; //n国家数, m油田数 printf(\); scanf(\,&n,&m); hanshu(n,m); } 三色二叉树

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com