两道题目意思差不多

第一题是10进制 , 第二题是2进制的

都是利用欧拉回路的fleury算法来解决

因为我总是希望小的排在前面,所以我总是先将较小数加入栈,再利用另一个数组接收答案,但是这里再从栈中导出来答案要倒一下了,这一点要注意

poj 1780

 #include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
#define N 1000010 int ans[N] , cnt[N] , stack[N];
int top1 , top2;
int mod;
void euler(int v)
{
while(cnt[v]<)
{
int w=v*+cnt[v];
cnt[v]++;
stack[top1++]=w;
v=w%mod;
}
} int main()
{
// freopen("in.txt" , "r" , stdin);
int n;
while(scanf("%d" , &n) , n)
{
top1 = , top2 = , mod = (int)pow(10.0,(n-)*1.0);
stack[top1++] = ;
memset(cnt , , sizeof(cnt));
cnt[]++;
while(top1)
{
ans[top2++] = stack[--top1];
int v = ans[top2-]/;
euler(v);
}
for(int i= ; i<=n ; i++) printf("%d" , );
for(int i=top2- ; i>= ; i--) printf("%d" , ans[i]%);
puts("");
}
return ;
}

poj 1392

 #include <cstdio>
#include <cstring>
#include <iostream> using namespace std;
#define N (1<<16) int ans[N] , cnt[N] , stack[N];
int top1 , top2 , mod; void euler(int v , int mod)
{
while(cnt[v]<)
{
int w=v*+cnt[v];
cnt[v]++;
stack[top1++]=w;
v=w%mod;
}
} int q_pow(int a , int b)
{
int ans = ;
while(b)
{
if(b&) ans *= a;
a*=a;
b>>=;
}
return ans;
} int main()
{
// freopen("in.txt" , "r" , stdin);
int n,k;
while(scanf("%d%d" , &n , &k) , n||k)
{
top1=top2=;
memset(cnt , , sizeof(cnt));
stack[top1++] = ;
mod = q_pow( , n-);
while(top1)
{
ans[top2++] = stack[--top1];
int v=stack[top1]/;
euler(v , mod);
}
int index = top2-k-;
printf("%d\n" , ans[index]);
}
return ;
}

poj 1780 , poj 1392 欧拉回路求前后相互衔接的数字串的更多相关文章

  1. POJ 1780 Code(欧拉回路+非递归dfs)

    http://poj.org/problem?id=1780 题意:有个保险箱子是n位数字编码,当正确输入最后一位编码后就会打开(即输入任意多的数字只有最后n位数字有效)……要选择一个好的数字序列,最 ...

  2. poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数

    poj 1523Tarjan算法的含义——求取割点可以分出的连通分量的个数 题目大意:如题目所示 给你一些关系图——连通图,想要问你有没有个节点,损坏后,可以生成几个互相独立的网络(也就是连通分量), ...

  3. zoj 1119 / poj 1523 SPF (典型例题 求割点 Tarjan 算法)

    poj : http://poj.org/problem?id=1523 如果无向图中一个点 u 为割点 则u 或者是具有两个及以上子女的深度优先生成树的根,或者虽然不是一个根,但是它有一个子女 w, ...

  4. POJ - 3294~Relevant Phrases of Annihilation SPOJ - PHRASES~Substrings POJ - 1226~POJ - 3450 ~ POJ - 3080 (后缀数组求解多个串的公共字串问题)

    多个字符串的相关问题 这类问题的一个常用做法是,先将所有的字符串连接起来, 然后求后缀数组 和 height 数组,再利用 height 数组进行求解. 这中间可能需要二分答案. POJ - 3294 ...

  5. POJ 1496 POJ 1850 组合计数

    Code Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8256 Accepted: 3906 Description Tran ...

  6. [LeetCode] Sum Root to Leaf Numbers 求根到叶节点数字之和

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...

  7. js求连个数之间的数字

    整理出自项目中一个需求,求两个数之间的数字. const week = function(arr,arr2){ let a=parseInt(arr); let b=parseInt(arr2); l ...

  8. 求矩阵中各列数字的和 Exercise08_01

    import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年12月 * 题目:求矩阵中各列数字的和 * */ public class Exercise ...

  9. 计蒜之道 初赛 第三场 题解 Manacher o(n)求最长公共回文串 线段树

    腾讯手机地图 腾讯手机地图的定位功能用到了用户手机的多种信号,这当中有的信号的作用范围近.有的信号作用的范围则远一些.有的信号相对于用户在不同的方位强度是不同的,有的则是在不论什么一个方向上信号强度都 ...

随机推荐

  1. 生产环境中nginx既做web服务又做反向代理

    一.写对于初入博客园的感想 众所周知,nginx是一个高性能的HTTP和反向代理服务器,在以前工作中要么实现http要么做反向代理或者负载均衡.尚未在同一台nginx或者集群上同时既实现HTTP又实现 ...

  2. 【C#】枚举

    枚举 public static class CommonEnums { public enum people { /// <summary> ///男人 /// </summary ...

  3. AJPFX关于枚举,泛型详解

    枚举类型是JDK5.0的新特征.Sun引进了一个全新的关键字enum来定义一个枚举类.下面就是一个典型枚举类型的定义:public enum Color{RED,BLUE,BLACK,YELLOW,G ...

  4. 8.bootstrap下拉菜单、按钮组、按钮式下拉菜单

    下拉菜单 dropdown 对齐方式: .dropdown-menu-right     .dropdown-menu-left <div class="container" ...

  5. 版本号比较versioncompare方法,java实现

    测试

  6. CMSIS的简介

    Cortex微控制器软件接口标准(Cortex Microcontroller Software Interface Standard)是ARM和一些编译器厂家以及半导体厂家共同遵循的一套标准,是由A ...

  7. checking for gcc... no

    ./configure 后显示checking for gcc... nochecking for cc... nochecking for cl.exe... noconfigure.sh:erro ...

  8. java 读取txt,java读取大文件

    java 读取txt,java读取大文件 package com.bbcmart.util; import java.io.File;import java.io.RandomAccessFile;i ...

  9. QTableWidget表头样式

    转载请注明出处:http://www.cnblogs.com/dachen408/p/7742680.html QTableView { background-color: rgba(255, 255 ...

  10. 关于 propertychange 兼容性问题

    on 事件 $('body').on('property input','.class',function(){ alert(123); });