POJ2337 Catenyms

微信小程序获取用户手机号全流程实战(附完整代码) 本文详细介绍了微信小程序获取用户手机号的全流程实战,包括前端授权、后端解密及安全合规要点。通过传统授权按钮和新版手机号快速验证组件两种方案,帮助开发者高效实现功能,并附完整代码示例。重点解析了微信小程序接口的使用技巧和常见问题解决方案,确保数据安全与用户体验。 阅读详情

传送门


题目大意:
判断单词能否首尾相连构成一个串,如果可以输出字典序最小的方案


和POJ1386一样,只不过这道题需要输出欧拉路径,并且是最小字典序(怎么判断就不说了,详细讲解请见POJ1386)
先忽略字典序最小这个问题……..
我们求欧拉路径用的当然是dfs,当我们dfs的时候发现有一个点无路可走了,那么我们回溯,把来时的边压入栈中,然后重复这个过程,最后我们遍历完所有边之后,把栈中的边依次弹出,得到的就是欧拉路径,至于正确性,你自己手动模拟一遍就理解了
然后考虑怎么让字典序最小
把这些单词(也就是这些边)按照字典序从大到小排序,字典序大的先建边,这样就保证了我们先访问到的一定是字典序较大的边,这条边也就先被压入栈中,后被弹出,所以得到的一定是字典序最小滴……..
以后一定记得好好检查数组下标问题……..今天因为吧rank[i]写成了i,WA了一下午QAQ好忧伤……………..


代码如下:
代码略长…………….

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#define Min(a,b,c) min(a,min(b,c))
using namespace std;
const int maxn=1000+5;
char s[maxn][maxn];
int rank[maxn],cas,n,hd[30+5],cnt,in[30+5],out[30+5],S,stk[maxn],tail;
bool vis[maxn];
struct edge{
    int to,nxt,w,flag;
}e[maxn*2];
bool cmp(int a,int b){
    return max(0,strcmp(s[a],s[b]));
}
void add(int x,int y,int z){
    e[cnt].to=y;
    e[cnt].w=z;
    e[cnt].nxt=hd[x];
    e[cnt].flag=false;
    hd[x]=cnt++;
    in[y]++;
    out[x]++;
}
void dfs(int root){
    for(int i=hd[root];i!=-1;i=e[i].nxt)
        if(!e[i].flag){
            e[i].flag=true;
            dfs(e[i].to);
            stk[++tail]=e[i].w;
        }
}
bool checkdfs(){
    for(int i=0;i<cnt;i++)
        if(!e[i].flag)
            return false;
    return true;
}
bool check(){
    int la=0,lala=0,lalala=0,k;
    for(int i=1;i<=26;i++){
        if(out[i]-in[i]==1)
            lala++,S=i;
        if(in[i]-out[i]==1)
            la++;
        if(abs(out[i]-in[i])>1)
            lalala++;
    }
    if(la>1||lala>1||lalala>0)
        return false;
    return true;
}
signed main(void){
//  freopen("lala.in","r",stdin);
//  freopen("lala.out","w",stdout);
    scanf("%d",&cas);
    while(cas--){
        cnt=tail=0,S=1000;
        scanf("%d",&n);
        memset(hd,-1,sizeof(hd));
        memset(in,0,sizeof(in));
        memset(out,0,sizeof(out));
        memset(vis,false,sizeof(vis));
        for(int i=1;i<=n;i++)
            scanf("%s",s[i]),rank[i]=i;
        sort(rank+1,rank+n+1,cmp); 
        for(int i=1,x,y,z;i<=n;i++)
            x=s[rank[i]][0]-'a'+1,y=s[rank[i]][strlen(s[rank[i]])-1]-'a'+1,add(x,y,rank[i]),S=Min(S,x,y);
        if(!check())
            cout<<"***"<<endl;
        else{           
            dfs(S);         
            if(!checkdfs())
                cout<<"***"<<endl;
            else{
                for(int i=tail;i>1;i--)
                    cout<<s[stk[i]]<<".";
                cout<<s[stk[1]]<<endl;
            }
        }
    }
    return 0;
}

by >o< neighthorn

