题意

3B16 魔法珠 0x3B「数学知识」练习

描述

Freda和rainbow是超自然之界学校(Preternatural Kingdom University,简称PKU)魔法学院的学生。为了展示新学的魔法,Ta们决定进行一场对弈~~~

起初Freda面前有n堆魔法珠,其中第i堆有ai颗。Freda和rainbow可以轮流进行以下操作:

1.选择n堆中魔法珠数量大于1的任意一堆。记该堆魔法珠的数量为p,p有b1、b2……bm这m个小于p的约数。

2.施展魔法把这一堆魔法珠变成m堆,每堆各有b1、b2……bm颗魔法珠。

3.选择这m堆中的一堆魔法珠,施展魔法令其消失。

注意一次操作过后,魔法珠的堆数会增加m-2,各堆中魔法珠数量的总和可能会发生变化。

当轮到某人操作时,如果每堆中魔法珠的数量均为1,那么ta就输了。

Freda和rainbow都采取最好的策略,从Freda开始。请你预测一下,谁能获胜呢?

输入格式

本题仅有一个测试点,包含多组数据,以EOF结尾。

每组数据的第一行包含一个整数n。

第二行包含n个整数ai。

输出格式

对于每组数据,在两人均采取最佳策略的前提下,若Freda能获胜,输出freda;若Rainbow能获胜,输出rainbow。

样例输入

3
2 2 2
3
1 3 5

样例输出

freda
rainbow

数据范围与约定

  • 1<=n<=100,1<=ai<=1000
        </article>

分析

这是一个公平组合游戏ICG,所以直接上SG函数即可。

总结一下,选一个走是mex,都要走是xor。

时间复杂度\(O(n^2)\)

代码

#include<bits/stdc++.h>
#define rg register
#define il inline
#define co const
template<class T>il T read(){
rg T data=0,w=1;rg char ch=getchar();
while(!isdigit(ch)) {if(ch=='-') w=-1;ch=getchar();}
while(isdigit(ch)) data=data*10+ch-'0',ch=getchar();
return data*w;
}
template<class T>il T read(rg T&x) {return x=read<T>();}
typedef long long ll; co int N=1001;
int n,sg[N];
int fj(int x,int*a){
int tot=a[1]=1;
for(int i=2;i*i<=x;++i)if(x%i==0){
a[++tot]=i;
if(i*i!=x) a[++tot]=x/i;
}
return tot;
}
int SG(int x){
if(sg[x]!=-1) return sg[x];
int a[N];
int tot=fj(x,a);
bool v[N];
memset(v,0,sizeof v);
for(int i=1,k;i<=tot;++i){
k=0;
for(int j=1;j<=tot;++j)
if(i!=j) k^=SG(a[j]);
v[k]=1;
}
int t=0;
while(v[t]) ++t;
return sg[x]=t;
}
int main(){
// freopen(".in","r",stdin),freopen(".out","w",stdout);
memset(sg,-1,sizeof sg);
sg[1]=0;
while(~scanf("%d",&n)){
int k=0;
for(int i=1;i<=n;++i) k^=SG(read<int>());
puts(k?"freda":"rainbow");
}
return 0;
}

CH3B16 魔法珠的更多相关文章

  1. JS魔法堂:不完全国际化&本地化手册 之 理論篇

    前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...

  2. Atitit.研发管理如何避免公司破产倒闭的业务魔咒

    Atitit.如何避免公司破产倒闭的业务魔咒 1. 大型公司的衰落或者倒闭破产案例1 1.1. 摩托罗拉1 1.2. 诺基亚2 1.3. sun2 2. 为什么他们会倒闭?? 常见的一些倒闭元素2 2 ...

  3. JS魔法堂:不完全国际化&本地化手册 之 实战篇

    前言  最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...

  4. WebComponent魔法堂:深究Custom Element 之 标准构建

    前言  通过<WebComponent魔法堂:深究Custom Element 之 面向痛点编程>,我们明白到其实Custom Element并不是什么新东西,我们甚至可以在IE5.5上定 ...

  5. WebComponent魔法堂:深究Custom Element 之 面向痛点编程

    前言  最近加入到新项目组负责前端技术预研和选型,一直偏向于以Polymer为代表的WebComponent技术线,于是查阅各类资料想说服老大向这方面靠,最后得到的结果是:"资料99%是英语 ...

  6. Sicily 1051: 魔板(BFS+排重)

    相对1150题来说,这道题的N可能超过10,所以需要进行排重,即相同状态的魔板不要重复压倒队列里,这里我用map储存操作过的状态,也可以用康托编码来储存状态,这样时间缩短为0.03秒.关于康托展开可以 ...

  7. Sicily 1150: 简单魔板(BFS)

    此题可以使用BFS进行解答,使用8位的十进制数来储存魔板的状态,用BFS进行搜索即可 #include <bits/stdc++.h> using namespace std; int o ...

  8. BZOJ4516: [Sdoi2016]生成魔咒 后缀自动机

    #include<iostream> #include<cstdio> #include<cstring> #include<queue> #inclu ...

  9. CSS魔法堂:Box-Shadow没那么简单啦:)

    前言  说起box-shadow那第一个想法当然就是用来实现阴影,其实它还能用于实现其他好玩的效果的,本篇就打算说说box-shadow的那些事. 二话不说看效果 3D小球 <style typ ...

随机推荐

  1. Unity3D中的射线与碰撞检测代码

    两种不同写法的射线检测 1.获取鼠标点击的物体 if (Input.GetMouseButtonDown(0)) { Ray ray = MainCamera.ScreenPointToRay(Inp ...

  2. iframe子父页面函数互相调用

    1.iframe子页面调用父页面js函数 子页面调用父页面函数只需要写上window.praent就可以了.比如调用a()函数,就写成: window.parent.a();  子页面取父页面中的标签 ...

  3. delphi 演示数据路径

    链接里默认的--------------------------- Error --------------------------- I/O error for file "C:\Prog ...

  4. JavaScrip(二)JavaScrip语法基础

    一:标识符 标识符是指变量,函数的名字,或函数的参数名: 1.命名规则 1.1第一个字符必须是一个字母.下划线(_).或一个美元符号($) 1.2其他字母可以是字母,下划线.美元符号或数字 1.3不能 ...

  5. Java连接SqlServer 2008数据库

    将sqljdbc4.jar包添加到工程 连接SqlServer 2008数据库 import java.sql.Connection; import java.sql.DriverManager; i ...

  6. scanf *的用法

    scanf *的用法           char a[LEN]="12:13:14";     char i,j,k,h,l,m; sscanf(a,"%*c%*c:% ...

  7. L2-002. 链表去重(数组模拟)

    L2-002. 链表去重 因为数值比较小,所以直接用数组来模拟 #include<cstdio> #include<cstring> #include<iostream& ...

  8. HDU 6038 17多校1 Function(找循环节/环)

    Problem Description You are given a permutation a from 0 to n−1 and a permutation b from 0 to m−1. D ...

  9. 使用solr报错

    2017-11-15  20:15:18 错误介绍: 错误原因:url错误 错误解决:换成正确

  10. spring — jdbc 配置文件的设置

    ---参考配置,  链接mysql 数据库 <!-- 1.配置数据源 --><bean id="dataSource" class="org.sprin ...