2016山东省第七届acm省赛 G题 Triple Nim

原创 2018年04月15日 20:46:49

Problem Description

Alice and Bob are always playing all kinds of Nim games and Alice always goes first. Here is the rule of Nim game:

    There are some distinct heaps of stones. On each turn, two players should remove at least one stone from just one heap. Two player will remove stone one after another. The player who remove the last stone of the last heap will win.

    Alice always wins and Bob is very unhappy. So he decides to make a game which Alice will never win. He begins a game called “Triple Nim”, which is the Nim game with three heaps of stones. He’s good at Nim game but bad as math. With exactly N stones, how many ways can he finish his target? Both Alice and Bob will play optimally.

Input

 Multiple test cases. The first line contains an integer T (T <= 100000), indicating the number of test case. Each case contains one line, an integer N (3 <= N <= 1000000000) indicating the number of stones Bob have.

Output

 One line per case. The number of ways Bob can make Alice never win.

 

Sample Input

3
3
6
14

Sample Output

0
1
4

Hint

 In the third case, Bob can make three heaps (1,6,7), (2,5,7), (3,4,7) or (3,5,6).

 


无解...对博弈论真是完全不会..

先暴力打表来一发发现奇数全为0,偶数中2的n次方全为0.

剩下的莫名其妙的一堆数字。结合题目“运用nim博弈的性质”,只记住nim博弈与二进制有关。

看n中1的个数吧...

我们发现n的二进制1的个数符合 F[ N ] = F [ N -1 ] * 3 +1;

emmmm..对于我等弱渣这题.........


#include<iostream>
#include<string.h>
#include<stdio.h>
#include<vector>
#include<queue>
#include <fstream>
#include <iomanip>
using namespace std;
int main()
{
    int ans,pp;
    int i;
    long long int f[100];
    f[2]=1;
    f[1]=0;
    f[0]=0;
    for(i=3;i<30;i++)
        f[i]=f[i-1]*3+1;
    long long int a;
    int T;
    cin>>T;
    while(T--)
    {
        cin>>a;
        ans=0;
        if(a%2)
        {
            cout<<0<<endl;
            continue;
        }
        while(a!=0)
        {
            pp=a%2;
            if(pp)
                ans++;
            a/=2;
        }
        cout<<f[ans]<<endl;
    }


}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Little_boy_z/article/details/79952986

2016山东省第七届acm省赛 G题Triple Nim

Triple Nim Time Limit: 2000MS Memory limit: 65536K 题目描述 Alice and Bob are always playing ...
  • qq_33402621
  • qq_33402621
  • 2016年06月11日 17:24
  • 7354

2016山东省第七届ACM省赛-部分题解

sdut-3560-julyed:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/3560.htm...
  • txgANG
  • txgANG
  • 2017年04月11日 10:35
  • 742

2015山东省第六届acm省赛 C题Game!

Game! Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description...
  • i1020
  • i1020
  • 2017年05月03日 17:16
  • 222

山东省第八届ACM省赛 G 题(sum of power)

Problem Description Calculate  mod (1000000000+7) for given n,m. Input Input contains two ...
  • qq_36949416
  • qq_36949416
  • 2017年05月11日 10:15
  • 604

第七届山东省ACM省赛 C Proxy

Problem Description Because of the GFW (Great Firewall), we cannot directly visit many websites, ...
  • Little_boy_z
  • Little_boy_z
  • 2017年04月28日 19:34
  • 697

【总结】"浪潮杯"第七届ACM山东省省赛山师场总结

翻了翻blog 还能看到去年的省赛第一战的帖子 也是ACM第一战的帖子 很感慨也很愤懑 更多的应该是遗憾。?喵个咪 哥还没退役 还能再战(图:扶老夫起来)  Twice 看着一群群大牛还有队友...
  • ChallengerRumble
  • ChallengerRumble
  • 2016年07月09日 18:30
  • 2232

山东省第八届ACM省赛 J 题(company)

Problem Description There are n kinds of goods in the company, with each of them has a inventory ...
  • qq_36949416
  • qq_36949416
  • 2017年05月10日 22:16
  • 490

第七届山东省ACM省赛 B Fibonacci

Problem Description Fibonacci numbers are well-known as follow:   Now given an integer N, pleas...
  • Little_boy_z
  • Little_boy_z
  • 2017年04月28日 19:27
  • 180

山东省第八届ACM省赛感想——来自菜鸟的感叹

比完省赛,突然觉得没什么事干了,也静不下心去刷题,那就找点别的事情做吧。 之前一直想写个博客,看到那些大佬们的博客,也挺羡慕的,但是之前确实没时间。而且也确实没什么东西可写的,现在正好也没什么事...
  • qq_36949416
  • qq_36949416
  • 2017年05月10日 20:09
  • 502

2017-山东省第八届ACM省赛

从第一次的懵懂,第二次的遗憾,到今年的首银,这已经是第三次省赛之旅了_(:з」∠)_,第一次打星星,第二次错失银牌,这次感觉像是补回了上次银牌的样子?     时间回溯到几天前,第一天热身赛,恩,,...
  • qq978874169
  • qq978874169
  • 2017年05月13日 22:43
  • 532
收藏助手
不良信息举报
您举报文章:2016山东省第七届acm省赛 G题 Triple Nim
举报原因:
原因补充:

(最多只允许输入30个字)