题目描述

《英雄联盟》(简称LOL)是由美国Riot Games开发,腾讯游戏运营的英雄对战网游。《英雄联盟》除了即时战略、团队作战外,还拥有特色的英雄、自动匹配的战网平台,包括天赋树、召唤师系统、符文等元素。简单来说,LOL是一个10人组的对战游戏,一个队伍(5个人)对抗另一个队伍(5个人),主要目的是拆掉对面的建筑物,一个每个队伍的英雄都扮演着不同的角色,分别为“上单”,“打野”,“中单”,“辅助”,“ADC”,通常的情况是各自队伍的“上单”VS“上单”,“打野”VS“打野”,“中单”VS“中单”,“辅助”VS“辅助”,“ADC”VS“ADC”。上单在LOL中一直是一个很吃香的角色,一般小学生进入匹配以后都会强调一句“锐雯上单不给就送”作为联络暗号。zz_1215和devtang经常玩这个游戏,zz_1215是devtang的宿敌,devtang很想知道zz_1215玩的什么角色,然后他就选同样的角色和zz_1215决斗(solo)。经过观察devtang发现zz_1215选择什么角色是有规律的,那就是取决于他上一次玩的什么角色。现用一个5*5的矩阵来表示,表示上一次如果zz_1215玩的是第j个角色,那么他这一次玩第i个角色的概率为,另外有。现在知道zz_1215第一次玩的是什么角色,devtang想知道在第n次游戏中,zz_1215最有可能玩的是什么角色。

输入

首先是一个正整数T,表示有T组数据 每组数据包括 第一行是一个数字n,表示devtang想知道第n次游戏中zz_1215最可能玩的角色 接下来会给出5*5的矩阵表示概率关系 最后一行给出整数m()表示zz_1215第一次游戏玩的角色,角色表示方法见注意事项

输出

输出第n次游戏中,zz_1215最有可能玩的角色,角色表示方法见注意事项,每个输出单独占一行

样例输入

2
1
0 0.1 0.2 0.3 0.4
0.4 0 0.1 0.2 0.3
0.3 0.4 0 0.1 0.2
0.2 0.3 0.4 0 0.1
0.1 0.2 0.3 0.4 0
3
2
0 0.1 0.2 0.3 0.4
0.4 0 0.1 0.2 0.3
0.3 0.4 0 0.1 0.2
0.2 0.3 0.4 0 0.1
0.1 0.2 0.3 0.4 0
3

样例输出

3 4
第一次费了好大劲写了超时的代码,还是掌握的知识还是太少,超时的代码:
 #include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
float d[][];
int i,j,m,n,T;
freopen("in.txt","r",stdin) ;
scanf("%d",&T); //数据组数
while(T>)
{
scanf("%d",&n); //求第n次
for(i=;i<=;i++)
{
for(j=;j<=;j++)
{
scanf("%f",&d[i][j]); //存概率
}
}
scanf("%d",&m); //第一次m
int k=,term2;
float term1,term;
term1=d[][m];
term2=m;
while(k<n)
{
for(i=;i<=;i++)
{
term=d[i][m];
if(term>term1)
{
term1=term;
term2=i;
}
}
m=term2;
k++;
}
printf("%d\n",term2);
T--;
}
return ;
}

借鉴了大神的算法才A了这道题:

 # include <iostream>
# include <cstdio>
# include <cstring>
# include <algorithm>
# include <cmath>
using namespace std ; struct Matrix
{
double mat[][];
}; Matrix mul(Matrix a,Matrix b)
{
Matrix c;
for(int i=;i<;i++)
for(int j=;j<;j++)
{
c.mat[i][j]=;
for(int k=;k<;k++)
{
c.mat[i][j]+= a.mat[i][k]*b.mat[k][j];
}
}
return c;
} Matrix pow(Matrix a,int k)
{
Matrix ans;
memset(ans.mat,,sizeof(ans.mat));
for (int i=;i<;i++)
ans.mat[i][i]=;
Matrix temp=a;
while(k)
{
if(k&){ans=mul(ans,temp);}
temp=mul(temp,temp);
k=k/;
}
return ans;
} int main ()
{
int T;
cin>>T ;
while(T--)
{
int n,m;
scanf("%d",&n);
int i,j;
Matrix t ;
for (i =;i<;i++)
for (j=;j<;j++)
scanf("%lf",&t.mat[i][j]);
scanf("%d",&m);
if (n==)
{
cout<<m<<endl;
continue;
}
n=n-;
m=m-;
double MAX = ;
int id ;
Matrix ans=pow(t,n); for (i=;i>=;i--)
{
if(ans.mat[i][m]>MAX||abs(ans.mat[i][m]-MAX)<1e-)
{
MAX=ans.mat[i][m] ;
id=i;
}
}
cout<<id+<<endl ;
}
return ;
}
/**************************************************************
Problem: 1208
User: 2014217052
Language: C++
Result: 正确
Time:7 ms
Memory:1504 kb
****************************************************************/

