电话薄

c++_电话薄 编写C++程序完成以下功能: (1) 实现简单电话本功能,用姓名来搜索电话号码; (2) 用户输入姓名,程序查找并输出结果; (3) 用户可以通过输入,添加姓名和电话号码; (4) 用户可以删除姓名和电话号码; (5) 电话本可以保存在指定文件中; (6) 电话可被从指定文件中读入到内存。 #include<iostream> #include<fstream> #include<stdio.h> 阅读详情

电话薄

Time Limit:10000MS  Memory Limit:65536K
Case Time Limit:1000MS

Description

何老板的手机很先进,当要拨打一个号码时,你需敲出该号码的前面几个数字,手机就会自动找出以该数字为前缀的所有号码。 
比如下列电话薄: 
TOM:1388 
JIM:13885599999 
LEE:13812345678 
TEC:0236588888 
如果何老板敲了138三个数字,手机屏幕上就会显示TOM、JIM和LEE的名字。很是方便呀! 

但是何老板发现有不好的地方就是比如他想拨打JIM的号码,当他在手机上敲了1388这四个数字,没等何老板敲完其它数字,手机就会自动拨打TOM的号码,这让何老板很是烦恼。也就是说一旦手机发现你当前敲出的数字与电话薄中的某个号码匹配了,它就会自动拨打该号码。 

于是何老板想知道,他的电话薄中,也就是是否存在一个号码是其它号码的前缀的情况。 

Input

第一行,一个整数t,表示有t组测试数据1 ≤ t ≤ 40 
对于每组测试数据: 
第一行一个整数n(1 ≤ n ≤ 10000),表示电话薄中有n个号码 
接下来n行,每行一个数字,表示一个电话号码,每个电话号码的长度不超过10,并且是唯一的。

Output

每组测试数据输出一行,如果有有号码是其它号码的前缀,输出"NO"否则输出"YES"

Sample Input

2
4
1388
13885599999
13812345678
0236588888
5
113
12340
123440
12345
98346

Sample Output

NO
YES

Source

改编自Nordic 2007 poj3630


#include <cstdio>
#include <cstring>
using namespace std;
#define maxn 20009
struct node{bool used, haveson;int next[11];}trie[maxn*10];
int tot=1;
void _solve()
{
	int n, i, p, len;
	bool flag=1;
	char phone[20];
	scanf("%d", &n);
	while(n--)
	{
		scanf("%s", phone);
		p=1;
		len=strlen(phone);
		for(int i=0; i<len; i++)
		{
			int t=phone[i]-'0';
			trie[p].haveson=true;
			if(trie[p].next[t]==0)
			{
				tot++;
				trie[p].next[t]=tot;
				p=trie[p].next[t];
			}
			else
			{
				
				p=trie[p].next[t];
				if(trie[p].used)	flag=0;
			}
		}
		trie[p].used=true;
		if(trie[p].haveson)
		{
			flag=0;
		}
	}
	if(flag)	printf("YES");
	else printf("NO");
	putchar('\n');
	
}
int main()
{
	int t;
	scanf("%d", &t);
	while(t--)
	{
		_solve();
		for(int i=1; i<=tot; i++)
		{
			trie[i].haveson=trie[i].used=0;
			for(int j=0; j<11; j++)	trie[i].next[j]=0;
		}
		tot=1;
	}
	return 0;
}




Android SQLite电话薄管理系统的增删改查实现 在Android开发中,Handler、Looper和Message是实现线程间通信的关键组件。理解它们之间的关系对于开发高效且响应快速的应用程序至关重要。Handler: 主要用于发送和处理Message和Runnable对象。通过Handler,可以将一个Message或Runnable对象放入消息队列,然后在消息队列所在的线程中被处理。Looper: 与消息队列关联,负责循环消息队列中的消息,并分发给相应的Handler处理。每个线程只有一个Looper,而Looper通过调用。 阅读详情

相关推荐

电机控制-PMSM无感FOC控制(四)SVPWM——过调制

上一章我们提到了SVPWM矢量合成的范围在一个平面的矢量圆内,那么当电压矢量超出调制范围时,该怎么做呢?这就是过调制要解决的问题。电机控制-PMSM无感foc控制(三)SVPWM据之前讲解的内容我们可以知道,SVPWM技术在电压空间上模拟了一个近似于圆的电压轨迹,减小了相电流的谐波,降低了电机的谐波损耗,抑制了转矩脉动。然而,SVPWM技术也存在一些问题,合成电压矢量有极限便是其中之一。这个半径为√3/3Vdc的区域也被称作SVPWM的线性区域。

zhuxinmingde的博客 1314

电话簿折中查找

