首页 > 其他分享 >$20240303$ 随机好题

$20240303$ 随机好题

时间:2024-03-03 15:12:14浏览次数:14  
标签:cnt 20240303 val int 好题 随机 引理 mex

\(20240303\) 随机好题

CF40E

引理1:若答案不为 \(0\),则 \(n, m\) 同奇偶。

证明:每行、列都是 \(1\),那么考虑把每个数乘起来。有 \((-1)^n = (-1)^m\)。所以 \(n \equiv m (\bmod 2)\)

引理2:在引理1 的条件下,若已确定所有列满足条件,一行之外的所有行也满足条件,那么该行也满足。证明同上。

一道比较好的组合计数。首先观察题目,我相信大部分人应该都注意到了 \(0 \le k < \max \{ n, m \}\)。我们来思考这意味着什么。

我们假设 \(n > m\),那么至少有一行,一个数字也不填。假设其他行填完了,满足条件。那么剩下的也肯定满足:首先每列可以通过这一行来调整是他都变成 \(-1\),然后通过引理2可以证明改行也满足。

于是我们只用考虑除了哪一行之外的其他行的方法数的乘积。所以说我们就有每一行的填法是 \(2^{m - \text{已填的个数} - 1}\)。

#include <bits/stdc++.h>
#define int long long
using namespace std;

const int N = 1e3 + 5;
int n, m, k, flag, Mod, mex, ans, qpow[N], cnt[N], val[N];

signed main(){
	cin >> n >> m >> k;
	if(k >= n) flag = 1, swap(n, m);
	for(int i = 1; i <= k; i++){
		int x, y, z;
		cin >> x >> y >> z;
		if(flag) swap(x, y);
		cnt[x]++;
		val[x] = val[x] == 0 ? z : val[x] * z;
	}
	mex = 1; while(cnt[mex]) mex++;
	cin >> Mod;
	
	qpow[0] = 1;
	for(int i = 1; i <= max(n, m); i++) qpow[i] = qpow[i - 1] * 2 % Mod;
	ans = !(((n & 1) ^ (m & 1)) & 1);
	for(int i = 1; i <= n; i++){
		if(i == mex) continue;
		if(cnt[i] == m && val[i] == 1) ans = 0;
		if(cnt[i] ^ m) ans = (ans * qpow[m - cnt[i] - 1]) % Mod;
	}
	cout << ans << endl;
	return 0;
}

标签:cnt,20240303,val,int,好题,随机,引理,mex
From: https://www.cnblogs.com/lc0802/p/18050066

相关文章

  • 06. 实现随机地图
    最终效果每列根据自己的定义,创建出对应的房间图片实现方法补全所有的RoomData将它们添加到MapGenerator上面然后我们需要根据MapConfigSO上面RoomType的定义,随机取出一个对应的RoomData获取到RoomType之后,就能根据RoomType获取对应的RoomData,注意roomDa......
  • python随机3分钟发送一次消息
    需求:有一个实时任务,想要间隔3分钟发送,最近的一次消息。代码:#间隔3分钟发送importrandomimporttimeinit_time=time.time()#初始值status="start"whileTrue:#生成一个随机数random_number=random.randint(1,100)print("开始生成随机数:",......
  • 实战1-params随机生成(难度初级)
    目标网站>aHR0cDovL3R6eG0uanh6d2Z3dy5nb3YuY24vaWNpdHkvaXByby9vcGVuL3B1YmxpY2l0eQ==1.先找到需要逆向的参数通过翻页找到这个数据包![这是图片](https://img2024.cnblogs.com/blog/2861542/202402/2861542-20240228165958593-1353453011.png)复制数据包的Curl,运用爬虫工......
  • 3#AI范围内随机行动
    描述这是一个对行为树的基础使用,使AI在导航网格范围内进行随机巡逻知识点行为树任务Task行为树任务(下文简称Task或BTT)是行为树中的叶节点,负责执行最为具体的逻辑Task有官方提供的基本Task和自定义编写的Task(一般需要自己写)每一个Task都可以将其看作是一个相对独立的蓝图或......
  • Qt 随机数生成器:QRandomGenerator
    一、描述QRandomGenerator可用于从高质量随机数生成器生成随机值。与C++随机引擎一样,QRandomGenerator可以通过构造函数使用用户提供的值作为种子。播种时,此类生成的数字序列是确定性的。也就是说,给定相同的种子数据,QRandomGenerator会生成相同的数字序列。给定不同的种......
  • Qt 生成随机数 qrand、QRandomGenerator
    //老方法//利用qrand和qsrand生成随机数//位于QtGlobal中//例,生成一个0和10之间的随机数1qsrand(QTime::currentTime().msec());//设置种子,该种子作为qrand生成随机数的起始值,RAND_MAX为32767,即随机数在种子值到32767之间2qrand()%10;//新方法//利用QRandomGenerator类......
  • R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化
    全文链接:https://tecdat.cn/?p=33760原文出处:拓端数据部落公众号概述:众所周知,心脏疾病是目前全球最主要的死因。开发一个能够预测患者心脏疾病存在的计算系统将显著降低死亡率并大幅降低医疗保健成本。机器学习在全球许多领域中被广泛应用,尤其在医疗行业中越来越受欢迎。机器......
  • 随机化算法
    1随机化算法简介随机化算法,是一种十分玄学的做法。百度百科对其的定义是:随机化算法(randomizedalgorithm),是这样一种算法,在算法中使用了随机函数,且随机函数的返回值直接或者间接的影响了算法的执行流程或执行结果。就是将算法的某一步或某几步置于运气的控制之下,即该算法在运......
  • 随机APC决斗
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device......
  • 如何用Airtest实现在图片范围内随机点击
    1.前言前几天有个新手同学在Airtest官群里问了这样一个问题:我是新手,在图片范围内随机点击,用Airtest怎么实现?代码?那我们就以这个问题为例,浅浅聊一下,怎么把需求转化成我们的Airtest代码。2.了解Airtest首先新手同学对Airtest要有以下几点认知:①Airtest是一个图像识别框架......