hdu-1107(模拟题)
题目链接: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(模拟题)的更多相关文章
- hdu 4801模拟题
/* 模拟: 注意:实质上一次魔方的一半要变化 用c++超内存 用g++过了 */ #include<stdio.h> #include<string.h> #include& ...
- HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011亚洲北京赛区网络赛)
HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011 亚洲北京赛区网络赛题目) Eliminate Witches! Time Limit: 2000/1000 ...
- HDU 4452 Running Rabbits (模拟题)
题意: 有两只兔子,一只在左上角,一只在右上角,两只兔子有自己的移动速度(每小时),和初始移动方向. 现在有3种可能让他们转向:撞墙:移动过程中撞墙,掉头走未完成的路. 相碰: 两只兔子在K点整(即处 ...
- hdu 5641 King's Phone(暴力模拟题)
Problem Description In a military parade, the King sees lots of new things, including an Andriod Pho ...
- HDU 1262 寻找素数对 模拟题
题目描述:输入一个偶数,判断这个偶数可以由哪两个差值最小的素数相加,输出这两个素数. 题目分析:模拟题,注意的是为了提高效率,在逐个进行判断时,只要从2判断到n/2就可以了,并且最好用打表法判断素数. ...
- HDU 2093 考试排名 模拟题
解题报告: 题目描述:写一个程序给一个编程考试C++实时提交系统排名,给你的数据是题目的总数,每次错误提交罚的时间分,每位用户的姓名,然后是输入用户每题的完成情况,有一下几种情况,第一,输入只有一个正 ...
- hdu 4706:Children's Day(模拟题,模拟输出大写字母 N)
Children's Day Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- HDU 2414 Chessboard Dance(模拟题,仅此纪念我的堕落)
题目 模拟题也各种wa,我最近真的堕落了,,,,,智商越来越为负数了!!!!!!!! #include<stdio.h> #include<string.h> #include ...
- POJ 模拟题集合
http://www.cppblog.com/Uriel/articles/101592.html 感觉这个暑假没有去年有激情啊,,,还没到状态就已经块上学了,,, 真是弱暴了,,,找几道模拟题刷刷. ...
- poj 1008:Maya Calendar(模拟题,玛雅日历转换)
Maya Calendar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 64795 Accepted: 19978 D ...
随机推荐
- rar 按日期时间备份
@echo off echo. echo backup start,please wait ... for /f %%i in ('date /t') do rar u F:\liaobin\bak\ ...
- as3 air 获取文件夹下的所有文件
private function getFile(directory:File) { var files:Array = directory.getDirectoryListing(); for(va ...
- ubuntu16.04 安装opencv3.3
from: http://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/ Step #1: Install O ...
- CSS选择器学习小结
关于CSS选择器的问题,在实际项目中,以及一般的前端面试中会经常遇到.下面对此做一小结,梳理和巩固相关方面知识.(如有不妥之处,还望大家及时批评指正,以免误导他人) 一.选择器种类 1.id选择器(# ...
- 关于HTTP协议及SOCKET通信
一.HTTP 1.报文结构 HTTP:超文本传输协议,报文分为请求报文和响应报文. 2.端口(tomcat端口) http在熟知的80端口使用TCP的服务:tomcat的默认端口是8080 3.状态码 ...
- tensor flow 的两种padding方式
https://segmentfault.com/a/1190000007846181
- SQL 数据库事务 存储过程练习
数据库事务: 数据库事务(Database Transaction) 是指作为单个逻辑工作单元执行的一系列操作. 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源. ...
- 38. Count and Say (String; DP)
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...
- Web Components 规范学习
最新的规范在这里:http://w3c.github.io/webcomponents/explainer/ 依据规范,有以下四个组成部分: Templates Custom Elements Sha ...
- maven打包部署到私服
转载地址:http://blog.csdn.net/stormragewang/article/details/43407471 心得 apache的开源maven插件对我们使用maven进行打包,发 ...