给定一个进化的矩阵图,问在m次之后最终的物种有多少个,实际上这和线性代数及其应用里的一个例题是一样的...总之就相当于煞笔的套个矩阵不断去乘m次,然后每次都会根据得到进化后各物种的个数,矩阵快速幂求一下就好了。

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<string>
#include<set>
#include<algorithm>
#include<vector>
#include<queue>
#include<list>
#include<cmath>
#include<cstring>
#include<map>
#include<stack>
using namespace std;
#define INF 0x3f3f3f3f
#define maxn 205
#define ull unsigned long long
#define ll long long
#define hashmod 99999839
#define mod 9997
#define pi acos(-1)
double z;
int n,m,t,x,y;
double c[][maxn];
struct rec{
double a[maxn][maxn];
rec(){
for(int i = ;i < n;++i){
for(int j = ;j < n;++j){
a[i][j] = ;
}
}
}
void init(){
for(int i = ;i < n;++i){
for(int j = ;j < n;++j){
if(i == j) a[i][j] = 1.0;
}
}
}
rec operator*(const rec& p){
rec ans;
for(int i = ;i < n;++i){
for(int j = ;j < n;++j){
for(int k = ;k < n;++k){
ans.a[i][j] += a[i][k] * p.a[k][j];
}
}
}
return ans;
}
}; void solve(rec p){
rec ans;
ans.init();
while(m){
if(m & ){
ans = ans * p;
}
p = p * p;
m >>= ;
}
for(int i = ;i < n;++i){
c[][n-] += c[][i] * ans.a[i][n-];
}-
printf("%.0f\n",c[][n-]);
}
int main(){
// freopen("a.in","r",stdin);
// freopen("b.out","w",stdout);
while(~scanf("%d%d",&n,&m) && n + m){
for(int i = ;i < n;++i){
c[][i] = ;
}
for(int i = ;i < n;++i){
scanf("%lf",&c[][i]);
}
scanf("%d",&t);
rec p;
p.init();
while(t--){
scanf("%d%d%lf",&x,&y,&z);
p.a[x][y] += z;
p.a[x][x] -= z;
}
solve(p);
}
return ;
}

zoj2853 Evolution的更多相关文章

  1. Evolution(矩阵快速幂)zoj2853

    Evolution Time Limit: 5 Seconds      Memory Limit: 32768 KB Description Evolution is a long, long pr ...

  2. Evolution ZOJ2853

    矩阵太大导致爆栈 解决方法:矩阵不要开在main函数里面  全部在外面处理  main函数只能处理简单的赋值和加减 损失的要自减!! 最后为  sum+=t[i]*ans.m[i][n-1];   得 ...

  3. 差分进化算法 DE-Differential Evolution

    差分进化算法 (Differential Evolution)   Differential Evolution(DE)是由Storn等人于1995年提出的,和其它演化算法一样,DE是一种模拟生物进化 ...

  4. Evolution项目(1)

    Evolution项目是基于NFine修改的项目 主要改动为: 支持了.net core 1.0 支持了 EF core 1.0 支持数据库自动创建及Demo数据自动灌入 修改了授权方式 新增加了一个 ...

  5. ubuntu 14.04 下evolution邮箱客户端设置(腾讯企业邮箱)

    安装 evolution 有PPA可用,支持 Ubuntu 14.04 及衍生系统.打开终端,输入以下命令: sudo add-apt-repository ppa:fta/gnome3 sudo a ...

  6. ON THE EVOLUTION OF MACHINE LEARNING: FROM LINEAR MODELS TO NEURAL NETWORKS

    ON THE EVOLUTION OF MACHINE LEARNING: FROM LINEAR MODELS TO NEURAL NETWORKS We recently interviewed ...

  7. GFS: Evolution on Fast-forward

    GFS: Evolution on Fast-forward by Marshall Kirk McKusick, Sean Quinlan | August 7, 2009 A discussion ...

  8. 长期演进技术(LTE,Long Term Evolution)

    /********************************************************************************* * 长期演进技术(LTE,Long ...

  9. UNIX Filesystems - Evolution Design and Implementation.pdf

    UNIX Filesystems - Evolution Design and Implementation.pdf

随机推荐

  1. (2)《Head First HTML与CSS》学习笔记---img与基于标准的HTML5

    1.浏览器处理图像的过程: 1.服务器获取文件,显示出文本结构,以及预留默认的大小给<img>(如果该<img>有width-1值和height-1值,则根据这个值提前设好页面 ...

  2. 一台机器运行多个JBoss多实例

    JBossXMLJVMTomcat应用服务器  我们经常会遇到这种情况,有时候希望在同一台机器上部署若干个JBoss实例,上面运行不同的应用程序,这样的话无论由于什么原因需要对某个JBoss实例进行关 ...

  3. t-sql的楼梯:超越基本级别6:使用案例表达式和IIF函数

    t-sql的楼梯:超越基本级别6:使用案例表达式和IIF函数 源自:Stairway to T-SQL: Beyond The Basics Level 6: Using the CASE Expre ...

  4. 编写高质量Python代码的59个有效方法

    Python学习资料或者需要代码.视频加Python学习群:960410445 1. 用Pythonic方式思考 第一条:确认自己使用的Python版本 (1)有两个版本的python处于活跃状态,p ...

  5. fedora下yum安装gnome和kde桌面 (有问题 )

    转自:   http://linux.chinaunix.net/techdoc/system/2009/08/31/1133198.shtml 1.1  安装KDE桌面环境 yum groupins ...

  6. app dcloud 打包公用证书

    Android平台云端打包使用的DCloud公用证书 分类:HTML5+ 5+App开发 HBuilder|HBuilderX应用云端打包Android平台默认使用的DCloud公用证书,其信息如下: ...

  7. 07CSS表格

    CSS表格 表格边框 如需在 CSS 中设置表格边框,请使用 border 属性. table, th, td { border: 1px solid blue; } 折叠边框 border-coll ...

  8. 如何用SQL语句在指定字段前面插入新的字段?

    如何用SQL语句在指定字段前面插入新的字段? 2007-10-17 09:28:00|  分类: 笔记|举报|字号 订阅     create proc addcolumn @tablename va ...

  9. 用node写个简单的静态服务器

    直接上代码吧,我把它命名为 app.js, 只要在该文件所在目录下,控制台运行 node app.js 即可启动一个本地服务器了. /** * 服务器 * Author jervy * Date */ ...

  10. LOJ 2321 清华集训2017 无限之环 拆点+最小费用最大流

    题面:中文题面,这里不占用篇幅 分析: 看到题面,我就想弃疗…… 但是作为任务题单,还是抄了题解…… 大概就是将每个格子拆点,拆成五个点,上下左右的触点和一个负责连源汇点的点(以下简称本点). 这个这 ...