当前位置:首页 > ACM程序设计 赛题样例
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
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 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 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;
共分享92篇相关文档