bzoj 3198 [Sdoi2013]spring hash+容斥原理

KUKA机器人修改机器人名称和IP地址的具体方法示例 阅读详情

Description


有n条河流,每条河流有6个特征。对于给定的k,求多少对河流有恰好k个特征相等
n≤105n\le10^5n≤105

Solution


知道了套路就驾轻就熟了。。
我们只需要求出至少k个特征的答案,那么26枚举这些特征然后用hash判一下,最后套一个容斥就可以了
嗯,似乎非常简单,至少看起来是这样的

但是这里的hash似乎需要一些高超技巧,我们简单地当成6位BASE进制膜一个大质数是行不通的。。。
本着发扬OI不是口胡竞赛的愿景,我对着一个标膜了又膜终于只拿到了92分。一波换质数+换底数都没有成功A掉。。直接上map又会T掉,想了想还是不管了。。

综上,这是一份不能AC的92分代码╮(╯▽╰)╭

Code


#include <stdio.h>
#include <string.h>
#include <algorithm>
#define rep(i,st,ed) for (register int i=st;i<=ed;++i)
#define fill(x,t) memset(x,t,sizeof(x))

typedef long long LL;
const int MOD=1234567;
const int N=500100;

LL a[N][10],n;
LL c[10][10];

struct Hash {
	int tot,h[MOD+10],v[MOD+10];
	LL rec[MOD+10];
	void clear() {
		rep(i,1,tot) rec[v[i]]=h[v[i]]=0;
		tot=0;
	}
	LL calc() {
		LL res=0;
		rep(i,1,tot) {
			if (rec[v[i]]&1) {
				res+=(rec[v[i]]-1)/2*rec[v[i]];
			} else res+=rec[v[i]]/2*(rec[v[i]]-1);
		}
		return res;
	}
	bool equal(int x,int y,int S) {
		bool flag=true;
		rep(i,0,5) if ((S>>i)&1) flag&=(a[x][i+1]==a[y][i+1]);
		return flag;
	}
	void insert(int tmp,int pos,int S) { tmp%=MOD;
		while (h[tmp]&&!equal(h[tmp],pos,S)) tmp=(tmp+1)%MOD;
		if (!h[tmp]) v[++tot]=tmp,h[tmp]=pos;
		rec[tmp]++;
	}
} Hash;

int read() {
	int x=0,v=1; char ch=getchar();
	for (;ch<'0'||ch>'9';v=(ch=='-')?(-1):(v),ch=getchar());
	for (;ch<='9'&&ch>='0';x=x*10+ch-'0',ch=getchar());
	return x*v;
}

LL calc(int S) {
	Hash.clear();
	rep(i,1,n) {
		LL tmp=0;
		rep(j,1,6) {
			tmp=tmp*233%MOD;
			if ((S>>(j-1))&1) tmp=(tmp+a[i][j]+1)%MOD;
		}
		Hash.insert(tmp,i,S);
	}
	return Hash.calc();
}

int main(void) {
	freopen("data.in","r",stdin);
	n=read(); int k=read();
	c[1][0]=c[1][1]=1;
	rep(i,2,7) {
		c[i][0]=1;
		rep(j,1,i) c[i][j]=c[i-1][j]+c[i-1][j-1];
	}
	rep(i,1,n) rep(j,1,6) a[i][j]=read();
	LL ans=0;
	for (int S=0;S<64;++S) {
		int cnt=__builtin_popcount(S);
		if (cnt<k) continue;
		LL xs=((cnt-k)&1)?-1:1;
		ans+=xs*calc(S)*c[cnt][k];
	}
	printf("%lld\n", ans);
	return 0;
}
第8讲:基于CST PCB Studio的电源完整性仿真(IR Drop + PDN) 本文系统介绍了电源完整性(PI)仿真的两大核心模块:直流IRDrop仿真与交流PDN阻抗仿真。文章详细阐述了两种仿真的原理、算法(PEEC和3DFE-FD)及完整操作流程,包括参数配置、软件实操步骤和常见问题解决方案。IRDrop仿真用于分析直流供电压降问题,PDN仿真则针对高频电源噪声和谐振问题。文中还提供了优化建议和故障排查方法,如调整铜箔厚度、优化电容布局等,为高速数字系统的电源完整性设计提供了全面的技术指导。(149字) 阅读详情

