[BZOJ 1002] [FJOI 2007] 轮状病毒
1002: [FJOI2007]轮状病毒
Time Limit: 1 Sec Memory Limit: 162 MB
Submit: 3045 Solved: 1687
[Submit][Status][Discuss]
Description
给定n(N<=100),编程计算有多少个不同的n轮状病毒。
Input
第一行有1个正整数n。
Output
将编程计算出的不同的n轮状病毒数输出
Sample Input
Sample Output
然而我并不懂基xxxxx矩阵,于是我在JSOI的时候硬推了一把
我做了大死……于是我jsoi就挂了TAT
就差不多这上面的递推式吧
某聚聚:我就推了10分钟;
我:我推了俩小时。。
哎差距啊= =
哦还有一件事,要上高精度。。
1 #include<bits/stdc++.h> 2 using namespace std; 3 struct bn { 4 int len; 5 int k[110]; 6 }f[101]; 7 // f(i)=3f(i-1)-f(i-2)+2 8 bn mul(bn a) { 9 bn ans; 10 memset(ans.k,0,sizeof(ans.k)); 11 ans.len=a.len; 12 for (int i=1;i<=a.len;++i) { 13 ans.k[i]+=a.k[i]*3; 14 if (ans.k[i]>=10) { 15 ans.k[i+1]+=ans.k[i]/10; 16 ans.k[i]%=10; 17 } 18 } 19 if (ans.k[ans.len+1]>0) ans.len++; 20 return ans; 21 } 22 bn addtwo(bn a) { 23 bn ans; 24 ans.len=a.len; 25 memset(ans.k,0,sizeof(ans.k)); 26 for (int i=1;i<=ans.len;++i) 27 ans.k[i]=a.k[i]; 28 ans.k[1]+=2; 29 int ka=1; 30 while(ans.k[ka]>=10) { 31 ans.k[ka+1]+=ans.k[ka]/10; 32 ans.k[ka++]%=10; 33 } 34 if (ka>ans.len) ans.len=ka; 35 return ans; 36 } 37 bn xminus(bn a, bn b) { 38 bn ans; 39 ans.len=a.len; 40 memset(ans.k,0,sizeof(ans.k)); 41 for (int i=1;i<=a.len;++i) { 42 ans.k[i]+=a.k[i]-b.k[i]; 43 if (ans.k[i] < 0) { 44 ans.k[i]+=10; 45 ans.k[i+1]--; 46 } 47 } 48 while(ans.k[ans.len]==0) ans.len--; 49 return ans; 50 } 51 int main() { 52 int n; scanf("%d",&n); 53 //for (int i=1;i<=n;++i) memset(f[i].k,0,sizeof(f[i].k)); 54 f[1].k[1]=1;f[2].k[1]=5;f[1].len=1;f[2].len=1; 55 //bn ans=xminus(mul(f[2]),f[1]); 56 //for (int i=ans.len;i>=1;--i) printf("%d",ans.k[i]); 57 for (int i=3;i<=n;++i) f[i]=addtwo(xminus(mul(f[i-1]),f[i-2])); 58 //f[n]=mul(f[2]); 59 for (int i=f[n].len;i>=1;--i) printf("%d",f[n].k[i]); 60 return 0; 61 }
View Code
转载于:https://www.cnblogs.com/TonyNeal/p/bzoj1002.html
[BZOJ 1002] [FJOI 2007] 轮状病毒相关推荐
- BZOJ 1002 1003 1007 被屠记录
为什么我不是一题一题写的呢..因为太弱了!某些题目就跳过去了. 主要跳过去的是数学题,Octgap201说过我有必杀技-----trigon对题目使用了 who cares 效果拔群! ....... ...
- bzoj 1002: [FJOI2007]轮状病毒
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 5373 Solved: 2924 [Submit][Sta ...
- bzoj - 1002 【Kirchhoff矩阵】
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 4746 Solved: 2597 [Submit][Sta ...
- ●BZOJ 4408 [Fjoi 2016]神秘数
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4408 题解: 主席树 首先,对于一些数来说, 如果可以我们可以使得其中的某些数能够拼出 1- ...
- Bzoj 4408: [Fjoi 2016]神秘数 可持久化线段树,神题
4408: [Fjoi 2016]神秘数 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 177 Solved: 128 [Submit][Stat ...
- BZOJ 1032 JSOI 2007 祖码Zuma 区间DP
题目大意:依照祖玛的玩法(任意选颜色),给出一段区间.问最少用多少个球可以把全部颜色块都消除. 思路:把输入数据依照连续的块处理.保存成颜色和数量.然后用这个来DP.我们知道,一个单独的块须要两个同样 ...
- BZOJ 1631==USACO 2007== POJ 3268 Cow Party奶牛派对
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19226 Accepted: 8775 Description One ...
- BZOJ 4408: [Fjoi 2016]神秘数(可持久化线段树)
题目描述 http://www.lydsy.com/JudgeOnline/problem.php?id=4408 题目大意:求最小不能被一段区间中某些数的和表示的数.(还是看题面吧) 思路 可持久化 ...
- BZOJ 1093 ZJOI 2007 最大半连通子图 强联通分量+拓扑图DP
今天是放假的第一天(不说什么废话了) 什么是半连通子图?就是此图中包含的所有点两两点之间至少有一条单向路径. 题目问了两个问题 1.最大半连通子图的大小 2.最大半连通子图的个数 好了,这个问题看上去 ...
最新文章
- 玩转iPhone网络通讯之BSD Socket篇
- PHP PDO 预处理语句与存储过程
- java jwt 验证_教程:用Java创建和验证JWT
- win2012iis php,Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程
- 博客园去除文章页底部的推广链接
- ARC075 F.Mirrored
- phpmyadmin-错误:配置文件权限错误,不应任何用户都能修改!这里有答案
- 为什么摩根大通「发币」标志着企业区块链应用元年?
- apk一键脱壳工具_一键新机!强大的抹机王来了!
- 淘客APP有哪些功能?
- Windows聚焦壁纸保存方法
- 可视化:小型有向网络HTML自动生成器
- 网络创业成功的7堂课(读书笔记)
- 2个或2个以上路由器串联上网,在同一网段
- [读书笔记]固定收益证券 第三版 Fixed income securities
- android pad课件制作软件,平板电脑可以做ppt吗
- ORA-04063: package body “SYS.DBMS_DATAPUMP“ has errors
- mac 卸载php版本,mac osx 更改自带php版本
- TextView与EditText
- 内蒙古邮政计算机考试题目,内蒙古邮政储蓄笔试
热门文章
- linux下安装sbt_如何在Linux上安装SBT
- three.ar.js_我们如何通过AR.js使产品吉祥物栩栩如生
- 用拓扑排序检测有向图中是否有环
- 敏捷过程、极限编程和SCRUM的关系
- 笔试算法题(58):二分查找树性能分析(Binary Search Tree Performance Analysis)
- 王豪:HW265到“HW266”
- css3中的box-sizing属性
- CentOS 7 SSH 免密登录的方法
- OpenStack 和 Cloud Foundry
- puppet(1.7-2.1)