给定一个进化的矩阵图,问在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. SQL Case 语句的使用

    -----简单case 使用 select 学号,姓名, case 专业 when '金融系' then '1' when '材料成型及控制工程' then '2' else '3' end from ...

  2. R in action读书笔记(11)-第八章:回归-- 选择“最佳”的回归模型

    8.6 选择“最佳”的回归模型 8.6.1 模型比较 用基础安装中的anova()函数可以比较两个嵌套模型的拟合优度.所谓嵌套模型,即它的一 些项完全包含在另一个模型中 用anova()函数比较 &g ...

  3. iOS---iPad开发及iPad特有的特技

    iPad开发简单介绍 iPad开发最大的不同在于iPhone的就是屏幕控件的适配,以及横竖屏的旋转. Storyboard中得SizeClass的横竖屏配置,也不支持iPad开发. 1.在控制器中得到 ...

  4. Node.js——事件与发布机制

  5. Farseer.net轻量级ORM开源框架 V1.2版本升级消息

    V1.1到V1.2的更新,重构了很多类及方法,其中主要做了性能优化(取消所有反射,使用表达式树+缓存).解耦了SQL生成层(没有实体.队列的依赖,所有数据均通过表达式树传递解析) 先上内部更新历史记录 ...

  6. Swift protocol extension method is called instead of method implemented in subclass

    Swift protocol extension method is called instead of method implemented in subclass protocol MyProto ...

  7. Java入门第38课——猜字母游戏之设计程序结构

    问题        本案例需要实现猜字母游戏程序中的程序结构 方案        分析猜字母游戏可以看出,程序首先需要随机产生5个不同的字母作为需要猜测的结果,因此,可以先定义一个方法,以实现此功能: ...

  8. SourceTree 常用操作

    1.Sourcetree 每次拉取提交都需要输入密码(是有多个项目,他们的账户不一样) 输入以下命令: git config --global credential.helper osxkeychai ...

  9. Debug:This kind of launch is configured to openthe debug perspective when it解决办法

    http://blog.sina.com.cn/s/blog_7ca3aa020100zlha.html 启动tomcat时,myeclipse报错: This kind of launch is c ...

  10. tensorflow 学习笔记-- tf.reduce_max、tf.sequence_mask

    1.tf.reduce_max函数的作用:计算张量的各个维度上的元素的最大值.例子: import tensorflow as tfmax_value = tf.reduce_max([1, 3, 2 ...