2018百度之星資格賽 1001 調查問卷

2022-05-27 13:57:11 字數 1057 閱讀 2425

題意

度度熊為了完成畢業**,需要收集一些資料來支撐他的論據,於是設計了乙份包含 mmm 個問題的調查問卷,每個問題只有 'a' 和 'b' 兩種選項。

將問卷散發出去之後,度度熊收到了 nnn 份互不相同的問卷,在整理結果的時候,他發現可以只保留其中的一部分問題,使得這 nnn 份問卷仍然是互不相同的。這裡認為兩張問卷是不同的,當且僅當存在至少乙個被保留的問題在這兩份問卷中的回答不同。

現在度度熊想知道,存在多少個問題集合,使得這 nnn 份問卷在只保留這個集合的問題之後至少有 kkk 對問卷是不同的。

分析本來聽說資格賽做乙個題就行,過了簽到後就去睡覺了,醒了後聽說這比賽的評測雞跑的賊快,就瞎搞了一發a,然後··就過了?????

思路就是··用狀態壓縮瞎搞一下。

f[i][s]表示前i個問卷,問題集合是二進位制表示的s,有多少對不同的問卷。

f[i][s]=f[i-1][s]+i-(前i裡有多少和第i個問卷s問題相同的問卷數目)

就醬下面是**

1 #include 2 #include 3 #include 4 #include 5

6using

namespace

std;

7const

int maxn=1000+100;8

9int

t,n,m,k;

10char s[maxn][15

];11

int f[maxn][1

<<11

];12

intvis[maxn];

13int

main()28}

29 vis[s]++;

30 f[i][ss]=f[i-1][ss]+i-vis[s];31}

32}33int ans=0;34

for(int i=0;i

38 printf("

%d\n

",ans);

39}

40return0;

41 }

view code

2015百度之星資格賽1001

題目名稱 大搬家 problem description 近期b廠組織了一次大搬家,所有人都要按照指示換到指定的座位上。指示的內容是坐在位置 i 上的人要搬到位置 j 上。現在b廠有 n 個人,一對一到 n 個位置上。搬家之後也是一一對應的,改變的只有位次。在第一次搬家後,度度熊由於疏忽,又要求大家...

2015百度之星資格賽1001

題目名稱 大搬家 problem description 近期b廠組織了一次大搬家,所有人都要按照指示換到指定的座位上。指示的內容是坐在位置 i 上的人要搬到位置 j 上。現在b廠有 n 個人,一對一到 n 個位置上。搬家之後也是一一對應的,改變的只有位次。在第一次搬家後,度度熊由於疏忽,又要求大家...

百度之星資格賽

1001 給你1 n這n個數字,公升序排列,接下來按照陣列a進行位置變換,a i 代表第i個數字會變到a i 位置上,a中的數字也是從1 n。現在問有多少個不同的陣列能滿足做一次變換和做三次變換結果相同。我們可以這樣分析,x y是唯一的到y的途徑,假設x y為第一次變換,因此在第三次變換的時候任然為...