校內OJ 4765 bestJob(分類討論)

2021-09-28 22:15:16 字數 919 閱讀 9512

細節打掛一堆。。。。。。。。。

其實還挺好想的。。。。

先將每個人的答案字串轉為二進位制數,0表示n,1表示y。

分情況討論如下:

全是第三類人的話,只用滿足答案對應的二進位制串沒有出現過,這個用map就能維護,注意列舉要到最大值,但因為不同的串和反串最多100個,所以不用列舉多少就能找到答案。

兩種人都有,那麼兩個答案異或的結果一定是(1《方法與上面那種一樣,但需要保證選的串的反串未出現過。

#includeusing namespace std;

typedef long long ll;

const ll maxn=51;

ll n,m,k1,k2;

mapmp;

ll a[maxn];

ll a1[maxn][maxn];

char ans[maxn];

ll que1[maxn],top1,que2[maxn],top2;

int main()

s.insert(a[i]);

} sort(que1+1,que1+top1+1);

sort(que2+1,que2+top2+1);

ll flag=0;

if(!k1&&!k2)

} if(!flag) puts("-1");

return 0;

} if(k1!=0&&k2!=0)

}} if(!flag) puts("-1");

return 0;

} if(!k1&&k2)

if(!flag) puts("-1");

return 0;

} if(k1&&!k2)

if(!flag) puts("-1");

return 0;

}}

南陽OJ 47 過河問題

對於這一類問題,我們首先想到的就是用貪心演算法。我們可以讓時間最長的兩個人過河,但是怎麼做才能把時間變為最短呢?是用時間最短的人乙個乙個送過去,還是怎麼樣呢?其實,我們可以考慮兩種方法 1.讓時間最短的人乙個乙個的送過去 2.先要兩個時間最短的過去,然後乙個回來送電燈,然後讓兩個時間最長的人過去,再...

01trie模板 (校內OJ

3827 the xor largest pair woj 描述在給定的 n 個整數 a1,a2,an 中選出兩個進行異或運算,得到的結果最大是多少?一道基礎的 01串trie 只知道trie,根據二進位制的性質,取反匹配,不難想到解法 最後注意邊加數邊去最大匹配值 有順序地列舉 這樣效率 nlog...

東華複試OJ 47 Anagrams問題

anagrams指的是具有如下特性的兩個單詞 在這兩個單詞當中,每乙個英文本母 不區分大小寫 所出現的次數都是相同的。例如,unclear 和 nuclear rimon 和 minor 都是anagrams。編寫乙個程式,輸入兩個單詞,然後判斷一下,這兩個單詞是否是anagrams。每乙個單詞的長...