uva 1378 - A Funny Stone Game sg函数

简介:

    07年论文的第一个例题,看了2天都没看懂,那句把每一颗石子看作是一堆石子,如果它是第p堆中的石子,把么它所代表的这堆石子的个数为n-1-p,晚上看电影突然想明白了,意思是如果第p堆一开始为t,那么就可以看做t个数目为n-1-p的石子。一切问题迎刃而解

    写了个O(n^3)的算法,但感觉不用枚举,还能有优化


/*
author:jxy
lang:C/C++
university:China,Xidian University
**If you need to reprint,please indicate the source**
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;
int n;
int sg[25];
int org[25];
void init()
{
    int vis[100],i,j,k;//vis开大点 防溢出
    sg[0]=0;
    for(i=1;i<23;i++)
    {
        memset(vis,0,sizeof(vis));
        for(j=0;j<i;j++)
          for(k=j;k<i;k++)
          {
             vis[sg[j]^sg[k]]=1;
          }
        for(j=0;vis[j];j++);
        sg[i]=j;
    }
}
int main()
{
   int C=0;
   init();
   while(~scanf("%d",&n)&&n)
   {
       int t,i,j,k,ans=0;
       for(i=0;i<n;i++)
       {
          scanf("%d",&t);
          org[i]=t;
          if(t&1)
            ans^=sg[n-i-1];
       }
       bool ok=1;
       printf("Game %d: ",++C);
       for(i=0;ok&&i<n;i++)
        if(org[i])
          for(j=i+1;ok&&j<n;j++)
             for(k=j;ok&&k<n;k++)
                if((ans^sg[n-i-1]^sg[n-j-1]^sg[n-k-1])==0)
                {
                    printf("%d %d %d\n",i,j,k);
                    ok=0;
                }
        if(ok)puts("-1 -1 -1");
   }
}


目录
相关文章
|
PyTorch TensorFlow 算法框架/工具
conda 创建虚拟环境
conda 创建虚拟环境
401 0
|
SQL 存储 分布式计算
Apache Impala(demo)
Apache Impala(demo)
207 0
|
弹性计算 容灾 安全
阿里云服务器购买指南(超详细)
阿里云服务器购买指南(超详细)2023阿里云服务器选购流程更新,选购云服务器有两个入口,一个是选择活动机,只需要选择云服务器地域、系统、带宽即可;另一个是在云服务器页面,自定义选择云服务器配置,这种方式购买云服务器较为复杂,需要选付费方式、地域及可用区、ECS实例规格、镜像、网络、公网IP、安全组等配置,阿里云百科来阿里云服务器购买流程指南2023新版教程:
688 0
|
人工智能 安全 机器人
新手必看!ChatGPT常见问题总整理,你遇到了几个?
新手必看!ChatGPT常见问题总整理,你遇到了几个?
|
JavaScript 数据安全/隐私保护 网络架构
Vue Router最佳实践,以确保你的Vue.js应用的路由管理清晰、可维护和高效
以下是使用Vue Router的最佳实践,以确保你的Vue.js应用的路由管理清晰、可维护和高效。
517 0
|
安全 Linux 网络安全
|
域名解析 网络协议 关系型数据库
阿里云轻量服务器安装WordPress网站教程
阿里云轻量服务器安装WordPress网站教程,阿里云轻量应用服务器镜像可选WordPress应用,应用镜像可以自动安装WordPress程序及WP所依赖的Web安装环境,轻量服务器网来详细说下轻量服务器选择WordPress应用镜像创建成功后的操作流程使用方法:
882 0
|
Web App开发 JavaScript 前端开发
基于 Vue 2.x 的 Electron 项目
基于 Vue 2.x 的 Electron 项目
811 0
|
运维 资源调度 Java
定时任务报警通知解决方案详解
本文详细介绍定时任务通知的解决方案,以及市面上常见的开源定时任务通知方案对比。
1282 2
|
存储 XML 开发框架
Unity Metaverse(三)、Protobuf & Socket 实现多人在线
使用Scoket TCP和Protobuf通信协议实现多人在线。
451 1
Unity Metaverse(三)、Protobuf & Socket 实现多人在线