[ACM]CCF CSP [201612-5]E题 卡牌游戏【75分的程序】

博客介绍了如何利用马尔可夫过程解决CCF CSP 201612-5 E题的卡牌游戏问题。通过建立概率转移方程组,并尝试使用高斯消元法求解。然而,由于方程数量巨大(2^n-2个),在n最大为15的情况下,高斯消元法效率过低,不适合处理极限数据。文章探讨了方程组的稀疏性,但未提出具体的优化策略。
摘要由CSDN通过智能技术生成

思路:马尔可夫过程,转为求解方程组:每一种状态有一个概率,把概率转移方程列出来,用高斯消元法求解。

由于一共有2^n-2个方程,n最大为15,高斯消元法解方程是三次方的,无法通过极限数据。方程组是稀疏的,不知道要怎么优化。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#include<queue>
#include<math.h>
#include<vector>
#include<iostream>
using namespace std;
#define N 15
#define pw(x) (1<<x)
int n,m;
double a[1<<N][N+1];  //
double p[N+1][N+1];
vector<int> qry;
int read(){
  scanf("%d%d",&n,&m);
  for (int i=1;i<n;i++)
  for (int j=i+1;j<=n;j++){
    scanf("%lf",&p[i][j]);
    p[j][i]=1.0-p[i][j];
  }
  for (int i=1;i<=m;i++){
    int S=0;
    for (int j=1;j<=n;j++){
      int k;
      scanf("%d",&k);
      if(k)S+=pw(j-1);
    }
      qry.pus
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值