[POJ 2279] Mr. Young's Picture Permutations
2024-08-31 11:06:10
[题目链接]
http://poj.org/problem?id=2279
[算法]
杨氏矩阵与勾长公式
[代码]
#include <algorithm>
#include <bitset>
#include <cctype>
#include <cerrno>
#include <clocale>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <limits>
#include <list>
#include <map>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <utility>
#include <vector>
#include <cwchar>
#include <cwctype>
#include <stack>
#include <limits.h>
using namespace std;
#define MAXN 35
typedef long long ll; ll i,j,k,tmp,n,cnt;
ll a[MAXN];
ll num[MAXN*MAXN];
ll x,y; ll gcd(ll x,ll y)
{
return y == ? x : gcd(y,x % y);
} int main()
{ while (scanf("%lld",&n) != EOF && n)
{
cnt = ;
memset(num,,sizeof(num));
for (i = ; i <= n; i++) scanf("%lld",&a[i]);
for (i = ; i <= n; i++)
{
for (j = ; j <= a[i]; j++)
{
cnt++;
for (k = i + ; k <= n; k++)
{
if (a[k] >= j) num[cnt]++;
else break;
}
num[cnt] += a[i] - j + ;
}
}
x = ; y = ;
for (i = ; i <= cnt; i++)
{
x *= i;
y *= num[i];
tmp = gcd(x,y);
x /= tmp;
y /= tmp;
}
printf("%lld\n",x/y);
} return ;
}
最新文章
- BZOJ1588——[HNOI2002]营业额统计
- mysql下sql语句 update 字段=字段+字符串
- C#分部方法
- SVG ViewBox
- wpf ProgressBar使用
- android 进程和线程管理
- myBatIs.Net 调用Oracle 存储过程返回游标
- 《Metasploit魔鬼训练营》第三章
- PHPCMS v9.6.0 wap模块 SQL注入
- 查询sqlserver数据库表的记录数
- linux进程管理总结
- java对对象或者map的属性进行排序
- SpringBoot2.0源码分析(一):SpringBoot简单分析
- ElasticSearch——日志工具
- Django 的 orm 查询
- Vsftpd完全攻略(三)基于系统用户支持ftp上传 访问和vsftp安全设置
- ajax请求超时判断(转载)
- 应对Gradle联网问题、长时间卡在resolve dependencies的思路
- JAVAEE——宜立方商城13:Mycat数据库分片、主从复制、读写分离、100%Linux中成功安装Mysql的方法
- android api doc 一