zoukankan      html  css  js  c++  java
  • POJ 1392 Ouroboros Snake(数位欧拉)

    题目链接:http://poj.org/problem?id=1392

    题目大意:题意看的我头痛,其实跟HDU2894差不多,但是这题要求输出这条路径上第k个数,而不是输出路径。

    解题思路:也跟HDU2894差不多。。。。

    代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #define CLR(arr,val)  memset(arr,val,sizeof(arr))
     5 using namespace std;
     6 const int N=16;
     7 
     8 int n,k,cnt;
     9 int ans[1<<N];
    10 bool vis[1<<N];
    11 
    12 void euler(int st) {
    13     int s1=(st<<1)&((1<<n)-1);
    14     int s2=s1+1;
    15     //先试着添加0,再尝试添加1 
    16     if (!vis[s1]){
    17         vis[s1]=1;
    18         euler(s1);
    19         ans[++cnt]=0;
    20     }
    21     if (!vis[s2]) {
    22         vis[s2]=1;
    23         euler(s2);
    24         ans[++cnt]=1;
    25     }
    26 }
    27 
    28 void init(){
    29     CLR(vis,false);
    30     CLR(ans,0);
    31     cnt=0;
    32 }
    33 
    34 int main(){
    35     while(~scanf("%d%d",&n,&k)&&(n||k)){
    36         init();
    37         euler(0);    
    38         cnt+=n-1;            //cnt此时等于2^n还要补上开头0的n-1位
    39         cnt-=k;                //定位到第k个数 
    40         int t=0;
    41         for(int i=0;i<n;i++){
    42             t=t*2+ans[cnt-i];
    43         }
    44         printf("%d
    ",t);
    45     }
    46     return 0;
    47 }
  • 相关阅读:
    haproxy常用配置
    分区命令(大于2TB的分区)
    css基础-2 div布局
    css基础-1
    2.HTML5基本标签
    1.HTML基本结构、头部、注释
    AWK数组
    nginx rewrite 基础
    nginx location详解
    Linux命令练习.ziw
  • 原文地址:https://www.cnblogs.com/fu3638/p/7979275.html
Copyright © 2011-2022 走看看