#include<stdio.h> #include<stdlib.h> int main(){ int p,j=0,k=9,i; char flag=0,flag2=0; char a[8]; char inf[10][20]={"张三 一教","李四 二教","王五 三教","陈六 四教","邓七 五教", "许八 六教","方九 七教","赵十 八教","李二 九教","张一 十教"}; char num[10][8]={"111

iKUNqa的博客 291

计算机网络实验六 RIP 配置实验

Man! What can I say?

AClerk的博客 1592

Trie——电话簿

nkoj 1931 Description 何老板的手机很先进,当要拨打一个号码时,你需敲出该号码的前面几个数字,手机就会自动找出以该数字为前缀的所有号码。  比如下列电话薄:  TOM:1388  JIM:13885599999  LEE:13812345678  TEC:0236588888  如果何老板敲了138三个数字,手机屏幕上就会显示TOM、JIM和LEE的名字。很是方

INCINCIBLE的博客 825

RV1106的ISP配置实战:MIPI与LVDS接口的硬件连接与设备树优化

本文详细解析了RV1106芯片的ISP配置实战,重点对比了MIPI CSI-2与LVDS两种主流接口的硬件连接方案与数据流差异。通过手把手的设备树代码示例,深入讲解了单路MIPI与双路LVDS摄像头的配置要点、关键属性设置及常见避坑指南,并提供了从驱动加载检查到Media Controller工具使用的系统化调试方法,帮助开发者快速打通图像采集与处理全链路。

terraform7cloud的博客 471

20道SpringSecurity常见面试题汇总(超详细回答 !!!)

本文中,我们将探讨一些与 Spring Security 相关的面试问题。Spring Security 是一款流行的 Java 应用程序安全框架,它提供了一套全面且易于使用的安全解决方案。

小斜同学的博客 3076

Acwing 161. 电话列表

给出一个电话列表,如果列表中存在其中一个号码是另一个号码的前缀这一情况,那么就称这个电话列表是不兼容的。 假设电话列表如下: ·Emergency 911 ·Alice 97 625 999 ·Bob 91 12 54 26 在此例中,报警电话号码(911)为Bob电话号码(91 12 54 26)的前缀,所以该列表不兼容。 输入格式 第一行输入整数t,表示测试用例数量。 对于每个测试用例,第一行...

Mystletainn的博客 309

ros1 ubuntu22.04 安装教程

ROS1 ubuntu22.04 安装教程

autolabor的博客 9195

c语言之电话薄程序

电话薄程序。建立一个结构体数组,存放若干人的信息,包括:姓名,电话,职业,住址。要求这个管理小程序可以完成的任务:

www.wangpeng.cn 7051

Python爬虫教程:抓取电商网站评论(以淘宝和京东为例)

通过本文的介绍,我们学会了如何使用Python编写爬虫,抓取淘宝和京东等电商平台的商品评论数据。我们介绍了如何使用电商平台提供的开放API以及如何通过模拟浏览器来抓取动态加载的数据。此外,我们还讨论了如何应对反爬虫技术,如何存储抓取的数据等。爬取电商平台的数据是一个强大的工具,能够为市场分析、消费者行为研究、产品优化等领域提供有力的支持。然而,在使用爬虫技术时,我们必须遵循法律法规,尊重平台的隐私政策,避免滥用数据。

2201_76125261的博客 1737

Hermes 教程 05:多 Agent 编排

本文介绍了Hermes v0.13.0中的四种多Agent协作模式:1)delegate_task快速子任务模式,适合2-3个独立并行任务;2)spawn子Agent模式,实现零成本并行多步流水线;3)tmux交互子Agent模式,支持长期自主任务;4)全新Kanban看板系统,提供持久化AI团队协作框架。各模式在隔离级别、时长、工具访问和适用场景上存在差异,其中spawn模式通过独立上下文窗口实现零上下文成本。文章详细说明了每种模式的使用方法、限制条件和典型应用场景,并提供了具体代码示例和可视化流程图。K

程序猿_三产 536

用C++实现的访问Symbian手机电话薄

