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\n",t); 45 } 46 return 0; 47 }
标签:
欧拉回路&欧拉通路
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 【译】我们最喜欢的2024年的 Visual Studio 新功能
· 个人数据保全计划:从印象笔记迁移到joplin
· Vue3.5常用特性整理
· 重拾 SSH:从基础到安全加固
· 为什么UNIX使用init进程启动其他进程?