[BZOJ1002]轮状病毒 做题笔记
来源:互联网 发布:淘宝开学季活动策划 编辑:程序博客网 时间:2024/05/23 01:25
·· / ·– ·· ·-·· ·-·· / ·–· · ·-· ··· ·· ··· - / ··- -· - ·· ·-·· / ·· / ·– ·· -·
题目来源:http://www.lydsy.com/JudgeOnline/problem.php?id=1002
这题我还是直接放一下题解链接吧,感觉这个DP真心想不到。
http://www.lydsy.com/JudgeOnline/wttl/thread.php?tid=419
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;struct bign { int s[300],len; bign operator = (const int x) { len=0;s[0]=0;int num=x; if (!num) len=1,s[0]=0; else for (;num;s[len++]=num%10,num/=10); return *this; } bign operator + (const bign& b) const { bign c; c.len=0; for (int i=0,g=0;g||i<max(len,b.len);i++) { int x=g; if (i<len) x+=s[i]; if (i<b.len) x+=b.s[i]; c.s[c.len++]=x%10; g=x/10; } return c; }};bign f[200][3];bign ans;int n;int main () { scanf("%d",&n); ans=-2; f[1][0]=1;f[1][1]=0;f[1][2]=0; for (int i=2;i<=n;i++) { f[i][0]=f[i-1][0]+f[i-1][1]; f[i][1]=f[i][2]=f[i-1][0]+f[i-1][1]+f[i-1][2]; } ans=ans+f[n][0]+f[n][1]; f[1][0]=0;f[1][1]=1;f[1][2]=1; for (int i=2;i<=n;i++) { f[i][0]=f[i-1][0]+f[i-1][1]; f[i][1]=f[i][2]=f[i-1][0]+f[i-1][1]+f[i-1][2]; } ans=ans+f[n][0]+f[n][1]+f[n][2]; for (int i=ans.len-1;i>=0;i--) printf("%d",ans.s[i]); }
0 0
- [BZOJ1002]轮状病毒 做题笔记
- BZOJ1002轮状病毒
- [BZOJ1002]轮状病毒
- BZOJ1002轮状病毒
- [Bzoj1002][FJOI2007]轮状病毒
- bzoj1002[FJOI2007]轮状病毒
- 【bzoj1002】【FJOI2007】【轮状病毒】
- [高精度][BZOJ1002][FJOI2007]轮状病毒
- 【FJOI2007】【BZOJ1002】轮状病毒
- bzoj1002【fjoi2007】轮状病毒
- [BZOJ1002] [FJOI2007] 轮状病毒
- BZOJ1002 [FJOI2007]轮状病毒
- BZOJ1002: [FJOI2007]轮状病毒
- bzoj1002: [FJOI2007]轮状病毒
- 【FJOI2007】bzoj1002 轮状病毒
- 【bzoj1002】[FJOI2007]轮状病毒
- bzoj1002 [FJOI2007]轮状病毒
- bzoj1002: [FJOI2007]轮状病毒
- Cent os 6.5 zabbix_server2.4.7源码安装
- ISO8601转换成Date类型
- Python 的VideoWriter
- ASP.NET cache缓存的用法
- 不使用ant-contrib如何在ant脚本中处理字符串?
- [BZOJ1002]轮状病毒 做题笔记
- ArcGIS 使用方法备注
- zTree的某些特殊功能(拖拽和多选)
- 思维方式
- sildingdraw的使用和需要注意的地方
- Redis——如何阅读 Redis 源码?
- Android bat批处理自动执行adb shell命令
- 算法练习-NOJ-1043-跳马
- Day2