博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #434 D
阅读量:5162 次
发布时间:2019-06-13

本文共 1201 字,大约阅读时间需要 4 分钟。

题意:给n个号码,求出每个号码最短的能唯一定位该号码的字符串

思路:暴力 把每个号码的子串放进map里,然后从长度短的开始暴力每一个子串出现的次数,出现一次的就是能定位的,同一个号码里的相同子串只记录一次,如0000 ,子串000出现2次,但是只记录一次(当然也可以字典树或者后缀数组写拉,但是暴力是坠吼滴

AC代码:

#include "iostream"#include "iomanip"#include "string.h"#include "stack"#include "queue"#include "string"#include "vector"#include "set"#include "map"#include "algorithm"#include "stdio.h"#include "math.h"#pragma comment(linker, "/STACK:102400000,102400000")#define bug(x) cout<
<<" "<<"UUUUU"<
M,m[70002];int main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); int n; cin>>n; for(int i=1; i<=n; ++i){ cin>>s[i]; } for(int i=1; i<=n; ++i){ for(int j=0; j<9; ++j){ for(int k=1; k+j<=9; ++k){ string ss=s[i].substr(j, k); if(!m[i][ss]){ m[i][ss]++; M[ss]++; } } } } for(int i=1; i<=n; ++i){ int flag=0; for(int k=1; k<=9; ++k){ for(int j=0; j+k<=9; ++j){ string ss=s[i].substr(j, k); if(M[ss]==1){ cout<
<

 

转载于:https://www.cnblogs.com/max88888888/p/7553956.html

你可能感兴趣的文章
List_统计输入数值的各种值
查看>>
学习笔记-KMP算法
查看>>
Timer-triggered memory-to-memory DMA transfer demonstrator
查看>>
跨域问题整理
查看>>
[Linux]文件浏览
查看>>
64位主机64位oracle下装32位客户端ODAC(NFPACS版)
查看>>
获取国内随机IP的函数
查看>>
今天第一次写博客
查看>>
江城子·己亥年戊辰月丁丑日话凄凉
查看>>
IP V4 和 IP V6 初识
查看>>
Spring Mvc模式下Jquery Ajax 与后台交互操作
查看>>
(转)matlab练习程序(HOG方向梯度直方图)
查看>>
『Raid 平面最近点对』
查看>>
【ADO.NET基础-数据加密】第一篇(加密解密篇)
查看>>
C语言基础小结(一)
查看>>
STL中的优先级队列priority_queue
查看>>
UE4 使用UGM制作血条
查看>>
浏览器对属性兼容性支持力度查询网址
查看>>
OO学习总结与体会
查看>>
虚拟机长时间不关造成的问题
查看>>