首页 > 其他分享 >P1407 [国家集训队] 稳定婚姻

P1407 [国家集训队] 稳定婚姻

时间:2024-07-20 15:58:27浏览次数:16  
标签:int s2 s1 P1407 next mp 婚姻 国家集训队 match

原题链接

题解

二分图,分为两类,一类是指向,一类是被指向

在这里,只需要建立情人之间的边就行,因为找情人能否成功

code

#include<bits/stdc++.h>
#define ll long long
using namespace std;

vector<int> G[10000];
int match[10000]={0};
bool vis[10000]={0};

bool dfs(int now)//找情人
{
    for(auto next:G[now])
    {
        if(vis[next]) continue;
        vis[next]=1;
        if(match[next]==0||dfs(match[next])) return 1;
    }
    return 0;
}

void solve()
{
    int n;
    cin>>n;

    map<string,int> mp;
    int cnt=0;
    for(int i=1;i<=n;i++)
    {
        string s1,s2;
        cin>>s1>>s2;

        int x,y;

        if(!mp[s1]) mp[s1]=++cnt;
        x=mp[s1];

        if(!mp[s2]) mp[s2]=++cnt;
        y=mp[s2];

        match[y]=x;
    }

    int m;
    cin>>m;

    for(int i=1;i<=m;i++)
    {
        string s1,s2;
        cin>>s1>>s2;

        int x=mp[s1],y=mp[s2];

        G[x].push_back(y);
        G[y].push_back(x);
    }

    for(int i=1;i<=cnt;i+=2)
    {
        memset(vis,0,sizeof vis);
        match[i+1]=0;
        if(dfs(i)) cout<<"Unsafe\n";
        else cout<<"Safe\n";
        match[i+1]=i;
    }
}
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t=1;
    //cin>>t;
    while(t--) solve();
    return 0;
}


标签:int,s2,s1,P1407,next,mp,婚姻,国家集训队,match
From: https://www.cnblogs.com/pure4knowledge/p/18313226

相关文章

  • 传记作者称,威廉王子与凯特·米德尔顿的婚姻因哈里王子的争执而永远改变
    哈里王子离开英国王室可能永远改变了家庭内部的关系,但威廉王子和凯特·米德尔顿在大家庭不断变化的形势下尽力保持团结。事实上,据一位王室传记作者说,这让他们的关系更加亲密。据OK报道,传记作者英格丽德·西沃德表示,威廉与弟弟闹翻后,向妻子寻求更多支持。西沃德在2023年......
  • [国家集训队] Tree I
    借助这道题目把wqs二分讲明白考虑如下一个问题:现在一共有若干个物品,物品被分成两组,现在从中选出若干个物品,但是题目会给出某种限制(也就是在这种限制条件下,物品的选择不是随意的,所有选择集合中,只有一些集合符合题目给出的限制,这样的集合才可以被选择),这种限制只跟物品本身有关而跟......
  • [国家集训队] happiness 题解
    发现可以做如下建图:对于前两组输入,从\(s\)向所有代表学生的点连一条边,容量为其学习文科的喜悦值;从所有代表学生的点向\(t\)连一条边,容量为其学习理科的最大值。对于后四组输入,建两个点\(x,y\),从\(s\)向\(x\),从\(y\)向\(t\)分别连容量为相邻两人同时学文/理时额......
  • [国家集训队] Crash的数字表格 / JZPTAB
    题目所求即\[\sum_{i=1}^n\sum_{j=1}^m\frac{ij}{gcd(i,j)}\]这里没有出现\([gcd(x,y)=1]\),所以我们枚举\(gcd\)的值来硬凑,原式就等于\[\sum_{d=1}^{min(n,m)}\sum_{i=1}^n\sum_{j=1}^m\frac{ij}{gcd(i,j)}[gcd(i,j)=d]\]为了出现\([gcd(i,j)=1]\),直接将\(i,j\)变成\(d\)的倍......
  • [国家集训队] 矩阵乘法 题解
    发现实际上就是二维静态区间最大值,可以用整体二分维护。时间复杂度\(O((q+n^2)\log\max(a_{i,j})\logn^2)\)。#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintW=310005;constintQ=6e4+5;intn,q,w,ans[Q];intc[505][505],m;voidadd(i......
  • P2839 [国家集训队] middle
    Sol:首先注意到答案是具有单调性的,考虑二分答案\(x\)解决。令$up(l,r,x)/down(l,r,x)$是\([l,r]\)中大于等于/小于\(x\)的数。那么对于一个区间\([l,r]\),显然中位数\(\gex\)的条件为\(up(l,r,x)\gedown(l,r,x)\).变形得到\(up(l,r,x)-down(l,r,......
  • 洛谷 P4451 [国家集训队] 整数的lqp拆分
    洛谷传送门设\(G\)为斐波那契数列的生成函数,显然有\(F=F\timesG+1\)。那么\(F=\frac{1}{1-G}=1+\frac{x}{1-2x-x^2}\)。问题是如何展开\(\frac{x}{1-2x-x^2}\)。因为\(\frac{1}{1-ax}=\sum\limits_{i\ge0}(ax)^i\),所以考虑设\(\frac{x}{1-......
  • 新相亲(山东)文化传媒有限公司:专业引领,助力幸福婚姻!
    在快节奏的现代生活中,越来越多的人选择通过专业的婚姻介绍机构来寻找自己的另一半。新相亲(山东)文化传媒有限公司,作为山东地区知名的婚姻介绍机构,凭借其专业的团队、优质的服务和丰富的经验,赢得了广大客户的认可和信赖。新相亲的婚姻介绍业务,注重个性化、专业化的服务。公司......
  • C113 带修莫队 P1903 [国家集训队] 数颜色/维护队列
    视频链接:   LuoguP1903[国家集训队]数颜色/维护队列//带修莫队O(n^(5/3))#include<iostream>#include<cstring>#include<algorithm>#include<cmath>usingnamespacestd;constintN=1000005;intn,m,B,mq,mr,a[N];intsum,cnt[N],ans[N];st......
  • C112 莫队算法 P1494 [国家集训队] 小 Z 的袜子
    视频链接:  LuoguP1494[国家集训队]小Z的袜子//普通莫队O(n*sqrt(n))#include<iostream>#include<cstring>#include<algorithm>#include<cmath>usingnamespacestd;constintN=50005;intn,m,B,a[N];intsum,cnt[N],ans1[N],ans2[N];str......