CodeVS 2639 约会计划

Portal:http://codevs.cn/problem/2639/

简单题,并查集再加个map,一开始我以为要用图论,失算

FML,我的代码怎么这么长。。。优化太多反而慢啊。。。大常数大师啊。。。

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<set>
 4 #include<cstdio>
 5 #include<cstdlib>
 6 #include<cmath>
 7 #include<map>
 8 #include<cstring>
 9 using namespace std;
10 #define FOR(i,j,k) for(int i=j;i<=k;i++)
11 #define FORD(i,j,k) for(int i=j;i>=k;i--)
12 #define LL long long
13 #define maxn 2010
14 int father[maxn],rank[maxn];
15 int n,m,p;
16 string x,y;
17 map<string,int> name;
18 int setfind(int xx)
19 {
20     int fa=father[xx];
21     if(fa==xx) return fa;
22     else return father[xx]=setfind(fa);
23 }
24 void setunion(int xx,int yy)
25 {
26     int X=setfind(xx);
27     int Y=setfind(yy);
28     if(X==Y) return;
29     if(rank[X]==rank[Y]) {father[X]=Y;rank[Y]++;}
30     else if(rank[X]>rank[Y]) father[X]=Y;
31     else father[Y]=X;
32 }
33 bool is_same(int xx,int yy)
34 {
35     return setfind(xx)==setfind(yy);
36 }
37 int main()
38 {
39 cin>>n>>m>>p;
40 FOR(i,1,n)
41 {cin>>x;name[x]=i;father[i]=i;rank[i]=1;}
42 FOR(i,1,m)
43 {
44     cin>>x>>y;
45     setunion(name[x],name[y]);
46 }
47 FOR(i,1,p)
48 {
49     cin>>x>>y;
50     if(is_same(name[x],name[y])) cout<<"safe"<<endl;
51     else cout<<"cc cry"<<endl;
52 }
53 return 0;
54 }
渣代码

蛋疼地在路径压缩时做了个用空间换时间的优化

/*init*/i=1-m   rank[i]=1;
//
if(X==Y) return;
    if(rank[X]==rank[Y]) {father[X]=Y;rank[Y]++;}
    else if(rank[X]>rank[Y]) father[X]=Y;
    else father[Y]=X;
//平时并的时候都是直接father[X]=Y;,汗
垃圾优化,毁我青春

UN3次才AC,粗心啊

啧,丢人啊

 

转载于:https://www.cnblogs.com/mukoiaoi/p/5634401.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值