P5937 [CEOI1999]Parity Game-扩展域并查集与离散化处理

题目链接[CEOI1999]Parity Game - 洛谷

单调队列优化多重背包(全网最详细解析)_秦三马和他的CF生涯的博客-CSDN博客

考察内容,扩展域并查集,本题中把奇偶性相同归为一个集合,否则归为其敌人集合

f[i] f[i+n] 分别代表和i奇偶性相同与不同的集合,如果奇偶性相同,必须满足,不在彼此敌人集合里,如果奇偶性不同,必须保证双方不在统一集合内,并且双方敌人不在统一集合内;

如果满足,进行合并

另外数据过大,采用离散化处理,大小仅代表了这是第几个数。

Alice 和 Bob 在玩一个游戏:他写一个由 00 和 11 组成的序列。Alice 选其中的一段(比如第 33 位到第 55 位),问他这段里面有奇数个 11 还是偶数个 11。Bob 回答你的问题,然后 Alice 继续问。Alice 要检查 Bob 的答案,指出在 Bob 的第几个回答一定有问题。有问题的意思就是存在一个 0101 序列满足这个回答前的所有回答,而且不存在序列满足这个回答前的所有回答及这个回答。

输入格式

第 11 行一个整数 nn,是这个 0101 序列的长度。

第 22 行一个整数 mm,是问题和答案的个数。

第 33 行开始是问题和答案,每行先有两个整数,表示你询问的段的开始位置和结束位置。然后是 Bob 的回答。odd表示有奇数个 11,even 表示有偶数个 11。

输出格式

输出一行,一个数 xx,表示存在一个 0101 序列满足第 11 到第 xx 个回答,但是不存在序列满足第 11 到第 x+1x+1 个回答。如果所有回答都没问题,你就输出所有回答的个数。

输入输出样例

输入 #1复制

10
5
1 2 even
3 4 odd
5 6 even
1 6 even
7 10 odd

输出 #1复制

3

说明/提示

对于 100\%100% 的数据,1 \le n \leq 10^91≤n≤109,m \leq 5 \times 10^3m≤5×103。

# include
# include
using namespace std;
int lisan[5000*2+10];
int f[5000*4+10];
typedef struct
{
    int left,right;
    bool flag;

}xinxi;
xinxi s[5000+10];
int len=1;

int getf(int x)
{
    if(x==f[x])
        return x;
    else
    {
        f[x]=getf(f[x]);
        return f[x];

    }
}
int main ()
{

    int n;
    cin>>n;

    for(int i=0;i<=5000*4+10;i++)
    {
        f[i]=i;
    }
    int m;
    cin>>m;

    for(int i=1;i<=m;i++)
    {
       cin>>s[i].left>>s[i].right;
       s[i].left--;
       string t;
       cin>>t;
       if(t[0]=='e')
        s[i].flag=1;

        lisan[len]=s[i].left;
        len++;
        lisan[len]=s[i].right;
        len++;


    }

    sort(lisan+1,lisan+len);
    int pos=unique(lisan+1,lisan+len)-lisan;

    for(int i=1;i<=m;i++)
    {

        int left=lower_bound(lisan+1,lisan+pos,s[i].left)-lisan;
        int right=lower_bound(lisan+1,lisan+pos,s[i].right)-lisan;

      int lf=getf(left);
      int dlf=getf(left+pos+1);
      int rf=getf(right);
      int drf=getf(right+pos+1);


        if(s[i].flag)//奇偶性相同
        {
          if(lf==drf||rf==dlf)
          {
              cout<

你可能感兴趣的:(p2p,蓝桥杯,网络协议)