10491: 来几只咸鱼 —— 郑州大学第十届ACM大学生程序设计竞赛正式赛

题目链接:http://acm.zzu.edu.cn:8000/problem.php?id=10491


10491: 来几只咸鱼

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 577   Solved: 42
[ Submit][ Status][ Web Board]

Description

 从前有座山,山上有座庙,庙里有个老和尚和一个小和尚,有一天,老和尚对小和尚说: 西墙有咸鱼,头齐尾不齐。追星十二载,粉圈未有名。大炮扛不住,写文常死机,闲来买买买,奈何工资低。花痴有微博,追剧aqy,早晚练酷跑,弹幕刷bili。又到黄金周,未有出游意,埋头苦搬砖,摸鱼看手机。刷新复刷新,饱总杳无音,专注打广告,半月已有余。满屏挖坟匠,喟然长叹息。忽闻饱更博,平地惊雷起。垂目轻咬唇,素颜半解衣,皓腕佩名表,耳中明月玑。转评忙飙车,污言寄美意,复看众咸鱼,皆成老司机。

现在小和尚想知道,在所有的咸鱼中,挑选出一定数量的咸鱼,有奇数种情况还是有偶数种情况?

Input

 第一行代表数据的组数t,接下来输入t(0 < t <= 20)组数据

每一组输入都只有一行,包含两个数n(0 < n < 1e9)m(0 <= m <= n),其中n表示咸鱼的总数,m表示挑选的数量

Output

 对于每一组输入,它的输出包含一行,若是奇数,则输出输出”ODD”;否则,输出”EVEN”

Sample Input

23 14 2

Sample Output

ODDEVEN

HINT

Source

[ Submit][ Status][ Web Board]



题目解析:   这个就是组合数的奇偶性,比赛时一直用Lucas WA 数次,没想到其他队友用Lucas 把 mod p, p改为 2 过了,说多了都是泪,,,,(还是自己太弱) 其实就是看分子分母看谁含2的个数多,n! 含2 个数为 n - 它二进制中含1 的个数(自己百度证明), 如果 (n&m) == m说明分子分母含2个数相等,为奇数;否则m与n-m二进制1有重复,意味着多减了,故分母含2个数多,为偶数


借鉴大牛博客:http://blog.csdn.net/millky/article/details/3206730


#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cctype>
#include<cmath>
#define N 110
const int mod = 1e9 + 7;
const int inf = 0x3f3f3f3f;
typedef long long LL;
using namespace std;

int main()
{
    int t;
    LL m, n;
    scanf("%d", &t);
    while(t--)
    {
        scanf("%lld%lld", &n, &m);
        if((n & m) == m) printf("ODD\n");
        else printf("EVEN\n");
    }
    return 0;
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值