相关推荐

AI虚拟人物 数字人直播,不用出镜,不用露脸的直播方式(附教程 软件)

我们先来看一组数据,这是我通过蝉妈妈查到的某位虚拟主播的一个带货数据,粉丝还不到 3000 人,每次直播 1 到 4 个小时,30天的总销量达到了1200单,15天,总销售额 2 万,可能相对来说客单价还是比较低,最关键的是才直播了 6 场,如果说他能够一个月直播 20 天,每天花 4个小时去直播,当个副业来做,就可以达到最起码月入 3 万的一个收入水平,我个人觉得是非常的不错的。大家把商品图片放在背景,只要场景设置的不错,场景和产品的关联度高,直播的时候挂上购买链接也会有一定的成交。

. 7万+

BZOJ 3198 Sdoi2013 spring Hash+容斥原理

题目大意:给定n个元素,每个元素是一个六元组,求有多少对元素满足相同的位置恰好有k个 首先对于恰好有K个这种东西果断考虑容斥原理 我们2^6枚举相同的位置 恰好有k个元素相同的对数=至少有k个位置相同的对数-至少有k+1个位置相同的对数+至少有k+2个位置相同的对数…… 但是我们计数时会发现一些问题 比如下面这组样例显然是0: 2 3 1 2 3 4 5 5 1 2 3 4 6 6

世界 2872

深入解析LCD DRM驱动框架中的KMS与GEM机制

本文深入解析了Linux内核中DRM(Direct Rendering Manager)驱动框架的核心机制,重点剖析了KMS(内核模式设置)与GEM(图形执行管理器)的工作原理。KMS作为显示系统的总指挥,负责原子化地控制CRTC、Encoder、Plane等硬件资源,确保画面同步更新,避免撕裂;GEM则作为显存大管家,通过DUMB和PRIME机制高效管理图形缓冲区的分配、共享与同步。文章结合RK3568平台实战,阐述了如何利用这些机制优化显示性能,并提供了调试技巧与常见问题解决方案。

weixin_29188997的博客 387

BZOJ3198 SDOI2013 spring HASH+容斥原理

题意:给定6个长度为n的数列,求有多少个数对(i,j)((i,j)≡(j,i))使得i和j位置恰好有K个数相同,其中0≤K≤6 题解: 设fi=至少有K个数相同的位置对的数量,用2^6枚举每一种可能,根据容斥原理,答案就是\[\sum\limits_{i = K}^N {{f_i}C_i^K{{\left( { - 1} \right)}^{i - K}}} \] 至于多乘一个组合...

a18700013354的博客 147

毫米波雷达入门知识

毫米波雷达入门知识

ssbzxcvbnm1234567的博客 5442

TMC2209串口配置实战:从寄存器解析到电机精准控制

本文详细解析TMC2209步进电机驱动芯片的串口配置方法,从硬件连接到UART通信协议,再到核心寄存器功能详解。通过实战案例展示电流控制、微步细分和速度调节等关键配置,帮助工程师实现电机精准控制,并提供了常见故障诊断和优化技巧。

f6g7h8i9j的博客 1173

BZOJ3198 [Sdoi2013]spring 哈希 容斥原理

欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ3198 题意概括   有n(1<=n<=100000)组数据,每组数据6个数。   现在问有几对数据,满足其数字相同的个数恰好为k。   0<=k<=6 题解   首先暴搜是不行的。   然后我们发现可以哈希+容斥。   对于有至少有x个数字相...

weixin_30481087的博客 140

Win10安装Nek5000

1 安装wsl 2 2 安装Nek5000 3 安装依赖项 4 安装openmpi 5 配置Nek5000 6 编译Nek5000 7 运行Nek5000算例 8 安装paraview并查看结果

weixin_43176703的博客 3451

BZOJ 3198: [Sdoi2013]spring [容斥原理 哈希表]

