B1139 First Contact (爱情模拟)

B1139 First Contact (30分)

这篇是教我追女生要微信的。

很有道理

//A看上B,A要经过和自己性别一样的C,给性别和B一样的D发短信我A喜欢B

简单讲就是需要一对已成的情侣撮合!

因为A和B都是单身U•ェ•*U,所以不存在别的异性关系,但A与B可能存在同性恋,同性恋也需要同性恋情侣撮合


  • 性别相同的建立联系
  • 数组不能存放负值,一个编号4位,所以用八位放在map去映射
  • 在查找的时候A,B同性恋的情况要排除
  • 坑点:直接int输入编号对于+0000和-0000的情况是直接默认为0的,但要分性别的。
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define lowbit(i)((i)&(-i))
using namespace std;
typedef long long ll;
const int MAX=301;
const int INF=0x3f3f3f3f;
const int MOD=1000000007;
const int SQR=633;
struct node
{
    int a,b;
};
bool cmp(node p,node q)
{
    if(p.a!=q.a)
        return p.amp;
vectorvt[10005];
int change(string a)
{
    int sum=0;
    if(a[0]=='-')
        a.erase(a.begin());
    for(int i=0;i>x>>y;
        c=abs(change(x));
        d=abs(change(y));
        if(x.size()==y.size())
        {
          vt[c].push_back(d);
          vt[d].push_back(c);
        }
        mp[c*10000+d]=mp[d*10000+c]=true;
    }
    int k;
    scanf("%d",&k);
    for(int i=0;ires;
        int t1,t2;
        scanf("%d%d",&t1,&t2);
        t1=abs(t1);
        t2=abs(t2);
        for(int i=0;i

你可能感兴趣的:(B1139 First Contact (爱情模拟))