HDU 2188 문 천 대지 진 사망 동포 512 추모 - 자원 봉사자 선발 바 시 보 혁

3186 단어 C++ACMHDU
512 문 천 대지 진 사망 동포 추모 - 자원 봉사자 선발
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7808    Accepted Submission(s): 4966
Problem Description
쓰 촨 동포 들 이 입 은 재난 에 대해 전 국민 이 잇달아 원조 의 손길 을 뻗 었 다. 거의 모든 성, 시 에서 대량의 구조 인원 을 파견 했다. 그 중에서 재 해 를 구 하 는 무장 경찰 부대, 치료 와 방역 의 의료진, 그리고 심리 적 소통 을 하 는 심리학 전문 가 를 포함한다.요구 에 따라 우리 학교 에 도 재해 지역 에 가서 재 해 를 구 하 는 정원 이 있 는데 많은 교사 와 학생 들 의 신청 이 활발 하기 때문에 학 교 는 어 쩔 수 없 이 선발 하여 최후 의 인선 을 결정 해 야 한다.여러 차례 의 심 사 를 거 쳐 형세 가 점점 밝 아 지고 마지막 정원 은 '임 대' 와 '서 대' 사이 에서 생 길 것 이다.그러나 공교롭게도 두 사람의 이력 서 는 거의 똑 같 아 MC 선발 8600 명 을 난처 하 게 만 들 었 다.어 쩔 수 없 이 그 는 기부금 을 통 해 두 사람 이 누가 입선 할 수 있 을 지 결정 하기 로 했다.
선발 규칙 은 다음 과 같다.
1. 최초의 기부금 상 자 는 비어 있 습 니 다.
2. 두 사람 이 돌아 가면 서 기부 하고 매번 기부금 액 은 반드시 정수 이 며 1 인당 매번 기부금 은 최대 m 위안 (1 < = m < = 10) 을 초과 하지 않 습 니 다.
3. 가장 먼저 총 기부 액 이 n 위안 (0 < n < 10000) 을 초과 하 는 측 을 승자 로 하면 재해 지역 에 직접 가서 서 비 스 를 할 수 있다.
우 리 는 두 사람 이 모두 자원 봉사자 명단 에 뽑 히 고 싶 어 하 는 것 을 알 고 있 습 니 다. 그리고 모두 매우 똑똑 한 사람 입 니 다. 임 팀 이 먼저 기부 한다 고 가정 하면 누가 마지막 명단 에 뽑 힐 수 있 는 지 판단 해 주 십시오.
 
Input
입력 데 이 터 는 먼저 하나의 정수 C 를 포함 하고 C 조 테스트 사례 를 포함 하 는 것 을 나타 내 며 그 다음 에 C 행 데 이 터 를 포함 합 니 다. 각 줄 은 두 개의 정수 n, m, n 과 m 의 의 미 를 포함 하고 위 에서 언급 한 규칙 을 참조 합 니 다.
 
Output
각 그룹의 테스트 데이터 에 대해 임 팀 이 입선 할 수 있다 면 문자열 'Grass' 를 출력 하 십시오. 서 팀 이 입선 할 수 있다 면 문자열' Rabbit '를 출력 하 십시오. 각 인 스 턴 스 의 출력 은 한 줄 을 차지 합 니 다.
 
Sample Input

   
   
   
   
2 8 10 11 10

 
Sample Output

   
   
   
   
Grass Rabbit

 
Author
lcy
 
Source
2008 - 06 - 18 기말고사 인 쓰 촨 파 이 팅!중국 화 이 팅!
 
누드렁이
1. 문제 모델: n 개의 물건 만 있 고 두 사람 은 돌아 가면 서 이 물건 에서 물건 을 찾 습 니 다. 매번 에 적어도 하 나 를 취하 고 최대 m 개 를 취하 고 마지막 에 빛 을 얻 는 사람 이 이 기 는 것 을 규정 합 니 다.
2. 해결 방향: n = m + 1 일 때 한 번 에 최대 m 개 만 얻 을 수 있 기 때문에 선 취 자가 몇 개 를 가 져 가든 지 간 에 후 취 자 는 한 번 에 남 은 물건 을 가 져 갈 수 있 고 후 자 는 이 길 수 있 기 때문에 한편 으로 는 n% (m + 1) = 0 일 때 반드시 패 하 는 상황 에 직면 한다.그래서 n = (m + 1) * r + s, (r 는 임 의 자연수, s ≤ m) 시, 선 취 자가 s 개 아 이 템 을 가 져 가 려 면, 후 취 자가 x (≤ m) 개 를 가 져 가면 선 취 자가 m + 1 - k 개 를 가 져 가 고, 결 과 는 (m + 1) 개 (r - 1) 개 를 남 겨 두 고, 이후 에 이런 취 법 을 유지 하면 선 취 자 는 반드시 승리 한다. 한 마디 로 상대방 에 게 (m + 1) 의 배 수 를 남 겨 두 면 마지막 에 이 길 수 있다.
3. 변형: 조건 이 변 하지 않 고 마지막 에 빛 을 얻 는 사람 이 지 는 것 으로 바 꿉 니 다.
결론: (n - 1)% (m + 1) = = 0 시 이후 에 승리 합 니 다. ACcode:
#include <map>
#include <queue>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
#define maxn 100
using namespace std;
int main(){
    int n,m,loop=1,t;
    scanf("%d",&t);
    while(t--){
        scanf("%d%d",&n,&m);
        if(m>n||n%(m+1)!=0)
            printf("Grass
"); else printf("Rabbit
"); } return 0; }

좋은 웹페이지 즐겨찾기