[Codeforces 697C] PLEASE (矩阵特征向量)
来源:互联网 发布:淘宝粉丝红包 编辑:程序博客网 时间:2024/06/05 10:24
Codeforces - 697C
有三个倒扣着的碗,刚开始钥匙放在中间
之后每次将中间的碗和其他碗交换位置,
交换选择的碗是等概率的
问最后钥匙在中间的概率是多少
很容易就写出一个dp式子
然后将转移过程写成矩阵的形式
然后求矩阵的特征值和对应的特征向量
再把初始状态用特征向量表达,最后就能得出概率
#pragma comment(linker, "/STACK:102400000,102400000")#include <cstdio>#include <iostream>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#include <cctype>#include <map>#include <set>#include <queue>using namespace std;typedef pair<int,int> Pii;typedef long long LL;typedef unsigned long long ULL;typedef double DBL;typedef long double LDBL;#define MST(a,b) memset(a,b,sizeof(a))#define CLR(a) MST(a,0)#define Sqr(a) ((a)*(a))const int maxn=1e5+10;const LL MOD0=1e9+6, MOD1=1e9+7;int N;LL A[maxn];LL Pow(LL,LL,LL);int main(){ #ifdef LOCAL freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout); #endif LL tp=1, r; scanf("%d", &N); for(int i=0; i<N; i++) { LL x; cin >> x; tp=tp*(x%MOD0)%MOD0; } if(tp&1) r=-1; else r=1; tp=((tp-1)%MOD0+MOD0)%MOD0; LL q=Pow(2,tp,MOD1), p=q+r; p=p*Pow(3,MOD1-2,MOD1)%MOD1; cout << p << "/" << q << endl; return 0;}LL Pow(LL x, LL n, LL p){ LL res=1; while(n) { if(n&1) res=x*res%p; x=x*x%p; n>>=1; } return res;}
0 0
- [Codeforces 697C] PLEASE (矩阵特征向量)
- 重温矩阵(II) 特征向量
- Codeforces 696C PLEASE(数论)
- Codeforces 696C. PLEASE(快速幂+费马小定理)
- 幂法求矩阵特征向量和特征值的C语言程序
- 幂法求矩阵特征向量和特征值的C语言程序
- QR分解求矩阵特征值、特征向量 C语言
- Jacobi迭代求矩阵特征值和特征向量+C代码
- Codeforces Round #362 (Div. 1) C PLEASE
- Codeforces 696C PLEASE 概率(推公式)
- 矩阵特征值特征向量计算
- 矩阵特征值和特征向量
- 矩阵理论基础知识(1)--特征值与特征向量
- CodeForces-696C Please(数学题,快速幂取模,乘法逆元)
- 矩阵的特征值与特征向量
- 矩阵——特征向量(Eigenvector)
- 矩阵——特征向量(Eigenvector)
- 什么是特征向量,特征值,矩阵分解
- mybatis笔记
- La3523 Knights of the round table
- Java内存回收
- MAC上安装使用KYLIN(OLAP工具)完整版
- 关于C++ 顶层const和底层const对拷贝操作的影响
- [Codeforces 697C] PLEASE (矩阵特征向量)
- 寻找【NOIP2016提高A组模拟7.17】
- usaco 2.2.2 subset
- hadoop平台安装搭建
- Objective-c中.m、.h、.mm文件
- 【JZOJ4637】大鱼海棠
- 【职坐标】java集合框架简介
- C#基础知识(六)——冒泡排序的书写
- linux上yum安装memcache