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 ...
随机推荐
- grep命令打印前N行
想打印前5行,用head即可:grep xxx |head -n 5
- UI5-文档-4.34-Custom Controls
在这一步中,我们将使用自定义控件扩展SAPUI5的功能.我们希望对详细页面上显示的产品进行评级,因此我们使用SAPUI5扩展机制创建了多个标准控件的组合,并添加了一些粘合代码以使它们能够很好地一起工作 ...
- 一个取消事件的简单js例子(事件冒泡与取消默认行为)
先上代码: <div id='outer' onclick='alert("我是outer")'> <div id="middle" oncl ...
- NISP视频知识点总结
身份认证访问控制安全审计本章实验 ===密码学=====古典密码 算法本身的保密性近代密码 机械密码\机电 密码打字密码机轮转机现代密码 基于密钥公钥密码 公钥==================对称 ...
- 趣味编程:24点(Haskell版)
24 game/Solve import Data.List import Data.Ratio import Control.Monad data Expr = Constant Rational ...
- neo4j 学习-2
Neo4j 查询例句 MATCH (john {name: 'John'})-[:friend]->()-[:friend]->(fof) RETURN john.name, fof.na ...
- JSP共享javabean
JavaBean是一种可重复使用,且跨平台的软件组件.JavaBean可分为两种:一种是有用户界面(UI)的javaBean:还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的jav ...
- 神经网络中embedding层作用——本质就是word2vec,数据降维,同时可以很方便计算同义词(各个word之间的距离),底层实现是2-gram(词频)+神经网络
Embedding tflearn.layers.embedding_ops.embedding (incoming, input_dim, output_dim, validate_indices= ...
- pyspark dataframe 格式数据输入 做逻辑回归
该方法好处是可以调节阈值,可调参数比其他形式模型多很多. [参照]http://blog.csdn.net/u013719780/article/details/52277616 [3种模型效果比较: ...
- Linux初学时的一些常用命令(2)
文件的操作 创建一个文件 touch 文件名 创建一个空白的文件 复制文件 cp 文件 目录/文件名 例如: cp 1.txt 2.txt cp 1.tx ...