题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1107

注意:1.路线是要反向的,走不通就反向;

2.输入输出全部是整形

3.攻击力不断变化

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
struct Node{
int x,y,fg;
int nei,wu,she,gj,dir;
char ch;
int f(char tt)
{
if(tt=='S') return floor((0.5*nei+0.5*wu)*(she+10.0)/100.0);
else if(tt=='W') return floor((0.8*nei+0.2*wu)*(she+10.0)/100.0);
else if(tt=='E') return floor((0.2*nei+0.8*wu)*(she+10.0)/100.0);
}
};
int check(int x,int y)
{
if(x<||y>) return ;
if(y<||x>) return ;
else return ;
}
Node a[];
int vis[][],vc[];
int main(void)
{
int i,t,n,len,k,j;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
getchar();
i=;
while(scanf("%c",&a[i].ch)&&(a[i].ch!=''))
{
scanf(" %d %d %d %d %d",&a[i].x,&a[i].y,&a[i].nei,&a[i].wu,&a[i].she);
a[i].dir=;
getchar();
i++;
}
// cout<<"---"<<i<<endl;
len=i;
for(i=;i<len;i++)
{
if(a[i].ch=='S') a[i].fg=;
else if(a[i].ch=='W') a[i].fg=;
else if(a[i].ch=='E') a[i].fg=;
a[i].gj=a[i].f(a[i].ch);
//cout<<a[i].gj<<endl;
}
//cout<<n<<" --1i4dfjsdofsd\n";
for(i=;i<n;i++)
{
memset(vis,,sizeof(vis));
memset(vc,,sizeof(vc));
for(j=;j<len;j++)
{
vis[a[j].x][a[j].y]++;
}
for(j=;j<len;j++)
{
for(k=;k<len;k++)
{
if((a[j].fg!=a[k].fg)&&j!=k&&a[j].fg!=-&&vis[a[j].x][a[j].y]==&&vc[j]==&&vc[k]==&&(a[j].x==a[k].x&&a[j].y==a[k].y))
{
a[j].she=a[j].she-a[k].gj;
a[k].she=a[k].she-a[j].gj;
//cout<<a[k].gj<<" ----- "<<a[j].gj<<endl;
a[k].gj=a[k].f(a[k].ch);
a[j].gj=a[j].f(a[j].ch);
vc[j]=;vc[k]=;
if(a[j].she<=) a[j].fg=-;
if(a[k].she<=) a[k].fg=-;
}
}
}
for(j=;j<len;j++) //移动
{
if(a[j].ch=='S')
{
a[j].x+=a[j].dir;
if(check(a[j].x,a[j].y)==)
{
a[j].dir*=(-);
a[j].x+=*a[j].dir;
}
}
else if(a[j].ch=='W')
{
a[j].y+=a[j].dir;
if(check(a[j].x,a[j].y)==)
{
a[j].dir*=(-);
a[j].y+=*a[j].dir;
}
}
else if(a[j].ch=='E')
{
if(a[j].x==&&a[j].y==||a[j].x==&&a[j].y==) continue;
a[j].x+=a[j].dir,a[j].y+=a[j].dir;
if(check(a[j].x,a[j].y)==)
{
a[j].dir*=(-);
a[j].x+=*a[j].dir;
a[j].y+=*a[j].dir;
}
}
}
}
int ans1=,ans2=,ans3=;
int num1=,num2=,num3=;
for(i=;i<len;i++)
{
if(a[i].fg==) num1++,ans1+=a[i].she;
else if(a[i].fg==) num2++,ans2+=a[i].she;
else if(a[i].fg==) num3++,ans3+=a[i].she;
}
printf("%d %d\n",num1,ans1);
printf("%d %d\n",num2,ans2);
printf("%d %d\n",num3,ans3);
printf("***\n");
}
return ;
}

