码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces 492D Vanya and Computer Game 循环节找规律

时间:2014-12-02 15:13:47      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:blog   http   ar   sp   for   on   2014   log   ef   

题目链接:点击打开链接

题意:

给定n只怪物的血量,x‘, y

第一个人每秒钟攻击x次,第二个人每秒钟攻击y次

每次攻击给所有存活的怪物造成一点伤害。

问每只怪物最后一击是谁打死的

思路:xy的最小公倍数内有个循环节,先跑出这个循环节(同时攻击时造成2点伤害,就在循环节里加2次both)

然后对于每只怪只要关心在循环节里坐落在哪个攻击点就好了


#include<bits/stdc++.h>
using namespace std;

const int maxn=2000010;
int v[maxn];

int main()
{
    long long n,x,y;
    cin>>n>>x>>y;
    int sum=0;
    for(int i=1,j=1;i<=y&&j<=x;)
    {
        if(i*x<j*y) {v[++sum]=2;i++;continue;}
        if(i*x>j*y) {v[++sum]=1;j++;continue;}
        if(i*x==j*y) {v[++sum]=0;v[++sum]=0;i++;j++;continue;}
    }
    long long m=x*y;
    for(int i=0;i<n;i++)
    {
        long long a;
        cin>>a;
        a=a%sum;
        if(v[a]==1) {cout<<"Vanya"<<endl;continue;}
        if(v[a]==2) {cout<<"Vova"<<endl;continue;}
        if(v[a]==0) {cout<<"Both"<<endl;continue;}
    }
    return 0;
}


Codeforces 492D Vanya and Computer Game 循环节找规律

标签:blog   http   ar   sp   for   on   2014   log   ef   

原文地址:http://blog.csdn.net/qq574857122/article/details/41678845

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!