码迷,mamicode.com
首页 > 其他好文 > 详细

hdu1848(sg函数打表)

时间:2017-03-31 21:47:15      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:display   ace   ble   lap   img   splay   isp   ref   数列   

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1848

 

题意:中文题诶~

 

思路:直接sg函数打表就好了

 

代码:

技术分享
 1 #include <iostream>
 2 #include <string.h>
 3 #define MAXN 3010
 4 using namespace std;
 5 
 6 int f[MAXN], sg[MAXN];
 7 
 8 void init(){//得到1000以内的fibonacci数列
 9     f[1]=1;
10     f[2]=2;
11     for(int i=3; ; i++){
12         f[i]=f[i-1]+f[i-2];
13         if(f[i]>1000){
14             break;
15         }
16     }
17 }
18 
19 void get_sg(){//sg函数打表
20     for(int i=1; i<=1000; i++){
21         int vis[MAXN];
22         memset(vis, 0, sizeof(vis));
23         for(int j=1; f[j]<=i; j++){//找到当前节点能到达的点
24             vis[sg[i-f[j]]]=1;
25         }
26         for(int j=0; j<=1000; j++){//求mex函数
27             if(!vis[j]){
28                 sg[i]=j;
29                 break;
30             }
31         }
32     }
33 }
34 
35 int main(void){
36     init();
37     get_sg();
38     int n, m, p;
39     while(cin >> n >> m >> p){
40         if(n+m+p==0){
41             break;
42         }
43         if(sg[n]^sg[m]^sg[p]){//sg函数性质
44             cout << "Fibo" << endl;
45         }else{
46             cout << "Nacci" << endl;
47         }
48     }
49     return 0;
50 }
View Code

 

hdu1848(sg函数打表)

标签:display   ace   ble   lap   img   splay   isp   ref   数列   

原文地址:http://www.cnblogs.com/geloutingyu/p/6653460.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!