傳送門
給出n
nn個答案,已知其中有p
pp個是全對的,q
qq個是全錯的,其他的既不是全對也不是全錯
問標準答案是什麼,輸出字典序較小的那乙個
我們用列舉標準答案是多少來求解,用map
mapma
p或雜湊來判斷全對和全錯時的正確答案是不是這乙個,若是,則當前答案就是我們的結果
有一種特殊情況就是p==
0p==0
p==0
同時q ==
0q==0
q==0
,這個時候我們發現我們不能通過普通的列舉來確定最終答案,所以我們用dfs
dfsdf
s結合map
mapma
p來尋找答案
#include
#include
#include
#include
#include
#include
#define ll long long
using namespace std;
inline ll read()
while
(s>=
'0'&&s<=
'9')
return d*f;
}mapint> m1,m2;
string s[
30005
],z;
int n=
read()
,m=read()
,p=read()
,q=read()
,tf=0;
void
dfs(
int k,string zz)
dfs(k+
1,zz+
'n')
;dfs
(k+1
,zz+
'y')
;return;}
intmain()
if(!p&&
!q)sort
(s+1
,s+1
+n);if(
!p)for
(int i=
1;i<=n;i++
)for
(int j=
0;j) s[i]
[j]=
(s[i]
[j]==
'y'?
'n':
'y')
;for
(int i=
1;i<=n;i++)if
(m1[s[i]
]==p&&m2[s[i]
]==q)
printf
("-1");
return0;
}
388 檔案的最長絕對路徑
難度 中等 題目描述 思路總結 題解一用到了棧,存當前目錄的所有層級的名字,然後每次遇到檔案型別計算當前最長的路徑。具體步驟都在注釋中寫的很詳細。有時間可以做一下不用棧的方法,不過當前的核心任務還是理解並使用棧。題解一 class solution def lengthlongestpath sel...
英語口語388之每日二十個英語單詞
2020 08 19每日二十個英語單詞 tone,supervisory audio sat 監察聲頻音調 tool cutting 切削工具 tool,automated reasoning art 自動化推論工具 tool,image editing 影像編輯工具 tooling hole 工具...
JZOJ 交換 模擬
給出字串s和字串t,現在你要把s的某乙個字元和t的某乙個字元交換,使得交換之後的s至少要有三個連續相同的字元,交換之後的t也要有三個連續相同的字元。問有多少種不同的交換方式。第一行,乙個字串s。s只含有 r g b 三種字元,長度不超過50,不小於3。而且s任意兩個相鄰的字元都不相同。第二行,乙個字...