在Symbian OS中,电话薄部分是通过一个默认的数据库(contacts.cdb.)来操作和管理的。因此在Symbian系统里可以用联系人模型(Contacts Model)API来访问和管理电话薄,这里主要用的类就是CContactDatabase(数据库类,电话薄所有条目的集合),CContactItem(它代表一个单独的电话薄条目,由唯一的一个TContactItemId标识。例如电话薄

Jrive的专栏 1827

Vue3 - 完美解决 vite 打包后在本地浏览器直接打开运行,build 打包后双击 index.html 直接以 file 协议运行网站(资源、接口等正常访问,和部署到服务器运行效果一样)

vue3vite怎么支持file协议本地打开,vite打包文件如何支持files协议,支持双击即可打开网页,vue3vite打包后双击本地运行,vue3vite打包后怎么直接在浏览器双击打开访问,vite打包后显示空白,vite如何支持本地file协议打开,vue3vite打包后如何本地查看网站,vue3vite项目打包后本地启动白屏怎么办,vite打包后的代码如何在本地运行,vite+vue3打包在fIle本地index.html打开项目,打包后如何直接打开index.html文件,vue3

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

用c++实现的访问symbian手机电话薄

用c++实现的访问symbian手机电话薄 在symbian os中,电话薄部分是通过一个默认的数据库(contacts.cdb.)来操作和管理的。因此在symbian系统里可以用联系人模型(contacts model)api来访问和管理电话薄,这里主要用的类就是ccontactdatabase(数据库类,电话薄所有条目的集合),ccontactitem(它代表一个单独的电话薄条目,由...

代码民工 628

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

电话薄Java实现小程序

这是一个Java实现的电话薄小程序,该电话薄实现简单的存储联系人,会将联系人保存到磁盘上。查询联系人,输入名字会显示出他的电话号码。 该程序使用了Properties类的两个方法store() 和 load(),使得这个功能完备的电话薄程序只需很简单的代码就实现了。import java.io.BufferedReader; import java.io.FileInputStream; imp

firethinks的专栏 1920

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

电话薄程序java程序实现

实验项目名称电话薄程序 使用了数据库+JDBC+面向对象知识,主要分为五个功能页面,分别为添加记录、查找记录、修改记录、删除记录和排序记录。 实现这五个功能模块共创建了六个类: 1.App.java 程序的主类 2.Meau.java 菜单类或窗口类 3.Operate.java 功能实现类 4. Person.java 定义属性和方法 5. TelNotRegex.java 用户输入验证类 6....

weixin_43587055的博客 1994

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java编写的电话薄_使用JAVA编写电话薄程序,具备添加,查找,删除等功能

package电话薄1;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importjava.util.Scanner;importco...

weixin_29158047的博客 618

android 调用电话薄,Android 电话薄调用相关

@Overrideprotected void onActivityResult(int requestCode, intresultCode, Intent data) {//TODO Auto-generated method stubConfig.putLog("requestCode:" + requestCode + "resultCode:" +resultCode);if (resu...

weixin_35813719的博客 167

电话薄小系统

功能 1.信息的录入 2.电话查找 代码 #include <stdio.h> #include <string.h> #include <process.h> struct Telephone { char name[20]; char number[12]; }; //录入信息 void Input(struct Telephone a[],int *n) { int i = 0; printf("请输入姓名和手机号(#号结束):"); whil

qfl_sdu的博客 221

新建文件夹——模拟电话薄,拨打电话

桌面文件夹——电话薄的小案例: public class FoldersActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.ma...

龙哥IT 218

Java电话薄项目(Java基础入门)

Java电话薄项目(Java基础入门) 1.项目介绍: 该项目能够实现对电话薄的添加,查找,修改,删除,排序等基本操作。 用户进入系统中首先进入主菜单中,在主菜单中可以选择相应的操作,用户可以选择每项操作前的序号即可进入到相应操作的子菜单,在子菜单中也可以选择相应的操作。 2.项目设计规划 该项目的实现主要依靠五个类来实现: 1.App对应Application(程序入口方法)主类,创建Menu类的对象,并调用Menu类的方法; 2.Menu对应Menu(菜单类):定义多个方法,显示各种操作对应的菜单

weixin_45961752的博客 600

电话薄管理java课程设计报告_电话薄设计--java

package com.hanqi.telbook;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;impor...

weixin_34227128的博客 360

解决ADSL拨号出现"访问错误623 系统无法找到电话薄"

       Win7系统默认拨号名称为"宽带连接",WinXP默认为"ADSL拨号"。       使用"rasdial 宽带连接 宽带用户名 宽带密码"进行拨号时,虽然能拨号成功,但如果频繁断开和拨号会出现"访问错误623 系统无法找到电话薄",偶然看到一种方法可以解决这个问题,方法如下:       一、Win+R打开执行"rasphone.exe";              二、在弹出的...

moji2017的博客 5619

Android 手机电话薄TabWidget多标签切换卡效果

TabWidget类似于Android 中查看电话薄的界面,通过多个标签切换显示不同内容。要实现这一效果,首先要了解TabHost,它是一个用来存放多个Tab标签的容器。每一个Tab都可以对应自己的布局,比如,电话薄中的Tab布局就是一个List的线性布局了。  要使用TabHost,首先需要通过getTabHost方法来获取TabHost的对象,然后通过addTab方法来向TabHost中添加

阳光灿烂的日子的博客 567
上一篇: Trie模板
下一篇: 找出克隆人
Formiko
博客等级 码龄11年 20粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值