ATE Pin Electronics电路学习总结 PinElectronics(PE)是ATE测试机的核心模拟前端电路,负责ATE与芯片间的信号转换与交互。主要包含四大功能模块:Driver实现逻辑信号到模拟电平的转换(VIH/VIL可编程);Receiver对DUT输出进行采样比较(VOH/VOL判定);ActiveLoad施加可编程电流负载;PPMU进行精密电压/电流测量。PE的性能直接影响功能测试和直流参数测试的精度,需定期校准维护。关键参数包括:Driver电压精度(±5mV)、Receiver比较精度(±10-50mV)、PPMU测量精度(±1- 阅读详情

相关推荐

实战指南:利用 LangGraph 的状态管理实现多轮对话的上下文隔离与持久化

本文详细介绍了如何利用LangGraph的状态管理机制,高效实现多轮对话中的上下文隔离与持久化。通过实战代码演示,从基础的消息历史管理到自定义状态扩展,再到使用SQLite进行生产级持久化,系统讲解了如何借助LangGraph的State和Checkpointer自动化处理对话记忆、用户隔离及数据存储,显著提升开发效率。

weixin_28396629的博客 488

POJ - 2337 (欧拉路)

题解:判断一下是不是欧拉路,然后按字典序加边进去,最后就是欧拉回路的模板#include<iostream> #include<cstring> #include<string> #include<algorithm> #include<cstdio> #include<vector> using namespace std; typedef pair<int,int> P; const int m

Soul 330

图信号处理中的多尺度分析:图小波变换与图傅里叶变换的对比与应用

本文深入探讨了图信号处理中的多尺度分析方法,重点对比了图小波变换(GWT)与图傅里叶变换(GFT)的技术特点与应用场景。通过分析图的拓扑结构,GWT展现出强大的局部洞察力,适用于异常检测和社区发现;而GFT则擅长全局频率分析,适合趋势分析和信号去噪。文章结合实战案例,为读者提供了方法选型指南和前沿进展,帮助开发者在生物信息学、社交网络分析等领域高效应用这些技术。

weixin_30369041的博客 406

POJ 2337 Catenyms (欧拉回路)

题意:给你n个单词,让每个单词的最后一个字母恰好等于下一个单词的第一个字母。构造这样一个串,使每个单词恰好被用到一次。取字典序最小的。 例如,把 aloha     arachnid    dog   gopher    rat    tiger  串成 aloha.arachnid.dog.gopher.rat.tiger。 若所个的单词不能构成这样一个串,那么输出“***”。 题解:乍一看

1846

VsCode+JLink+GCC替代Keil开发GD32程序-个人总结

对个人使用vscode+Jlink开发GD32程序做了总结,供需要者参考。

MyCollege1999的博客 2762

告别手绘!用Aseprite+Unity Tilemap,从AI生成到2D游戏地图的保姆级搭建流程

本文详细介绍了如何利用Aseprite和Unity Tilemap从AI生成素材到搭建2D游戏地图的完整流程。涵盖AI生成素材的预处理、图层管理、动画制作,以及Unity中的Tilemap系统配置和性能优化技巧,帮助开发者高效创建像素风游戏地图。

weixin_29015483的博客 580

POJ 2337 【欧拉路径<包含输出>】.cpp

题意:   给出n个字母   问是否可以全部头尾相接,输出按字典序排列 思路:   用套圈法求出欧拉回路 先把单词读入 排序保证最后结果是按字典序的 用并查集看是否连通 根据入度和出度看是否是欧拉路径,如果有必要也要找出起点 用套圈法求出欧拉路径 输出结果   Tips:   ※不能用ci...

weixin_30847939的博客 122

光模块封装工艺简介

光模块按照部件可以分为芯片、光器件、光模块三个层级;按照应用领域大概可分为电信应用、数通应用两个领域;按照内部器件的封装工艺可分为TO、Box、COB三大类。 但是,无论是哪种类型的光模块,其生产工艺基本上可以分为封装、测试两大块。   那什么叫做器件封装呢?我的理解器件封装就是利用胶水、焊料、机械、热量等手段把器件按照一定的先后次序结合形成一个整体的过程,就好像早上吃的煎饼,把面粉、鸡蛋、脆饼、烤肠、葱花等这些“器件”,按照一定的顺序,通过食用油、甜面酱、加热、卷起来等手段结合到一起,形成了美味的

qq_33253182的博客 2810

欧拉路径和欧拉回路的路径

欧拉路径和欧拉回路欧拉路径:从某结点出发一笔画成所经过的路线叫做欧拉路径。欧拉回路:在欧拉路径的基础上又回到起点。a、凡是由偶点组成的连通图,一定可以一笔画成。画时可以把任一偶点为起点,最后一定能以这个点为 终点画完此图。   b、凡是只有两个奇点的连通图(其余都为偶点),一定可以一笔画成。画时必须把一个奇点为起点,另 一个奇点终点。  c、其他情况的图都不能一笔画出。(有偶数个奇点...

angtongyou1893的博客 317

零外围电路!用CH340X实现ESP32一键下载的完整教程

本文详细介绍了如何利用CH340X系列USB转串口芯片实现ESP32的一键自动下载功能,无需任何外围逻辑控制电路。通过解析CH340X的增强型DTR/RTS功能,提供核心电路设计、电压匹配方案,并指导在Arduino IDE和PlatformIO中进行软件配置,帮助开发者构建简洁、可靠且低成本的ESP32下载方案。

gpu4optimizer的博客 770

从零开始用STM32驱动RGB屏:配置PCLK、DE同步信号的避坑指南

本文详细介绍了如何使用STM32驱动RGB接口LCD屏幕,重点解析了PCLK配置、同步信号极性和DE使能等关键参数的设置方法。通过实战代码示例和常见问题排查指南,帮助开发者避免常见配置错误,实现稳定的显示效果。特别针对800x480 IPS屏提供了优化建议和调试技巧。

sky77的博客 539

poj 2337

A catenym is a pair of words separated by a period such that the last letter of the first word is the same as the last letter of the second. For example, the following are catenyms: dog.gopher goph...

weixin_30877227的博客 209

Vue3 - Element Plus 日期选择器 el-date-picker,设置 type=week 变成周选择器后,将选择周时修改为 “周一至周日“ 为一组范围(详细示例代码,新手小白秒会)

vue3,element-plus,DatePicker日期选择器,el-date-picker,周,type=week,周选择器,日期选择器week怎么拿到具体的时间范围,如何取week周选择器的value值,format如何设置,时间选择器按周选择时展示具体日期范围,vue3elementPlus日期选择器选择一周7天的数据格式怎么拿到,el-date-picker设置type等于week后怎么设置format属性,format和value-format怎么设置,范围选择器周,一周,选择一周7天时间

🏆 前端领域优质创作者 1万+

POJ 2337 Catenyms

题目链接 : POJ2337 Catenyms Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8095   Accepted: 2130 Description A catenym is a pair of words separated by a period

Salvare219 668

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

POJ 2337 Catenyms(有向欧拉图:输出欧拉路径)

POJ 2337 Catenyms(有向欧拉图:输出欧拉路径) http://poj.org/problem?id=2337 题意:给你一组N个单词,现在要你输出这样一组单词序列。该序列包含了所有N个单词,且该序列中的前一个单词的最后一个字母与后一个单词的第一个字母相同。如果存在多个这种首尾相连的序列,就输出字典序最小的那个即可。 分析: 首先我们把每个单词看成一条边,把每个单词的首尾两个

code 1726

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

poj 2337 Catenyms

poj.org/problem?id=2337 这是一个有向图的欧拉路径问题 不忍吐槽 搞了好久。 #include #include #include #include #include using namespace std; const int N = 30; struct node{ int v; bool vis; string word;

思维迷宫 488

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

poj 2337Catenyms

                                                          Catenyms                Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13505   Accepted: 3521 Description A ca...

Endeavor_G的博客 252

POJ 2337 Catenyms (欧拉回路)

Catenyms Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7828   Accepted: 2057 Description A catenym is a pair of words separated by a period such that the l

BehappyXiang的专栏 980

POJ2337 Catenyms 欧拉路径

题目链接:http://poj.org/problem?id=2337 题目大意:给出n个单词,找出他们之间一条字典序最小的连接路径。两个单词能连接当且仅当前一个单词的尾字母等于后一个单词的首字母。 分析:单词接龙,POJ1386的升级,需要输出路径。我们可以先把这些单词排序,然后在进行建图,这样我们在dfs的时候就等于直接按字典序来搜索了。 实现代码如下: #in

AC_Gibson的专栏 495

poj 2337 Catenyms 欧拉路径

poj 2337 题意:给你一些单词,单词a的结尾若等于单词b的开头,就可以连接ab,要求把所有单词连接起来,如果情况有多种,要求字典序最小,如果不能连接所有单词,输出***。 思路:这个题看起来是求哈密顿路,实则求欧拉路,把每个单词的开头和结尾当做一条边连接起来,那么在这个有向图中,存在欧拉路则有解,不过需要注意的是,需要并查集判断图是否联通,不连通无解,以及根据欧拉路的性质:要么所有出度等...

ccsu_cat 247

POJ 2337 Catenyms 欧拉回路

Catenyms Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11660 Accepted: 3037Description A catenym is a pair of words separated by a period such that the last letter of the first

LuRiCheng的博客 473

POJ2337---Catenyms

Catenyms Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9887   Accepted: 2583 Description A catenym is a pair of words separated by a period such that the las

Alex 784

poj 2337-Catenyms

Catenyms Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9832   Accepted: 2561 Description A catenym is a pair of words separated by a period such that the las

u013599426的专栏 526

POJ - 2337 Catenyms 欧拉回路

测试数据在这http://acm.student.cs.uwaterloo.ca/~acm00/030125/data/ 首先在说这道题跟之前做的poj1386很像 但是多的就是要输入路径,并且是最小字典序 因为要保证字典序,所以就比较麻烦 首先来说是需要排序,注意,是保证字典序的基础。 然后建边是倒序加边,因为邻接表跑dfs是倒着跑滴。 然后就是首先判断一下入度出度条件,全部相等或者...

swust5120171204的博客 240
上一篇: BZOJ 1009 GT考试 KMP+DP+矩阵快速幂
下一篇: POJ 3420 Quad Tiling DP?递推?+矩阵快速幂
NeighThorn
博客等级 码龄11年 20粉丝 171原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值