hdu-1107(模拟题)的更多相关文章

  1. hdu 4801模拟题

    /* 模拟: 注意:实质上一次魔方的一半要变化 用c++超内存 用g++过了 */ #include<stdio.h> #include<string.h> #include& ...

  2. HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011亚洲北京赛区网络赛)

    HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011 亚洲北京赛区网络赛题目) Eliminate Witches! Time Limit: 2000/1000 ...

  3. HDU 4452 Running Rabbits (模拟题)

    题意: 有两只兔子,一只在左上角,一只在右上角,两只兔子有自己的移动速度(每小时),和初始移动方向. 现在有3种可能让他们转向:撞墙:移动过程中撞墙,掉头走未完成的路. 相碰: 两只兔子在K点整(即处 ...

  4. hdu 5641 King's Phone(暴力模拟题)

    Problem Description In a military parade, the King sees lots of new things, including an Andriod Pho ...

  5. HDU 1262 寻找素数对 模拟题

    题目描述:输入一个偶数,判断这个偶数可以由哪两个差值最小的素数相加,输出这两个素数. 题目分析:模拟题,注意的是为了提高效率,在逐个进行判断时,只要从2判断到n/2就可以了,并且最好用打表法判断素数. ...

  6. HDU 2093 考试排名 模拟题

    解题报告: 题目描述:写一个程序给一个编程考试C++实时提交系统排名,给你的数据是题目的总数,每次错误提交罚的时间分,每位用户的姓名,然后是输入用户每题的完成情况,有一下几种情况,第一,输入只有一个正 ...

  7. hdu 4706:Children's Day(模拟题,模拟输出大写字母 N)

    Children's Day Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  8. HDU 2414 Chessboard Dance(模拟题,仅此纪念我的堕落)

    题目 模拟题也各种wa,我最近真的堕落了,,,,,智商越来越为负数了!!!!!!!! #include<stdio.h> #include<string.h> #include ...

  9. POJ 模拟题集合

    http://www.cppblog.com/Uriel/articles/101592.html 感觉这个暑假没有去年有激情啊,,,还没到状态就已经块上学了,,, 真是弱暴了,,,找几道模拟题刷刷. ...

  10. poj 1008:Maya Calendar(模拟题,玛雅日历转换)

    Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 64795   Accepted: 19978 D ...

随机推荐

  1. VBA 连接文本的自定义函数(可用于数组公式)

    Function ConTxt(ParamArray args() As Variant) As VariantDim tmptext As Variant, i As Variant, cellv ...

  2. hashlib 加密模块使用说明

    import hashlib  #hashilib 模块 m = hashlib.md5() m.update('hello 天王盖地虎'.encode(encoding = 'utf-8)) m.h ...

  3. ztree参考

    ztree一 ztree二 ztree三

  4. JS时间转时间戳,时间戳转时间。时间显示模式。

    函数内容 // 时间转为时间戳 function date2timestamp(datetime) { var timestamp = new Date(Date.parse(datetime)); ...

  5. Pycharm安装autopep8工具

    参考文当:https://www.cnblogs.com/heenhui2016/p/6802122.html

  6. 修改thinkpad 小红点(TrackPoint速度)

    from: http://www.jianshu.com/p/b9677e9e56ec Thinkpad大概是对Linux支持最好的笔记本了,Ubuntu大概是对硬件支持最好的Linux发行版了.Ub ...

  7. mongodb基础学习11-复制集和分片结合使用

    实际的使用中复制集和分片是结合使用的,即一个分片由一个复制集构成,多个分片存储数据库的数据 调用脚本启动两个复制集 启动configsvr的节点 启动mongos 增加分片,这次要加上复制集的id,节 ...

  8. Nginx 反向代理、后端检测模块

    简介: Nginx 反向代理模块:ngx_http_proxy_module.ngx_http_upstream_module 后端检测模块:nginx_http_upstream_check_mod ...

  9. session会话管理,与过滤器使用,访问控制

    1 用户登录,是否注册用户,在登录处理页面进行用户验证,创建session保存用户名和密码 2否,进入用户注册页面 3是,系统保存该用户的登录信息 4进入要访问的页面 5用户直接访问某个页面, 6系统 ...

  10. python的可变list和不可变tuple, dict和set

    list和tuple 在python中分为可变表和不可变表: 类型 名称 表示方法 可变 list [] 不可变 tuple () list list是可变表,list内部索引从0开始,正整数是正序的 ...