[DFS] cf 134A Ice Skating

该博客介绍了如何使用深度优先搜索(DFS)解决Codeforces(cf)134A题——Ice Skating的问题。题目要求在坐标系中添加最少的点,以确保所有点两两可达。通过将联通的点集缩点,可以确定只需在不连通的点集间添加点即可。博客给出了C语言的DFS实现代码。
/**
[DFS]cf 134A Ice Skating
给出坐标系中一些点,同一水平或竖直上的两点是可达的。 
问至少添加多少点使得任意两点可达。
将联通的点集缩点,任意两个不连通的点集只需添加一个点即可联通 
*/
#include <stdio.h>

#define N 128
int x[N],y[N],vis[N];
int n;
void  dfs(int u){
	if(vis[u])
		return;
	vis[u] = 1;
	for(int i = 0; i < n; ++i)
		if(!vis[i] && (x[i] == x[u] || y[i] == y[u]))
			dfs(i);
}
int main(){
	int i;
	scanf("%d",&n);
	for(i = 0; i < n; ++i)
		scanf("%d%d",x + i, y + i);
	int res = -1;
	for(i = 0; i < n; ++i)
		if(!vis[i]){
			++res;
			dfs(i);
		}
	printf("%d\n",res);
	return 0;
}

出现 `[42000][1049] Unknown database` 错误通常表示 MySQL 服务器无法找到指定的数据库名称。在具体场景中,例如使用 IntelliJ IDEA(IDEA)连接 MySQL 数据库时,如果提示 `Unknown database 'skating'`,则表明数据库连接配置中提到的数据库名 `skating` 并不存在于 MySQL 服务器中,或者连接的配置存在问题。 ### 常见原因及解决方法 1. **数据库名称拼写错误** 在数据库连接字符串中,如果数据库名称拼写错误或者大小写不一致,可能会导致连接失败。MySQL 在某些操作系统(如 Linux)上对数据库名称是区分大小写的。因此,确保连接字符串中的数据库名称与 MySQL 服务器上实际创建的数据库名称完全一致。 例如,如果连接字符串为: ```java jdbc:mysql://localhost:3306/skating ``` 则需要确认 MySQL 服务器中是否存在名为 `skating` 的数据库。 2. **数据库未创建** 如果尚未在 MySQL 中创建 `skating` 数据库,则需要通过 SQL 语句手动创建该数据库。可以通过 MySQL 客户端执行以下命令来创建数据库: ```sql CREATE DATABASE skating; ``` 创建完成后,再次尝试连接。 3. **MySQL 服务未启动** 如果 MySQL 服务未正常运行,则无法访问任何数据库,包括 `skating`。需要检查 MySQL 服务是否启动,可以通过以下命令(基于操作系统)进行操作: - Windows: ```bash net start mysql ``` - Linux: ```bash sudo systemctl start mysql ``` 4. **用户权限配置问题** 确保用于连接数据库的 MySQL 用户具有访问 `skating` 数据库的权限。可以使用以下 SQL 语句授予用户权限: ```sql GRANT ALL PRIVILEGES ON skating.* TO 'username'@'localhost'; FLUSH PRIVILEGES; ``` 其中 `username` 是实际使用的用户名。 5. **IDEA 配置错误** 在 IDEA 的数据库配置中,需要确保 JDBC URL、用户名和密码正确无误。此外,还需确认是否选择了正确的驱动程序和数据库版本。 6. **MySQL 配置问题** 检查 MySQL 的配置文件(如 `my.cnf` 或 `my.ini`)是否限制了某些数据库的访问,或者是否启用了特定的绑定地址设置(如 `bind-address`)。如果 MySQL 仅绑定到本地地址,则需要确保连接的是本地数据库。 ### 示例代码:验证数据库是否存在 可以通过以下 SQL 查询验证 `skating` 数据库是否已存在: ```sql SHOW DATABASES LIKE 'skating'; ``` 如果查询结果中没有 `skating` 数据库,则需要手动创建它。 ### 调试建议 - 在 IDEA 中测试连接时,可以点击“Test Connection”按钮,查看详细的错误信息。 - 检查 MySQL 的日志文件(通常位于 `data` 目录下),以获取更具体的错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值