zoukankan      html  css  js  c++  java
  • JZYZOJ1237 教授的测试 dfs

    http://172.20.6.3/Problem_Show.asp?id=1237

     
    锻炼搜索的代码能力,不错的题。
    开始对dfs到底向下传递什么搞不清楚,需要想一下,noip难度的题还有这种情况,果然还是太蒻。
    代码
     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<algorithm>
     5 #include<cmath>
     6 #include<queue>
     7 #include<vector>
     8 using namespace std;
     9 int n;
    10 int f[30]={};
    11 int mm[30][2]={},tot;
    12 void init(int x,int siz,int xu){
    13     if(siz==0||siz==1)return;
    14     int w=xu,z;
    15     for(int i=0;i<siz;i++){
    16         if(w>f[i]*f[siz-1-i])w-=f[i]*f[siz-1-i];
    17         else{z=i;break;}
    18     }
    19     int zz2=w%f[siz-1-z];
    20     int zz1=w/f[siz-1-z]+1;
    21     if(zz2==0){zz2=f[siz-1-z];zz1-=1;}
    22     if(z!=0){mm[x][0]=++tot;init(tot,z,zz1);}
    23     if(siz-1-z!=0){mm[x][1]=++tot;init(tot,siz-1-z,zz2);}
    24 }
    25 void put(int x){
    26     if(mm[x][0]){printf("(");put(mm[x][0]);printf(")");}
    27     printf("X");
    28     if(mm[x][1]){printf("(");put(mm[x][1]);printf(")");}
    29 }
    30 int main(){
    31     int ma=100000000;
    32     f[1]=1;f[0]=1;
    33     for(int i=2;f[i-1]<ma;i++){
    34         for(int j=0;j<=(i-1)/2;j++){
    35             f[i]+=f[j]*f[i-1-j]*2;
    36             if(j==i-1-j){
    37                 f[i]-=f[j]*f[i-1-j];
    38             }
    39         }
    40     }
    41     while(~scanf("%d",&n)){
    42         if(n==0)break;
    43         memset(mm,0,sizeof(mm));
    44         tot=1;int siz;
    45         int q=0;
    46         for(int i=1;;i++){
    47             q+=f[i];
    48             if(n<=q){siz=i;q-=f[i];break;}
    49         }
    50         init(1,siz,n-q);
    51         put(1);
    52         cout<<endl;
    53     }
    54     return 0;
    55 }
    View Code
  • 相关阅读:
    四种常用正则表达式
    解读tomcat的server.xml文件
    存储过程与函数的区别
    Servlet如何处理一个请求?
    Oracle归档模式相关
    常用几个Struts2标签
    Js中比较时间大小
    传值出现中文乱码问题
    JAVA常用转义符
    HDU 5967(LCT)
  • 原文地址:https://www.cnblogs.com/137shoebills/p/7786981.html
Copyright © 2011-2022 走看看