首页 > 其他分享 >Keys

Keys

时间:2024-12-24 15:33:28浏览次数:3  
标签:dep return Keys dfs int key ans

题目链接

题意:求所有符合题目要求的真假钥匙的总数
题解:先看数据范围 N<=15 ,M<=100 ,数据不大,直接暴力枚举 2^N 种情况, 然后对每组测试进行核验,当每组测试都通过时, 这组数据符合要求。

代码

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 2e5 + 9;
//开全局方便后面使用
int c[20], a[105][20];
int key[20];//记录钥匙的真假情况
char r[105];
int ans = 0;
int n, m, k;
void dfs(int dep)
{
	if (dep > n) return;
	//枚举当第dep个钥匙为假的情况
	key[dep] = 0;
	if (dep == n)
	{
		int f = 1;
		//对所有测试进行核验
		for (int i = 1; i <= m; i++)
		{
			int cnt = 0;
			for (int j = 1; j <= c[i]; j++)
			{
				cnt += key[a[i][j]];
			}
			if ((cnt < k && r[i] == 'o') || (cnt >= k && r[i] == 'x'))
			{
				f = 0;
				break;
			}
		}
		if (f) ans++;
		//return;
	}
	dfs(dep + 1);
	//枚举当第dep个钥匙为真的情况
	key[dep] = 1;
	if (dep == n)
	{
		//对所有测试进行核验
		int f = 1;
		for (int i = 1; i <= m; i++)
		{
			int cnt = 0;
			for (int j = 1; j <= c[i]; j++)
			{
				cnt += key[a[i][j]];
			}
			if ((cnt < k && r[i] == 'o') || (cnt >= k && r[i] == 'x'))
			{
				f = 0;
				break;
			}
		}
		if (f) ans++;
		return;
	}
	dfs(dep + 1);

}
void solve()
{

	cin >> n >> m >> k;
	for (int i = 1; i <= m; i++)
	{
		cin >> c[i];
		for (int j = 1; j <= c[i]; j++)
		{
			cin >> a[i][j];
		}
		cin >> r[i];
	}

	dfs(1);

	cout << ans << '\n';
	return;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int _ = 1;
	//cin >> _;
	while (_--) solve();
	return 0;
}

标签:dep,return,Keys,dfs,int,key,ans
From: https://www.cnblogs.com/jin1/p/18627796

相关文章

  • renben-openstack-keystone操作
    controller节点操作source/root/keystonerc_admin1.查看openstack中keystone的endpointopenstackendpointlist+----------------------------------+-----------+--------------+--------------+|ID|Region|ServiceName|ServiceT......
  • 关于QFramework UIKit和ResKit生成的UI预制体打包后报错Failed to Create Res. Not Fi
     使用UIKit创建UIPrefb后打包发布后提示FailedtoCreateRes.NotFindByResSearchKeys:AssetName:basepanelBundleName:TypeName:UnityEngine.GameObject,找不到所需资源。下方如图1-1的报错。图1-1问题原因:一开始以为是没有按照教程所说的流程来创建。按照教程所说......
  • Armbian系统,可以尝试运行 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv
    armbianThefollowingsignaturescouldn'tbeverifiedbecausethepublickeyThefollowingsignaturescouldn'tbeverifiedbecausethepublickeyisnotavailable:NO_PUBKEY871920D1991BC93C报错信息:"Thefollowingsignaturescouldn'tbev......
  • 【redis】关于查询和分析redis中的bigkeys问题
    一、场景   今年的实际业务中,出现了一次redisbigkeys导致的生产事故,导致业务1个小时收不到指令。 二、关于bigkeys查询方法1、使用redis-cli加--bigkeys参数$redis-cli-h192.168.3.74-p6379--bigkeys  2、使用redis-cli中的scan和memoryusagehttps://op......
  • Keysight E4980A 精密 LCR 表
    KeysightE4980A精密LCR表一、基本介绍E4980A精密型LCR表实现了测量准确度、速度与通用性的理想结合,适用于各种元器件测量。无论是在低阻抗量程还是在高阻抗量程内,E4980A均能提供超快的测量速度和出色的测量性能,因此是常规元件和材料研发及制造应用所必需的卓越......
  • android 删除系统原有的debug.keystore,系统运行的时候,重新生成新的debug.keystore,来完
    1、先上一个图:这个是keystore无效的原因之前在安装这个旧版本androidstudio的时候呢,安装过一版最新的androidstudio,然后通过模拟器跑过测试的demo。2、运行旧的项目到模拟器的时候,就报错了:Executionfailedfortask':app:packageDebug'.>Afailureoccurredwhilee......
  • Keysight U8031A DC power supply
    KeysightU8031ADCpowersupply文章目录KeysightU8031ADCpowersupply前言电容充电⽰意图一、恒定电压操作二、恒定电流操作三、5v操作四、跟踪模式操作五、存储器操作六、对过电压保护编程七、对过电流保护编程八、锁键操作前言U8031APowerSupply是一款......
  • 【已解决】Vue Duplicate keys detected: ‘[object Object]’
    【已解决】VueDuplicatekeysdetected:‘[objectObject]’在Vue项目开发过程中,我们可能会遇到这样的报错:“Duplicatekeysdetected:‘[objectObject]’.Thismaycauseanupdateerror.”。这个错误通常发生在Vue的虚拟DOM进行渲染更新时,如果检测到重复的key值,就......
  • Python创建字典与fromkeys的坑
    字典很重要字典dict是Python中很重要的一个数据类型,通过键值映射,能够很好的定位查找.Django,Flask这些Web框架在做前后端分离时,就是用字典传数据的,因为它和列表list配合起来,能够很好的与json格式的数据相互转化.用Flask+Echarts做数据可视化大屏,传的变量都是......
  • 解决:The GPG keys listed for the "MySQL 8.0 Community Server" repository are alre
    安装mysql提示Retrievingkeyfromfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysqlTheGPGkeyslistedforthe"MySQL8.0CommunityServer"repositoryarealreadyinstalledbuttheyarenotcorrectforthispackage.CheckthatthecorrectkeyURLsarecon......