日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

H - Parity game-poj1733(需要离散化)

發布時間:2023/11/27 生活经验 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 H - Parity game-poj1733(需要离散化) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:給一個序列這個序列都是由0和1組成,現在隨意拿出來一個序列,然后說出他的和是奇數還是偶數,因為有可能存在假話,讓你判斷前多少條沒有假話,也就是查找第一個假話的位置-1
//這道題很像D題,都是線段區間,不過數據比較大,需要離散化一下。

?

?

#include?<stdio.h>
#include<algorithm>
using?namespace?std;

const?int?maxn?=?100005;

int?f[maxn],?val[maxn];//val記錄區間奇偶值
int?p[maxn];//p數組保存需要離散化的數據

struct?node{int?u,?v,?sum;}a[maxn];//保存輸入

int?Find(int?x)
{
????int?k?=?f[x];

????if(f[x]?!=?x)
????{
????????f[x]?=?Find(f[x]);
????????val[x]?=?(val[x]+val[k])%2;
????}

????return?f[x];
}

int?main()
{
????int?N;

????while(scanf("%d",?&N)?!=?EOF)
????{
????????int?i,?M,?k=0;
????????char?s[10];

????????scanf("%d",?&M);

????????for(i=0;?i<M;?i++)
????????{
????????????scanf("%d%d%s",?&a[i].u,?&a[i].v,?s);
????????????a[i].sum?=?(s[0]?==?'e'???0?:?1);
????????????//為防止不在兩個不相鄰的數離散化后相鄰,在他們中間加一個數
????????????p[k++]?=?a[i].u,?p[k++]?=?a[i].u-1;
????????????p[k++]?=?a[i].v,?p[k++]?=?a[i].v-1;
????????}
????????p[k++]?=?N,?p[k++]?=?N-1;
????????sort(p,?p+k);
????????N?=?unique(p,?p+k)?-?p;//去重復函數

????????for(i=0;?i<N;?i++)
????????????f[i]?=?i,?val[i]?=?0;

????????for(i=0;?i<M;?i++)
????????{
????????????int?u?=?lower_bound(p,?p+N,?a[i].u-1)?-?p;//二分查詢
????????????int?v?=?lower_bound(p,?p+N,?a[i].v)?-?p;

????????????int?ru?=?Find(u),?rv?=?Find(v);

????????????if(ru?==?rv?&&?(val[u]+a[i].sum)%2?!=?val[v])
????????????????break;
????????????if(ru?<?rv)
????????????{
????????????????f[rv]?=?ru;
????????????????val[rv]?=?(val[u]+a[i].sum-val[v]+2)%2;
????????????}
????????????else?if(ru?>?rv)
????????????{
????????????????f[ru]?=?rv;
????????????????val[ru]?=?(val[v]-a[i].sum-val[u]+2)%2;//注意別寫錯val里面的參數
????????????}
????????}

????????printf("%d\n",?i);
????}

????return?0;
}

?

轉載于:https://www.cnblogs.com/liuxin13/p/4669500.html

總結

以上是生活随笔為你收集整理的H - Parity game-poj1733(需要离散化)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。