3198: [Sdoi2013]spring 题意:n个物品6个属性,求有多少不同的年份i,j满足有k个属性对应相等 一开始读错题了,注意是对应相等 第i个属性只能和第i个属性对应 容斥一下 \[ 恰好k个相等=\ge k个相等 \ -\ \ge k+1个相等\ +\ \ge k+2个相等 \ ... \] \(2^6\)枚举哪些属性对应相等,哈希一下计算这些属性相等的个数,这时候其他是任意的因...

weixin_30462049的博客 92

方案设计之亿级排行榜方案设计

该方案通过 “Redis Zset 为核心 + 分治策略为骨架 + 多级优化为细节”,在亿级用户场景下实现了:本质是将 “亿级大问题” 拆解为 “千万级小问题”,用分布式思想和精细化设计平衡性能、可用性与成本。

shine0312的专栏 1100

11.Labview实现用户界面切换的几种方式---通过VI间相互调用

本文介绍了界面切换的几种方式,分别是重入和引用①重入方式可以通过调用子VI的方式打开被调用的界面,往往应用于弹窗等的设置程序。②引用方式分两种,一种是打开引用,一种是静态引用。区别在于打开引用需要设置被打开VI的目标地址,静态引用仅需在引用时绑定VI的位置即可。③推荐使用静态引用的方式切换界面。④使用引用打开界面时,需通过属性节点和调用节点来设置程序的状态。更多内容欢迎大家补充和留言讨论~本文介绍了GUI界面设计相关的程序,更多相关文章后续持续更新,请关注作者不迷路~本期就到这里,再见~

关注我,更多技术问题欢迎私聊~ 9546

BZOJ 3198([Sdoi2013]spring-Hash判重+容斥原理)

3198: [Sdoi2013]spring Time Limit: 40 Sec  Memory Limit: 256 MB Submit: 104  Solved: 42 [Submit][Status][Discuss] Description Input Output Sample Input 3 3 1 2 3 4 5 6

nike0good |Oier&ACMer | 熟能生巧 2228

手把手教你用 Cursor 写一个完整的 Web 应用(含前后端 + 部署)

本文介绍如何利用Cursor AI工具从零开发一个完整的全栈待办事项Web应用。文章针对开发者常见痛点——无法独立完成项目闭环,提供了一套AI驱动的全栈开发范式。通过Vue3+Node.js+MySQL技术栈,全程由Cursor自动生成项目架构、前后端代码、数据库设计,并解决联调、部署等关键问题。重点展示了如何用AI完成:项目规划与架构设计、后端接口开发、前端页面实现、跨域联调、打包优化及云端部署全流程。该方法将传统需要3-5天的开发工作压缩至1小时内完成,产出规范可上线的项目,特别适合想突破"碎

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 633

bzoj 3198: [Sdoi2013]spring hash+容斥原理

题意给定n个元素,每个元素是一个六元组,求有多少对元素满足相同的位置恰好有k个。 n<=100000分析很容易想到容斥原理。 不难发现,容斥系数要乘上一个组合数CkyC_y^k,y表示选了多少个位置。证明的话,感受一下就好了。代码#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<alg

beginend 358

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

bzoj 3198: [Sdoi2013]spring (hash+容斥原理)

3198: [Sdoi2013]spring Time Limit: 40 Sec  Memory Limit: 256 MB Submit: 947  Solved: 296 [Submit][Status][Discuss] Description Input Output Sample Input 3 3 1 2 3 4 5

clover_hxy的博客 556

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

[Sdoi2013] [bzoj 3198] spring (hash+容斥原理)

题目描述 给出nnn个666维坐标,求有多少对点对满足恰好mmm个位置相等 1&amp;amp;lt;=n&amp;amp;lt;=1051&amp;amp;lt;=n&amp;amp;lt;=10^51&amp;lt;=n&amp;lt;=105 0&amp;amp;lt;=k&amp;amp;lt;=60&amp;amp;lt;=k&amp;amp;lt;=60&amp;lt;=k&amp;lt;=6

Ark 461

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

[BZOJ3198][Sdoi2013]spring(容斥原理+Hash)

