zoukankan      html  css  js  c++  java
  • 尼姆博弈——ZOJ Problem Set 3529

    类似多对石头的博弈
    判断哪个先取时,再第i个数与总的S取异或,如果a[i]>=(s^a[i])就是先取它
    View Code
    #include<iostream>
    #include
    <stdio.h>
    #include
    <algorithm>
    #include
    <stdlib.h>
    #include
    <string.h>
    #include
    <math.h>
    using namespace std;

    int a[1000009];
    int b[1000009];
    int prim[100009];
    int padd=0;


    int pp(int a)
    {
    int i,t;
    t
    =(int)sqrt((double)a);
    for(i=2;i<=t;i++)
    {
    if(a%i==0)
    break;
    }
    if(i==(t+1))
    return 1;
    else
    return 0;
    }

    int ppp(int a)
    {
    int i,t;
    t
    =(int)sqrt((double)a);

    for(i=0;prim[i]<=t;i++)
    {
    if((a%prim[i])==0)
    return 0;
    }
    return 1;
    }

    int f(int temp)
    {
    int i,add=0;
    int s=(int)sqrt((double)temp);

    while(ppp(temp)==0)
    {
    for(i=0;i<padd;i++)
    {
    if((temp%prim[i])==0)
    {
    add
    ++;
    temp
    =temp/prim[i];
    break;
    }
    }
    }
    return add+1;
    }

    int main()
    {
    int n,T=0;
    while(scanf("%d",&n)!=EOF)
    {
    T
    ++;
    printf(
    "Test #%d: ",T);
    int i,j;
    padd
    =0;
    for(i=2;i<=2500;i++)
    {
    if(pp(i)==1)
    {
    prim[padd]
    =i;
    padd
    ++;
    }
    }

    for(i=0;i<n;i++)
    {
    scanf(
    "%d",&a[i]);
    if(a[i]==1)
    b[i]
    =0;
    else
    b[i]
    =f(a[i]);
    }

    int s=0;
    for(i=0;i<n;i++)
    {
    s
    =s^b[i];
    }

    if(s==0)
    {
    printf(
    "Bob\n");
    continue;
    }
    printf(
    "Alice ");

    int ri,min=999999999;
    for(i=0;i<n;i++)
    {
    if(b[i]>=(s^b[i]))
    {
    if(min>a[i])
    {
    min
    =a[i];
    ri
    =i;
    break;
    }
    }
    }
    printf(
    "%d\n",ri+1);
    }
    }

      

  • 相关阅读:
    sersync实时同步实战+nfs共享存储
    ssh协议详解
    nfs共享存储+实时同步(结合rsync+inotify)
    sqlserver 个人整理
    vba 自定义菜单与vba通过sql查询
    c# 自定义排序Compare
    c# delegate知识
    mvc Dapper_Report_Down_ExcelFile
    c# bootstrap-table 知识
    c# Stream to File的知识点
  • 原文地址:https://www.cnblogs.com/huhuuu/p/2179837.html
Copyright © 2011-2022 走看看