
基础算法(贪心、模拟、枚举、递推、搜索……)
黑麦的尾巴
这个作者很懒,什么都没留下…
展开
-
HDU-2044
原题点击打开链接#includeint main(void){int i,n,a,b;double f[51]={1,2};for(i=2;i51;i++)f[i]=f[i-1]+f[i-2];scanf("%d",&n);while(n--){ scanf("%d%d",&a,&b); printf("%.lf\n",f[b-a-1]);}return 0原创 2013-07-21 09:50:33 · 549 阅读 · 0 评论 -
HDU-2070
原题点击打开链接#include#includeint main(void){int n,i;long long f[100]={0,1};for(i=2;i<100;i++)f[i]=f[i-1]+f[i-2];while(scanf("%d",&n)!=EOF){ if(n==-1||n>50||n<0)break; printf("%I64d\n",f[n])原创 2013-07-27 10:17:59 · 584 阅读 · 0 评论 -
DFS算法
大概深度优先搜索(Depth-First-Search)是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。属于盲目搜索。深度原创 2013-07-24 09:38:09 · 1912 阅读 · 0 评论 -
HDU-2086
原题点击打开链接#include #includeusing namespace std;int main(){int n,i;while(cin>>n){double a[3003],c[3003];cin>>a[0]>>a[n+1];for(i=1; i<=n; i++)cin>>c[i];double sum=0;for(i=n; i>0; i--)sum+=c[原创 2013-07-21 10:40:50 · 610 阅读 · 0 评论 -
HDU-2049
原题点击打开链接#includelong long fac(int n){if(n==0)return 1;else return fac(n-1)*n;}long long f(int n){if(n==1)return 0;else if(n==2)return 1;else if(n!=0&&n!=1)return (n-1)*(f(n-1)+f(n-2));}int原创 2013-07-21 10:07:31 · 653 阅读 · 0 评论 -
HDU-2045
原题点击打开链接#include #include int main(){ int n,i; long long s[51]; s[1]=3;s[2]=6;s[3]=6;s[4]=18; for(i=5;i<=50;i++) s[i]=2*s[i-2]+s[i-1]; while(scanf("%d",&n)>0) {prin原创 2013-07-21 09:55:48 · 641 阅读 · 0 评论 -
HDU-2047
原题点击打开链接#includeusing namespace std;int main(){ int n; _int64 a[41]={0,3,8}; for(int i=3;i<41;i++) a[i]=2*(a[i-1]+a[i-2]); while(cin>>n) printf("%I64d\n",a[n]); return 0;}原创 2013-07-21 09:57:17 · 623 阅读 · 0 评论 -
HDU-2058
原题点击打开链接#include#includeusing namespace std;int main(){ int n,m,b,a,k; while(cin>>n>>m,n||m) { b=sqrt(2.0*m); for(k=b;k>0;k--) { a=m/k-(k-1)/2;原创 2013-07-21 10:13:53 · 681 阅读 · 0 评论 -
HDU-2048
原题点击打开链接#includeint main(){ int T,n; double ans[8]={0,0,50,33.33,37.50,36.67,36.81,36.79}; scanf("%d",&T); while(T--) { scanf("%d",&n); if(n>=7) printf原创 2013-07-21 10:05:42 · 887 阅读 · 0 评论 -
HDU-2064
原题点击打开链接#includeint main(void){ int i,n;long long f[36]={0,2};for(i=2;i<36;i++)f[i]=3*f[i-1]+2;while(scanf("%d",&n)!=EOF){ printf("%I64d\n",f[n]);}return 0;}原创 2013-07-27 09:57:54 · 597 阅读 · 0 评论