牛妹的遊戲

2022-05-05 14:33:07 字數 2277 閱讀 1352

時間限制:c/c++

1秒,其他語言2秒

空間限制:c/c++

262144k,其他語言524288k

64bit io format:

%lld

upd:資料保證不會有兩條控制鏈控制的據點完全相同,也保證不會有某條控制鏈兩端控制的據點相同。

牛妹最近沉迷於乙個名為 ingress 的遊戲中…

遊戲中,藍綠營兩個對立陣營互相角力,通過爭奪據點來控制區域。 具體來說,二維的平面上分布有若干據點,玩家可以通過xm掃瞄器來控制這些據點。

同一陣營控制的兩個據點可以相連成為一條被該陣營控制的鏈。 而同一陣營控制的三條鏈,首尾相接可以形成一塊被該陣營控制的區域。

如下圖為一塊被藍方控制的區域:

但是這樣的遊戲沒有乙個勝利或失敗結局,牛牛覺得很不舒服,於是他開發出了 imgress。 這個遊戲和 ingress

的區別在於,如果乙個陣營控制了一塊區域,則形成這塊區域的據點無法再被另一陣營控制。 此外,imgress

的玩家並非直接對據點進行控制,而是通過在據點間形成控制鏈來間接控制對應據點,於是可能出現同乙個據點被兩方的控制鏈所使用的情況。

現在,牛妹加入了藍方陣營,她已經得知了場上的總據點數,和藍方已經形成的所有控制鏈。

現在她想知道目前場上是否可能已經存在被玩家控制的區域,你需要幫她解決這個問題。

輸入描述:

第一行乙個正整數 t,表示資料組數。 每組資料的第一行有兩個正整數 n 和 m,表示場上總據點數為 n,此時藍方已經形成了 m 條控制鏈。

接下來 m 行,每行有兩個正整數 x 和 y,表示這條控制鏈由據點 x 和據點 y 形成。

輸出描述:

對於每組資料,如果目前場上有可能存在被玩家控制的區域,則輸出一行 「yes」,否則輸出一行 「no」。(均不包含引號)

示例1

輸入

233

1223

3155

1223

3445

51

輸出

yes

no

說明

對於第一組資料,藍方在所有據點間形成了控制鏈,此時的情況如下圖所示:

可以發現藍方已經形成了控制區域。

對於第二組資料,藍方的 5 條控制鏈首尾相接,如下圖所示:

此時藍方沒有形成控制區域,同時,可以發現綠方即使控制了所有藍方沒有控制的鏈,也無法形成控制區域。

我來把題目濃縮下:就是給你乙個無向圖,問這個圖和它的補圖是否存在三元環?

如果圖本身有三元環就是藍方贏,如補圖有三元環,就是綠方贏,但題目是問你藍綠方有一方能贏就輸出yes,都不能就輸出no

有乙個結論:如果點》=6的話,它以及它的補圖一定存在三元環。

網上說這個叫拉姆塞結論(我們離散也沒講過 )

點數小於6的話,暴力就ok了,先標記給的邊,三層for迴圈,看看任意三個邊能不能構成環。

#include

#define mem(a) memset(a,0,sizeof(a))

using

namespace std;

const

int mod =

1e9+7;

const

int maxn=

102;

int n,sum;

int f[

102]

[102];

void

biaoji

(int x,

int y)

intmain()

if(n>=6)

else

if(sum)cout<<

"yes"

<

else cout<<

"no"

<

}

牛牛與牛妹的遊戲

題目 牛牛 和 牛妹 正在玩乙個遊戲 牛牛扔了a個b面的骰子 牛妹扔了c個d面的骰子 對於乙個x面的骰子,每個面依次會寫有1到x的數 乙個玩家的得分就是每個骰子朝上的面的數字的總和,乙個玩家能贏另乙個玩家當且僅當得分嚴格大於另乙個玩家,給你a,b,c,d,如果牛牛不可能贏,輸出 1 否則假設你知道了...

問題 A 牛妹的蛋糕

題目描述 眾所周知,牛妹非常喜歡吃蛋糕。第一天牛妹吃掉蛋糕總數三分之一多乙個,第二天又將剩下的蛋糕吃掉三分之一多乙個,以後每天吃掉前一天剩下的三分之一多乙個,到第n天準備吃的時候只剩下乙個蛋糕。牛妹想知道第一天開始吃的時候蛋糕一共有多少呢?輸入輸入n,0 通過可以設立方程,設原先有x個,第二天為x ...

黑妹的遊戲三

ps 列舉質因數很容易想到,比賽的時候想到列舉1e8範圍內,果斷寫不出來。其實只需要列舉10000內的質因數就行了,因為對於a來說大於10000的質因數最多乙個。列舉質因數後怎麼確定能消去多少個呢?最容易想到的方法就是模擬了 我是這樣yy的,最壞的情況 10000個 134217728。需要計算 1...