1002: [FJOI2007]轮状病毒
1002: [FJOI2007]轮状病毒
Time Limit: 1 Sec Memory Limit: 162 MB
Submit: 2609 Solved: 1450
[Submit][Status]
Description
给定n(N<=100),编程计算有多少个不同的n轮状病毒。
Input
第一行有1个正整数n。
Output
将编程计算出的不同的n轮状病毒数输出
Sample Input
Sample Output
HINT
Source
var
i,j,k,l,m,n:longint;
a,b,c:array[..] of longint;
begin
readln(n);
if odd(n) then
begin
n:=(n+) div ;
if n<= then
begin
if n= then writeln() else writeln();
end
else
begin
a[]:=;
a[]:=;
b[]:=;
b[]:=;
for i:= to n do
begin
if odd(i) then
begin
k:=;
c[]:=b[]+;
for j:= to c[] do
begin
k:=k+b[j]*;
c[j]:=k mod ;
k:=k div ;
end;
for j:= to c[] do
begin
c[j]:=c[j]-a[j];
if c[j]< then
begin
dec(c[j+]);
c[j]:=c[j]+;
end;
end;
while c[c[]]= do dec(c[]);
a[]:=c[];
for j:= to a[] do
a[j]:=c[j];
end
else
begin
k:=;
c[]:=a[]+;
for j:= to c[] do
begin
k:=k+a[j]*;
c[j]:=k mod ;
k:=k div ;
end;
for j:= to c[] do
begin
c[j]:=c[j]-b[j];
if c[j]< then
begin
dec(c[j+]);
c[j]:=c[j]+;
end;
end;
while c[c[]]= do dec(c[]);
b[]:=c[];
for j:= to b[] do
b[j]:=c[j];
end;
end;
if odd(n) then
begin
c[]:=a[];
for i:=a[] downto do
c[i]:=a[i];
end
else
begin
c[]:=c[];
for i:=b[] downto do
c[i]:=b[i];
end;
fillchar(a,sizeof(a),);
a[]:=c[]*;
for i:= to c[] do
begin
for j:= to c[] do
begin
a[i+j-]:=a[i+j-]+c[i]*c[j];
a[i+j]:=a[i+j]+(a[i+j-] div );
a[i+j-]:=a[i+j-] mod ;
end;
end;
while a[a[]]= do dec(a[]);
for i:=a[] downto do
write(a[i]);
writeln;
end;
end
else
begin
n:=n div ;
if n<= then
begin
if n= then writeln() else writeln();
end
else
begin
a[]:=;
a[]:=;
b[]:=;
b[]:=;
for i:= to n do
begin
if odd(i) then
begin
k:=;
c[]:=b[]+; for j:= to c[] do
begin
k:=k+b[j]*;
c[j]:=k mod ;
k:=k div ;
end;
for j:= to c[] do
begin
c[j]:=c[j]-a[j];
if c[j]< then
begin
dec(c[j+]);
c[j]:=c[j]+;
end;
end;
while c[c[]]= do dec(c[]);
a[]:=c[];
for j:= to a[] do
a[j]:=c[j];
end
else
begin
k:=;
c[]:=a[]+; for j:= to c[] do
begin
k:=k+a[j]*;
c[j]:=k mod ;
k:=k div ;
end;
for j:= to c[] do
begin
c[j]:=c[j]-b[j];
if c[j]< then
begin
dec(c[j+]);
c[j]:=c[j]+;
end;
end;
while c[c[]]= do dec(c[]);
b[]:=c[];
for j:= to b[] do
b[j]:=c[j];
end;
end;
if odd(n) then
begin
c[]:=a[];
for i:= to c[] do
c[i]:=a[i];
end
else
begin
c[]:=b[];
for i:= to c[] do
c[i]:=b[i];
end;
fillchar(a,sizeof(a),);
a[]:=*C[];
for i:= to c[] do
for j:= to c[] do
begin
a[i+j-]:=a[i+j-]+c[i]*c[j];
a[i+j]:=a[i+j]+(a[i+j-] div );
a[i+j-]:=a[i+j-] mod ;
end;
while a[a[]]= do dec(a[]);
k:=;
for i:= to a[] do
begin
k:=k+a[i]*;
a[i]:=k mod ;
k:=k div ;
end;
while k> do
begin
inc(a[]);
a[a[]]:=k mod ;
k:=k div ;
end;
for i:=a[] downto do
write(a[i]);
writeln;
end;
end;
end.
1002: [FJOI2007]轮状病毒的更多相关文章
- 【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度
1002: [FJOI2007]轮状病毒 Description 给定n(N<=100),编程计算有多少个不同的n轮状病毒. Input 第一行有1个正整数n. Output 将编程计算出的不同 ...
- bzoj 1002 [FJOI2007]轮状病毒 高精度&&找规律&&基尔霍夫矩阵
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2234 Solved: 1227[Submit][Statu ...
- 生成树的计数(基尔霍夫矩阵):BZOJ 1002 [FJOI2007]轮状病毒
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3928 Solved: 2154[Submit][Statu ...
- BZOJ 1002 [FJOI2007]轮状病毒
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3106 Solved: 1724[Submit][Statu ...
- BZOJ 1002: [FJOI2007]轮状病毒【生成树的计数与基尔霍夫矩阵简单讲解+高精度】
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5577 Solved: 3031[Submit][Statu ...
- 【BZOJ】1002: [FJOI2007]轮状病毒(DP+规律+高精度)
http://www.lydsy.com/JudgeOnline/problem.php?id=1002 其实我还是看题解的,而且看了题解也没明白那公式怎么来的T_T,先水过了先把....以后研究一下 ...
- bzoj 1002 [FJOI2007]轮状病毒——打表找规律
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1002 看 Zinn 的博客:https://www.cnblogs.com/Zinn/p/9 ...
- 【刷题】BZOJ 1002 [FJOI2007]轮状病毒
Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子 和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下 ...
- BZOJ 1002 FJOI2007 轮状病毒 递推+高精度
题目大意:轮状病毒基定义如图.求有多少n轮状病毒 这个递推实在是不会--所以我选择了打表找规律 首先执行下面程序 #include<cstdio> #include<cstring& ...
随机推荐
- MyBatis与Spring集成
beans.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...
- 在Flex中用于处理XML对象的E4X 方法
ECMAScript for XML 规范定义了一组用于使用 XML 数据的类和功能.这些类和功能统称为 E4X.ActionScript 3.0 包含以下 E4X 类:XML.XMLList.QNa ...
- iOS动画案例(1)
受人所托,做一个类似于qq账号信息里的一个动画,感觉挺有意思,也没感觉有多难,就开始做了,结果才发现学的数学知识都还给体育老师了,研究了大半天才做出来. 先看一下动画效果: 用到的知识 ...
- 用Spark学习矩阵分解推荐算法
在矩阵分解在协同过滤推荐算法中的应用中,我们对矩阵分解在推荐算法中的应用原理做了总结,这里我们就从实践的角度来用Spark学习矩阵分解推荐算法. 1. Spark推荐算法概述 在Spark MLlib ...
- ASP.NET Forms身份认证
asp.net程序开发,用户根据角色访问对应页面以及功能. 项目结构如下图: 根目录 Web.config 代码: <?xml version="1.0" encoding= ...
- 关于Task的一点思考和建议
前言 本打算继续写SQL Server系列,接下来应该是死锁了,但是在.NET Core项目中到处都是异步,最近在写一个爬虫用到异步,之前不是很频繁用到异步,当用到时就有点缩手缩尾,怕留下坑,还是小心 ...
- 服务器部署项目出现问题:Unsupported major.minor version 52.0
问题描述: 编写一个web 前置服务,使用ant编译项目,将项目部署到服务器上,启动时报此错误:Unsupported major.minor version 52.0 网上给出错误原因是服务器安装的 ...
- 第一章:JavaScript简介
1:JavaScript诞生于1995年 2:一个完整的JavaScript实现应该由三部分组成 * 核心(ECMAScript):提供核心语言功能 *文档对象模型(DOM):提供访问和操作网页内容的 ...
- C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(上)
译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(上)),不对的地方欢迎指出与交流. 章节出自<Professional C# 6 ...
- The type or namespace name '****' could not be found
偶尔会在编译时出现“The type or namespace name '****' could not be found (are you missing a using directive or ...