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& ...
随机推荐
- Java线程:线程安全类和Callable与Future(有返回值的线程)
一.线程安全类 当一个类已经很好的同步以保护它的数据时,这个类就称为线程安全的.当一个集合是安全的,有两个线程在操作同一个集合对象,当第一个线程查询集合非空后,删除集合中所有元素的时候,第二个线程也来 ...
- JS可维护性代码
最近在看一本Js的书名叫“Javascript高级程序设计”在里面学到了很多东西,是一本不错的书,非常值得一看. 解耦css/javascript element.style.color=" ...
- Windows 10 IoT Serials 4 - 如何在树莓派上使用Cortana语音助手
从Windows 10 IoT Core 14986版本开始,微软已经加入Cortana语音助手功能.之前,我们只能使用本地语音识别,需要编写应用程序,下载到设备中才能实现.从现在开始,微软已经从系统 ...
- 每日一水之strcmp用法
strcmp函数 C/C++函数,比较两个字符串 设这两个字符串为str1,str2, 若str1==str2,则返回零: 若str1<str2,则返回负数: 若str1>str2,则返回 ...
- .Net程序员学用Oracle系列(13):合并语句(MERGE)
- 1.[**语法说明**](#segment1) - 1.1.[UPDATE 和 INSERT 可以只出现一个](#point11) - 1.2.[UPDATE 后面还可以再跟 WHERE](#po ...
- Quartz_理解3
什么是Quartz Quartz是一个开源的作业调度框架,由java编写,在.NET平台为Quartz.Net,通过Quart可以快速完成任务调度的工作. Quartz能干什么/应用场景 如网页游戏中 ...
- cmake的两个命令: option 和 configure_file
本节要讨论的是cmake的两个命令: option 和 configure_file option 选项,让你可以根据选项值进行条件编译. configure_file 配置文件,让你可以在代码文件中 ...
- 【踩坑速记】MIUI系统BUG,调用系统相机拍照可能会带给你的一系列坑,将拍照适配方案进行到底!
一.写在前面 前几天也是分享了一些学习必备干货(还没关注的,赶紧入坑:传送门),也好久没有与大家探讨技术方案了,心里也是挺痒痒的,这不,一有点闲暇之时,就迫不及待把最近测出来的坑分享给大家. 提起An ...
- PickerController 添加照片---iOS
前言 添加照片我们常用的地方有,更换头像,发布状态,朋友圈的时候等等,那我们接下来看看怎么添加上照片吧~ github: 效果图: 正文 1.你可以直接写,也可以声明一个属性.我习惯声明一个属性. @ ...
- ajax实现下载功能
ajax实现下载功能 适用场景:由于点击按钮下载excel响应时间过长,此时间段加入加载样式(灰色层.加载动画): 浏览器弹出下载框后,上面的加载样式去掉. 方 法 :使用jquery.fi ...