HDU 5686 16年百度之星预选赛B
来源:互联网 发布:手机听评书软件 编辑:程序博客网 时间:2024/05/16 01:57
依照题意用DP递推出结果
int main(){ int n,i; double dp[202][3];//得数,其他结尾的序列,1结尾的序列 dp[1][0]=dp[1][2]=1; dp[1][1]=0; for(i=2;i<=200;i++) { dp[i][0]=dp[i-1][1]+dp[i-1][2]*2; dp[i][1]=dp[i-1][2]; dp[i][2]=dp[i-1][1]+dp[i-1][2]; } while(~scanf("%d",&n)) { printf("%.0lf\n",dp[n][0]); } return 0;}
发现是个飞波纳妾序列,显然到200是个非常大的数字,所以就用高精度处理
#include<stdio.h>#include<string.h>char a[202][50];void addchar(int x1,int x2){ int c[50]; int i=strlen(a[x1])-1; int j=strlen(a[x2])-1; int k=0; memset(c,0,sizeof(c)); while(i>=0||j>=0) { if(i>=0) { c[k]+=a[x1][i]-48; i--; } if(j>=0) { c[k]+=a[x2][j]-48; j--; } if(c[k]>=10) { c[k+1]++; c[k]=c[k]%10; } k++; } if(c[k]==0) k--; for(i=0;k>=0;i++,k--) { a[x1+1][i]=c[k]+48; } return;}int main(){ int i,j,n; memset(a,0,sizeof(a)); a[0][0]=a[1][0]='1'; for(i=2;i<201;i++) { addchar(i-1,i-2); } while(~scanf("%d",&n)) printf("%s\n",a[n]); return 0;}
阅读全文
0 0
- HDU 5686 16年百度之星预选赛B
- HDU 5688 16百度之星预选赛D
- HDU 5686:2016"百度之星" - 资格赛 Problem B
- 百度之星预选赛1003字典树模板
- hdu 4832 百度之星初赛二B
- HDU 5700区间交(百度之星2B)
- hdu 6119 百度之星初赛B 小小粉丝度度熊
- 2017百度之星初赛B-1002(HDU-6115)
- 百度之星B题
- HDU 5696 区间的价值 (百度之星2B)
- HDU-2017"百度之星"程序设计大赛-初赛(B)-1001-Chess
- HDU-2017"百度之星"程序设计大赛-初赛(B)-1006-小小粉丝度度熊
- HDU-2017"百度之星"程序设计大赛-初赛(B)-补题
- HDU 6114 Chess(DP)2017百度之星初赛(B) 1001
- hdu 6114/2017百度之星预赛B Chess(找规律)
- HDU-2017"百度之星"程序设计大赛-初赛(B)-1005-度度熊的交易计划
- HDU-2017"百度之星"程序设计大赛-初赛(B)-1002-Factory
- 2011百度之星B第一题
- Maven使用deploy上传jar包到远程库
- 85D
- arp协议以及脚本编写
- jQuery随笔7.17
- HDU-1243
- HDU 5686 16年百度之星预选赛B
- 动态内存分配(malloc、realloc、calloc函数)
- 链表带环和相交的问题
- 如何批量查询快递单号状态
- JAVA学习之旅--String数组的增删改查
- java重载/数组/递归
- 嵌套循环的两个实用例题
- c语言之内存管理(二)
- Alias Table