csdn 摇一摇(燕山大学2014程序设计大赛 )

摇一摇

题目详情:

C瓜哥哥最近很无聊,用微信的“摇一摇”找妹纸聊天,可是“妹纸”不一定真的是妹纸,有的男的也假装妹纸,不过经过C瓜哥哥的潜心研究,他发现这样一个

规律:ID号的字符种数为奇数的为男性,为偶数的是女性,这里字符不能算重复的。

输入描述:

首先输入一个数字T,表示接下来有T组数据输入。

接下来是T组字符串,字符串长度不超过1000,表示C瓜哥哥摇出来的微信ID号。

输出描述:

如果C瓜哥哥摇出来是妹纸就输出"Hi,girl!",否则输出"Cheater!"。

答题说明:

样例输入:

2

wjmzbmr

stvenkplus

样例输出:

Hi,girl!

Cheater!

用个数组哈希一下就好了,字符不一定全为字母。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int a[1000];
char s[2500];
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%s",s);
        memset(a,0,sizeof(a));
        int n=strlen(s);
        for(int i=0;i<n;i++)
        {
            a[s[i]-'A']++;
        }
        int cur=0;
        for(int i=0;i<500;i++)
        if(a[i])
        cur++;
        if(cur%2==0)
        printf("Hi,girl!\n");
        else
        printf("Cheater!\n");
    }
    return 0;
}
时间: 2024-11-08 19:32:12

csdn 摇一摇(燕山大学2014程序设计大赛 )的相关文章

2014年百度之星程序设计大赛 - 资格赛 1002 Disk Schedule(双调欧几里得旅行商问题)

Problem Description 有很多从磁盘读取数据的需求,包括顺序读取.随机读取.为了提高效率,需要人为安排磁盘读取.然而,在现实中,这种做法很复杂.我们考虑一个相对简单的场景.磁盘有许多轨道,每个轨道有许多扇区,用于存储数据.当我们想在特定扇区来读取数据时,磁头需要跳转到特定的轨道.具体扇区进行读取操作.为了简单,我们假设磁头可以在某个轨道顺时针或逆时针匀速旋转,旋转一周的时间是360个单位时间.磁头也可以随意移动到某个轨道进行读取,每跳转到一个相邻轨道的时间为400个单位时间,跳转

2014年百度之星程序设计大赛 - 初赛(第一轮) hdu Grids (卡特兰数 大数除法取余 扩展gcd)

题目链接 分析:打表以后就能发现时卡特兰数, 但是有除法取余. f[i] = f[i-1]*(4*i - 2)/(i+1); 看了一下网上的题解,照着题解写了下面的代码,不过还是不明白,为什么用扩展gcd, 不是用逆元吗.. 网上还有别人的解释,没看懂,贴一下: (a / b) % m = ( a % (m*b)) / b 笔者注:鉴于ACM题目特别喜欢M=1000000007,为质数: 当gcd(b,m) = 1, 有性质: (a/b)%m = (a*b^-1)%m, 其中b^-1是b模m的逆

2014年百度之星程序设计大赛 - 初赛(第二轮)

1001 暴力 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int maxn = 100100; int ll[maxn], rr[maxn]; struct node { int x, y, bj; }e[maxn]; int main() { int cas = 1; int T; scanf("%d", &T);

2014年百度之星程序设计大赛 - 资格赛 1004 -- Labyrinth

Labyrinth Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1453    Accepted Submission(s): 500 Problem Description 度度熊是一只喜欢探险的熊,一次偶然落进了一个m*n矩阵的迷宫,该迷宫只能从矩阵左上角第一个方格开始走,只有走到右上角的第一个格子才算走出迷宫,每一次只能走一格,

2014年百度之星程序设计大赛 - 初赛(第二轮)Chess

题目描述:小度和小良最近又迷上了下棋.棋盘一共有N行M列,我们可以把左上角的格子定为(1,1),右下角的格子定为(N,M).在他们的规则中,"王"在棋盘上的走法遵循十字路线.也就是说,如果"王"当前在(x,y)点,小度在下一步可以移动到(x+1, y), (x-1, y), (x, y+1), (x, y-1), (x+2, y), (x-2, y), (x, y+2), (x, y-2) 这八个点中的任意一个. 小度觉得每次都是小良赢,没意思.为了难倒小良,他想出

2014年百度之星程序设计大赛 - 资格赛 1001 Energy Conversion

Energy Conversion Problem Description 魔法师百小度也有遇到难题的时候-- 现在,百小度正在一个古老的石门面前,石门上有一段古老的魔法文字,读懂这种魔法文字需要耗费大量的能量和大量的脑力. 过了许久,百小度终于读懂魔法文字的含义:石门里面有一个石盘,魔法师需要通过魔法将这个石盘旋转X度,以使上面的刻纹与天相对应,才能打开石门. 但是,旋转石盘需要N点能量值,而为了解读密文,百小度的能量值只剩M点了!破坏石门是不可能的,因为那将需要更多的能量.不过,幸运的是,作

2014年百度之星程序设计大赛 - 资格赛 1004 Labyrinth(Dp)

# -*- coding: utf-8 -*- """ Created on Fri May 16 17:24:05 2014 @author: lifeix """ #快速排序 import sys import random length = 30 def qsort(arr,left,right): lp = left rp = right if lp == rp:return while True: while arr[lp] >=

2014年百度之星程序设计大赛 资格赛第一题 (longlong)

解题思路: 只要看(A-V)*K 这个公式的更新值是否大于等于A ,大于的话继续循环,否则报错 注意一点,数据会爆int WA代码: #include<stdio.h> int main(){ long long n ,m, v, k; int t; scanf("%d",&t); while(t--){ scanf("%lld%lld%lld%lld",&n,&m,&v,&k); int cnt = 0; whi

2014年百度之星程序设计大赛 - 资格赛

主要是卡了一下 接下来2题还在做 都有思路 1001 考虑完全就行了 #include <cstdio> #include <cstring> using namespace std; int main() { int T; scanf("%d", &T); while(T--) { __int64 n, m, v, k; scanf("%I64d %I64d %I64d %I64d", &n, &m, &v,