這是我在csstack交換中的第一篇文章,我不知道這類問題是否可以在這裏發佈。一個難度很大的程序
所以我一直在嘗試這個問題3天,我得到了一個解決方案,但它的隱藏測試用例失敗。
問:
有一個村莊的節日發生在幾個組的親戚每年召開一次會議。每個人都被分配了一個正整數的標識符.N對親屬標識符作爲輸入被傳遞。
然後終於給一個人的識別碼I,程序必須與標識打印親屬C的計數組的人在一
輸入格式: 第一行包含N的值N行包含兩個相關人員的標識符。 下一行(N + 2)行將包含要打印其組的相對計數的人員的標識符I.
輸出格式: 第一行將包含親屬C的計數的組的人的與標識符I.
邊界條件: = N < = 100001 < = I < = 1000000
例 輸入/輸出1: 輸入:
5
10 20
30 20
40 10
55 35
55 22
40
輸出:4
說明:
10,20,30,40形成的相對基。 55,35,22形成另一個相對組。 因此,與標識符40親屬的人的數量是4
我走近的方法是:
for(auto i = v.begin() ; i!=v.end();i++)
{
if(i->first == r || i->second == r)
{
count+=2;
if(i->first == r)
r = i->second;
else
r = i->first;
remove(v.begin(),v.end(),*i);
n--;
break;
}
}
for(int i =0;i<n;i++)
{
for(int j =0;j<n;j++)
{
if(r == v[j].first || r == v[j].second)
{
if(r == v[j].first)
r = v[j].second;
else
r = v[j].first;
count++;
remove(v.begin(),v.end(),v[j]);
n--;
}
}
}
cout<<count;
那麼什麼是正確的解決這個問題?
對不起,但這種類型的問題不適用 – yizzlez
雖然'csstack exchange'是一個非常好的主意 – iehrlich
''這是我在csstack交換中的第一篇文章,我不知道這類問題是否可以「 - 在https://stackoverflow.com/help中查看https://stackoverflow.com/help/on-topic和其他內容。 – davedwards