poj 1270 Following Orders 拓扑

简介:

这题标准的拓扑排序,用入度为0作为条件dfs比较方便。

唯一要注意的就是输入里会有多余空格……

 

/*
author:jxy
lang:C/C++
university:China,Xidian University
**If you need to reprint,please indicate the source**
*/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int in[26],n;
int edge[26][26],num[26];
char t;
bool input()
{
    memset(in,-1,sizeof(in));
    memset(num,0,sizeof(num));
    n=0;
    bool flag=0;
    while((cin>>t))////输入可能有多个空格
    {
        in[t-'a']=0;n++;
        while(!isalpha(t=getchar()))
            if(t=='\n'){flag=1;break;}
        if(flag)break;
        ungetc(t,stdin);
    }
    if(!n)return 0;
    int now=0,next;
    while(cin>>t)
    {
        now=t-'a';
        cin>>t;
        next=t-'a';
        in[next]++;
        edge[now][num[now]++]=next;
        while(!isalpha(t=getchar()))
            if(t=='\n'){flag=0;break;}
        if(!flag)break;
        ungetc(t,stdin);
    }
    return 1;
}
void change(int now,int flag)
{
    for(int i=0;i<num[now];i++)
        in[edge[now][i]]+=flag;
}
char ans[30]={'\0'};
void dfs(int now)
{
    if(now==n)
    {
        printf("%s\n",ans);
        return;
    }
    for(int i=0;i<26;i++)
    {
        if(in[i]!=0)continue;
        ans[now]=i+'a';
        change(i,-1);//减入度
        in[i]=-1;//防止环
        dfs(now+1);
        in[i]=0;change(i,1);//恢复
    }
    return;
}
int main()
{
   bool flag=0;
   while(input())
   {
       ans[n]='\0';
       if(flag)puts("");
       dfs(0);
       flag=1;
   }
}


 

目录
相关文章
|
9月前
|
存储 人工智能 Kubernetes
MiniMax云上AI数据湖最佳实践
本简介介绍MiniMax云上AI数据湖的最佳实践。MiniMax成立于2021年,专注于通用人工智能领域,提供ToB和C端产品。面对每日3万亿token、2000万张图片及7万小时语音数据的处理需求,MiniMax基于阿里云构建了稳定灵活的基础设施,采用多云策略实现全球化部署。通过引入Kubernetes、Ray等技术,优化了多模态数据处理效率,并利用对象存储与数据湖技术降低成本。此外,与阿里云合作开发边缘缓存方案,提升跨地域数据传输效率。主讲人:阿里云弹性计算技术专家高庆端。
359 10
|
12月前
|
边缘计算 人工智能 物联网
|
人工智能 移动开发 IDE
安利几款与钉钉平台无缝集成打通账号认证的企业文档管理系统
钉钉是很多中小企业都爱用的产品,开通账号就能直接使用了,应用生态非常丰富,尤其是AI技术的应用,走在行业前列。但仍有很多企业对于全面拥抱SaaS服务充满了顾虑,尤其在内部资料的管理这块,即使钉钉在线文档已经提供了非常优秀的协作体验,不少客户仍更偏爱私有部署在局域网里面的企业文档管理系统。那么能将企业内部部署的文档管理系统集成到钉钉平台上面,和钉钉文档并行使用呢?市面上又有哪些企业文档管理系统软件支持与钉钉的集成呢?这也是很多企业客户的疑问。
安利几款与钉钉平台无缝集成打通账号认证的企业文档管理系统
|
监控 安全 网络安全
网络边界详解
网络边界详解
|
缓存 弹性计算 分布式计算
阿里云服务器2核2G、2核4G、4核8G、8核16G收费标准与活动价格参考
阿里云服务器可选配置为1核1G,最高为256核3072G,其中大部分用户购买最多的配置是2核2G、2核4G、4核8G、8核16G,2024年,2核2G配置只要61元/1年,2核4G配置只要199元/1年,4核8G配置只要955.58元/1年,8核16G配置只要1803.17元/1年。本文为大家整理汇总了阿里云服务器2核2G、2核4G、4核8G、8核16G配置的收费标准与活动价格情况,以供参考。
阿里云服务器2核2G、2核4G、4核8G、8核16G收费标准与活动价格参考
timedatectl 如何关闭
【5月更文挑战第24天】timedatectl 如何关闭
315 0
|
SQL XML IDE
Fluent mybatis
众多框架都是从无到有,从有到简的一个过程,核心理念都是为简化开发为生。
720 0
Fluent mybatis
|
存储 安全 算法
什么是量子安全?量子计算时代下的基本安全技术
什么是量子安全?量子计算时代下的基本安全技术
742 0
|
XML Java 数据格式
SpringBoot中配置freemarker自动配置忽略设置
o.s.b.a.freemarker.FreeMarkerAutoConfiguration:65 - Cannot find template location(s): [classpath:/templates] (please add some templates, check your FreeMarker configuration, or set spring.freemarker.checkTemplateLocation=false)
SpringBoot中配置freemarker自动配置忽略设置