看到 KKK 只有 666 ,想 (cai) 到容斥。 即 26262^6 枚举要求哪些泉区的泉水流量对应相同,那么就可以分别计算出答案后利用容斥原理得出最终答案了。 设现在枚举到泉水流量对应相同的泉区集合 S={...}S={...}S=\{...\} ,怎么求泉区集合为 SSS 时合法的年份对数呢? 当然是用 万能的 Hash!啦! 对于每个年份,对泉区集合 SSS 的泉水流量设一个哈...

女装的你,如此好看! 336

[BZOJ3198][Sdoi2013]spring(hash+容斥原理+组合数学)

题目描述传送门题解可以通过枚举+hash求出有i位对应相同有多少对 设其为f(i) 那么答案应该为f(k)∗Ckk−f(k+1)∗Ckk+1...f(6)∗Ck6f(k)*C_k^k-f(k+1)*C_{k+1}^k...f(6)*C_6^k 容斥系数是组合数的原因是即使不考虑有i为对应相同的和有i+1位对应相同的有交集,还是会选出很多重复的情况,所以应该同时将其去重刚开始hash挂了一个ma

zyf2000 828

bzoj3198【SDOI2013】spring

容斥原理+哈希

AaronPolaris 4600

[bzoj3198][Sdoi2013]spring——容斥+哈希表

题目大意: 给定一些六元组,求有多少对(i,j)(i,j)(i,j)满足i,ji,ji,j中恰有kkk对对应相同。 思路: 考虑≥k\geq k≥k的对数然后简单容斥。 考虑到只有六元组,于是直接枚举子集之后把那几位提取出来,单独把那几位哈希然后计算相同的对数有多少。 但是哈希冲突很大,直接手写哈希表即可。 #include&lt;bits/stdc++.h&gt; #define REP(i,...

ylsoi的博客 240

bzoj 3198: [Sdoi2013]spring hash&容斥原理

首先可以用容斥,这样就只用统计制定的i列相同的行的对数了(而不用恰好)。        那么可以把这几行对应的列抽出来,然后用hash值(不妨自然溢出)来统计,可以得到hash值相同的行的个数,然后一边更新一边统计答案即可。注意hash值很大需要用hash统计(此hash非彼hash)。        时间复杂度O(2^6*N)。 AC代码如下: #include #include #in

lych的博客 944

BZOJ 3198 [Sdoi2013]spring

题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3198 题解 考虑容斥,答案就是∑i=kn(ik)×\sum_{i=k}^n\binom{i}{k}\times∑i=kn​(ki​)×至少iii个相同的方案数。这个用hash统计就可以了。 代码 #include <cstd...

dilei7762的博客 100

bzoj 3198: [Sdoi2013]spring 题解

【原题】 3198: [Sdoi2013]spring Time Limit: 40 Sec  Memory Limit: 256 MB Submit: 253  Solved: 95 Description Input Output Sample Input 3 3 1 2 3 4 5 6 1 2 3 0 0 0

阿蒋的专栏 1297

【SDOI2013】【BZOJ3198】spring

Description Input Output Sample Input 3 3 1 2 3 4 5 6 1 2 3 0 0 0 0 0 0 4 5 6 Sample Output 2 HINTDragonite修正数据SourceHash 我是傻逼T_T先写错了Hash姿势…然后把Hash改成Po姐姿势… 然后又发现自己组合数都求错了T_T容斥原理+组合数学+has

CreationAugust is 14 years old forever 1686

[BZOJ 3198] [Sdoi2013] spring 【容斥 + Hash】

题目链接:BZOJ - 3198 题目分析 题目要求求出有多少对泉有恰好 k 个值相等。 我们用容斥来做。 枚举 2^6 种状态,某一位是 1 表示这一位相同,那么假设 1 的个数为 x 。 答案就是 sigma((-1)^(x - k) * AnsNow * C(x, k)) 。注意 x 要大于等于 k。 对于一种状态,比如 10110,就是要保证第 1, 3, 4 个值相同。...

weixin_30294021的博客 75
上一篇: bzoj2694 Lcm 莫比乌斯反演
下一篇: 51nod1407 与与与与 容斥+DP
olahiuj
博客等级 码龄12年 97粉丝 1182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值