百度之星 1001 調查問卷

2021-08-22 07:04:15 字數 797 閱讀 9076

鏈結

有m個問題。 n個人分別對m個問題有自己的解法,僅僅有ab兩種。(相當於n條長度為m的01序列),在m中任意選取問題,使得序列在相應的位置上的答案不同的序列有至少k對,問選取問題的方案數。

解法:狀態壓縮dp,dp[i][state] 表示 state狀態在前i行一共有幾對不同。

那麼狀態轉移方程為: dp[i][state]  = dp[i-1][state] + i-1 - vis[andlast]。 加號後面是什麼意思呢? 每一行的狀態最多增加 i-1貢獻。  因此再減去重複的,剩下就是第i行的貢獻了。andlast是state& cur[i] ,相當於state規範了選哪些行,和cur[i]按位與之後,剩下的就是第i行在state規範下的問題回答情況了。

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

const int maxn = 1050;

typedef long long ll;

int cur[maxn];

char st[maxn];

int dp[maxn][1<<11], vis[1<<11];

int main()

}printf("case #%d: ",cas++);

if(n*(n-1)/2 = k)

ans++;

printf("%d\n",ans);}}

return 0;

}

百度之星 1001調查問卷 狀態壓縮

題目大意 有m個問題。n個人分別對m個問題有自己的解法,僅僅有ab兩種。即,相當於n條長度為m的01序列,在m中任意選取問題,使得序列在相應的位置上的答案不同的序列有至少k對,問選取問題的方案數。題目思路 狀態壓縮dp,dp i state 表示 state狀態在前i行一共有i對不同。即對於每種狀態...

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

題意 度度熊為了完成畢業 需要收集一些資料來支撐他的論據,於是設計了乙份包含 mmm 個問題的調查問卷,每個問題只有 a 和 b 兩種選項。將問卷散發出去之後,度度熊收到了 nnn 份互不相同的問卷,在整理結果的時候,他發現可以只保留其中的一部分問題,使得這 nnn 份問卷仍然是互不相同的。這裡認為...

2014百度之星1001

problem description 魔法師百小度也有遇到難題的時候 現在,百小度正在乙個古老的石門面前,石門上有一段古老的魔法文字,讀懂這種魔法文字需要耗費大量的能量和大量的腦力。過了許久,百小度終於讀懂魔法文字的含義 石門裡面有乙個石盤,魔法師需要通過魔法將這個石盤旋轉x度,以使上面的刻紋與天...