首页 > 代码库 > Codeforces 492D Vanya and Computer Game 循环节找规律
Codeforces 492D Vanya and Computer Game 循环节找规律
题目链接:点击打开链接
题意:
给定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 循环节找规律
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。