牛客小白月赛23 A-膜法记录(贪心+枚举)

Sahar ·
更新时间:2024-09-21
· 669 次阅读

题目传送

用贪心的思想,先将行全部消灭,在判断列有多少,和b比较一下。
每一行可以消或不消,枚举2^n。

#include #include #include using namespace std; const int maxm = 1e5 + 5; int n, m, a, b, flag; char map[30][maxm]; int vis[30]; //判断该行是否消灭 bool cheak() { set st; for (int i = 1; i <= n; i++) { if (vis[i]) continue; for (int j = 1; j = st.size(); } void dfs(int u, int k) { if (u > n + 1 || k > a) return; if (cheak()) { flag = 1; return; } vis[u] = 1; dfs(u + 1, k + 1); //消 vis[u] = 0; dfs(u + 1, k); //不消 } int main(void) { int t; cin >> t; while (t--) { memset(vis, 0, sizeof(vis)); cin >> n >> m >> a >> b; for (int i = 1; i > map[i] + 1; flag = 0; dfs(1, 0); if (flag) cout << "yes\n"; else cout << "no\n"; } return 0; }
作者:Z.rush



牛客 枚举

需要 登录 后方可回复, 如果你还没有账号请 注册新账号