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 ...
随机推荐
- angular ui.router 路由传参数
angular已经用了一段时间了,最近在做路由,做一下笔记. 路由跳转的时候进行穿参 ui.router方式 <a ui-sref="edit({id:5})"> 编辑 ...
- ant 注意
nt文件在部署时,如果控制台出现乱码则需要调整语言. 高版本eclipse在jdk高版本中已经植入了ant的部署.因此不需要单独配置ant.jar. 如果版本低,可下载ant插件,或者下载ant的工具 ...
- NDK开发中的一个HTTP下载实例附带下载进度
有一个控制下载的管理类吧,调用http下载类进行各种下载,同时在下载过程中可以显示其下载的进度,而且在每个下载结束之后以类似回调的方式告诉管理类,以继续进行后续的操作. 直接代码: .h文件 #pra ...
- win32允许前置窗口
win32允许前置窗口函数 AllowSetForegroundWindow(HWND hWnd) 该函数允许其他窗口调用SetForegroundWindow()(将窗口设为前置窗口),前提是调用A ...
- Eclipse编辑jsp不显示预览效果页面
转载链接:https://blog.csdn.net/fishsr/article/details/22662787 转载 2014年03月31日 13:35:35 1.Eclipse打开jsp后,在 ...
- cdoj第13th校赛初赛H - Hug the princess
http://acm.uestc.edu.cn/#/contest/show/54 H - Hug the princess Time Limit: 3000/1000MS (Java/Others) ...
- iOS 网络请求中的空类型字符串转换
创建一个工具类, .h: #import <Foundation/Foundation.h> @interface MySetNullWithStrTool : NSObject +( ...
- 指针c艹
#include <iostream> using namespace std;int value=1;void func(int *p){ p=&value; }void fun ...
- collections系列之Counter
collections模块中有一个叫做Counter的类,该类的作用就是计数器,Counter是对dict的加工,所有Counter继承了dict的方法 1.创建一个Counter,需要import ...
- JAVA 系统变量之System.getenv()和System.getProperty() 用法
Java提供了System类的静态方法getenv()和getProperty()用于返回系统相关的变量与属性,getenv方法返回的变量大多于系统相关,getProperty方法返回的变量大多与ja ...