2015安徽省赛 D.锐雯上单不给就送的更多相关文章

  1. 2015安徽省赛 G.你来擒孟获

    http://xcacm.hfut.edu.cn/problem.php?id=1211 SPFA模板题目 最短路变种,从起点终点各找一次最短路相加 #include<iostream> ...

  2. 2015安徽省赛 H.数7

    http://xcacm.hfut.edu.cn/problem.php?id=1212 模拟大发 #include<iostream> #include<cstdio> #i ...

  3. 2015安徽省赛 I.梯田

    http://xcacm.hfut.edu.cn/problem.php?id=1213 set + 搜索 姐姐是用搜索+二分做的,效率要高很多 #include<iostream> #i ...

  4. 2015安徽省赛 J.镜像树

    http://xcacm.hfut.edu.cn/problem.php?id=1214 乱搞题 数组+结构体 递归遍历 #include<iostream> #include<cs ...

  5. 2015安徽省赛 F.多重部分和问题

    题目描述 有n种不同大小的数字,每种各个.判断是否可以从这些数字之中选出若干使它们的和恰好为K. 输入 首先是一个正整数T(1<=T<=100) 接下来是T组数据 每组数据第一行是一个正整 ...

  6. 2015安徽省赛 C.LU的困惑

    题目描述 Master LU 非常喜欢数学,现在有个问题:在二维空间上一共有n个点,LU每连接两个点,就会确定一条直线,对应有一个斜率.现在LU把平面内所有点中任意两点连线,得到的斜率放入一个集合中( ...

  7. 2015安徽省赛 B.求和

    题目描述 对于正整数n,k,我们定义这样一个函数f,它满足如下规律 现在给出n和k,你的任务就是要计算f(n,k)的值. 输入 首先是一个整数T,表示有T组数据 接下来每组数据是n和k(1<=n ...

  8. 2015安徽省赛 A.First Blood

    题目描述 盖伦是个小学一年级的学生,在一次数学课的时候,老师给他们出了一个难题: 老师给了一个正整数 n,需要在不大于n的范围内选择三个正整数(可以是相同的),使它们三个的最小公倍数尽可能的大.盖伦很 ...

  9. NOI 2015 滞后赛解题报告

    报同步赛的时候出了些意外.于是仅仅能做一做"滞后赛"了2333 DAY1 T1离线+离散化搞,对于相等的部分直接并查集,不等部分查看是否在同一并查集中就可以,code: #incl ...

随机推荐

  1. 【Moqui业务逻辑翻译系列】Sales Representative Seeks Prospects and Opportunities 销售代表寻找期望合作对象和机会

    h1. Sales Representative Seeks Prospects and Opportunities 销售代表寻找期望合作对象和合作机会 h4. Ideas to incorporat ...

  2. α发布后的感想(组长作业)

    今天α发布后,组长作业,谈谈心得体会,谈谈哪些做的好的地方,哪些做的不好.耐撕团队组长因有事缺席,耐撕团队的α发布由齐同学来主持,所以这个作业由齐同学代理. 先谈谈耐撕团队在α发布会中齐同学认为做的好 ...

  3. 事务四大特征:原子性,一致性,隔离性和持久性(ACID)

    一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. 准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例进行分析. [sql] ...

  4. java 关键字 transient

    一个对象实现了Serilizable 接口,该对象就可以被序列化. 然而在实际开发工程中,我们会遇到,这个类的有些属性不需要序列化,比如包含用户的敏感信息(如密码),为了安全起见,不希望在网络操作(主 ...

  5. JS弹出窗口代码大全(详细整理)

    1.弹启一个全屏窗口 复制代码代码如下: <html> <body http://www.jb51.net','脚本之家','fullscreen');">; < ...

  6. Intrusion Analysis Learning

    目录 . 入侵分析简介 . 基于日志的入侵分析技术 . 入侵分析CASE . 入侵分析CASE . 入侵分析CASE . 入侵分析CASE 1. 入侵分析简介 Windows 清除日志的方法 wmic ...

  7. UVA 1149 Bin Packing

    传送门 A set of n 1-dimensional items have to be packed in identical bins. All bins have exactly the sa ...

  8. P1049送给圣诞夜的礼品(矩阵十大问题之四)

    https://vijos.org/p/1049 P1049送给圣诞夜的礼品 Accepted 标签:组合数学送给圣诞夜的礼物[显示标签]     返回代码界面 | 关闭   Pascal Pasca ...

  9. ExtJS入门教程05,grid的异步加载数据

    上一篇演示了extjs grid的基本用法,并加载了本地数据.今天我们将演示如何加载异步数据. 所谓异步,就是通过ajax的方式将服务器端的数据加载到我们的grid中.为了提供数据,我们先定义一个数据 ...

  10. linux在线学习

    https://www.shiyanlou.com/courses/running/291#note