巨佬们,快来帮帮我这个新手小白!!

题目描述:
给一张长为a,宽为b的桌子。设有无数张半径为r的圆形纸片。有两个人爱丽丝和鲍勃在桌子上放纸片,之前已放好的纸片不能挪动位置,纸片在放的时候不能相交但可以外切且不能超过桌子的边界,谁放不了谁就输了。问先放的人是否一定能赢,若是输出“Alice win”,否则输出“Bob win”。

输入格式:
输入一行,包含三个整数a,b,r

输出格式:
输出一行,如果Alice能赢输出“Alice win”,否则输出“Bob win”。

样例输入1:
5 5 2

样例输出1:
Alice win

样例输入2:
6 7 4

样例输出2:
Bob win

约定:
1<=a,b,r<=100

提示:
第一个样例,第一个人放了一个圆之后,第二个人就不能放了

第二个样例,第一个人连一个圆都放不下

3 个赞

把这个问题分为两种情况:

  • 第一步可以放置

  • 第一步不可以放置

首先,显然,如果第一步不可以放置, Bob 赢。

否则,第一个人把圆放在正中央,后面中心对称仿照对方放圆,Alice 赢。

(因为据说你们普及都爱抄代码,所以不妨代码了)

6 个赞

????

5 个赞

谁传的谣言??

5 个赞

第一个我会,第二个咋写

3 个赞

我写过,但到中间我写不下去了

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,r;
    cin>>a>>b>>r;
    if(a/(r*2)==1){cout<<"Alice win";}
    if(a/(r*2)<1){cout<<"Bob win";}
    if(a*b/(r*2)*(r*2)%2!=0){cout<<"Alice win";}
    if(a*b/(r*2)*(r*2)%2==0){cout<<"Bob win";}
    return 0;
}
4 个赞

第二个你就判 n 和 m 是否同时大于直径

3 个赞

无差别攻击,建议苏珊

3 个赞

4 个帖子被合并到现有话题中:垃圾站/废贴集中

听我的,别删

5 个赞

这么简单的题,直接判断 n 和 m 是否同时大于直径即可

#include<bits/stdc++.h>
using namespace std;
int a,b,r;
int main() {
	cin>>a>>b>>r;
	if(a>=2*r&&b>=2*r){
		cout<<"Alice win";
	}
	else{
		cout<<"Bob win";
	} 
	return 0;
}
2 个赞

1 个帖子被合并到现有话题中:垃圾站/废贴集中

5 个帖子被合并到现有话题中:垃圾站/废贴集中