zoukankan      html  css  js  c++  java
  • 分类思想好题——Codeforces Beta Round #80 div2 D

      死亡游戏,问一把左轮枪,左轮有N个空间,其中用k发子弹,有p个问题,问抢第a[i]个空间有木有子弹,小明为了使自己被秒的概率最小,如何摆放子弹(游戏会一直继续知道有人挂掉),答案要按字典序显示。。。

      分类思想吧

      7 0 7(为了方便1-7顺序)

      。。。。。。。

      7 1 7

      。。。。。。X

      7 2 7

      。。。。。XX

      7 3 7

      。。。X。XX

      7 4 7

      。X。X。XX  

      ...

      8 0 8

      不写了,把情况都列一下,总结规律

    View Code
    #include<stdio.h>

    int main()
    {
    __int64 n,k,p;
    int i;
    scanf(
    "%I64d%I64d%I64d",&n,&k,&p);

    __int64 temp;
    if(k==0)
    {
    for(i=0;i<p;i++)
    {
    scanf(
    "%I64d",&temp);
    printf(
    ".");
    }
    }
    else if(n==k*2)
    {
    for(i=0;i<p;i++)
    {
    scanf(
    "%I64d",&temp);
    if(temp%2==0)printf("X");
    else printf(".");
    }
    }
    else if((n>k*2)&&(n%2==1))//特殊判断当n为奇数时
    {
    for(i=0;i<p;i++)
    {
    scanf(
    "%I64d",&temp);
    __int64 z;
    z
    =n-temp;
    if((z==0)||((k-1)*2>=z&&z%2==1))
    printf(
    "X");
    else
    printf(
    ".");

    }
    }
    else if(n>k*2)//n>k*2,n为偶数时
    {

    for(i=0;i<p;i++)
    {
    scanf(
    "%I64d",&temp);
    __int64 z;
    z
    =n-temp+1;
    if(z<=2*k&&z%2==1)
    printf(
    "X");
    else
    printf(
    ".");
    }
    }
    else//n<2*k
    {
    __int64 t,rr;
    t
    =n-k;
    rr
    =n-t*2;

    for(i=0;i<p;i++)
    {
    scanf(
    "%I64d",&temp);
    __int64 z;
    z
    =n-temp+1;
    t
    =z-rr;

    if((t<=0)||(t%2==1))
    printf(
    "X");
    else printf(".");
    }
    }
    printf(
    "\n");

    }

      

  • 相关阅读:
    ThinkJS框架入门详细教程(一)开发环境
    为什么要使用云盘?
    博客使用BOS上传图片
    网站第三方评论对比
    Angular定义服务-Learn By Doing
    原生Ajax总结
    JavaScript事件概览
    Angular学习-指令入门
    Angular中ngCookies模块介绍
    Angular Service入门
  • 原文地址:https://www.cnblogs.com/huhuuu/p/2131129.html
Copyright © 2011-2022 走看看