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);
    }
    }

      

  • 相关阅读:
    Activity生命周期回顾
    Android Camera拍照 压缩
    Android获取相册图片
    Android 常用系统控件
    Java synchronized详解
    Android输入法开发
    Android Toast和Notification
    Extjs 自定义控件
    在Extjs中动态增加控件
    数据库中存储js代码无法json解析
  • 原文地址:https://www.cnblogs.com/huhuuu/p/2179837.html
Copyright © 2011-2022 走看看