N - 寿司晚宴 HYSBZ - 4197 状压dp】的更多相关文章

N - 寿司晚宴 HYSBZ - 4197 推荐题解 这个题目我觉得还是很难的,借助题解写出来的,题解还看了很久,现在还是不是很理解. 首先这个数比较大有500,如果直接就像这个题目S - Query on a tree 这样写就超时了,而且也存不下这么大的数. 因为这个500以内的质数太多了,然后看了这么多题解你会发现根号500以内的质数只有8个. 而每一个数大于根号500的质数最多一个,所以我们可以先讨论这个小于根号500的质数,然后再判断这个大于根号500的质数. 讨论完之后再判断这个大于…
传送门 数论题\(n \leq 500\)肯定是什么暴力算法-- 注意到每一个数\(> \sqrt{n}\)的因子最多只有一个,这意味着\(> \sqrt{n}\)的因子之间是独立的,而只有\(\leq \sqrt{n}\)的因子之间会相互影响.而\(\leq \sqrt{n}\)的因子只有\(2,3,5,7,11,13,17,19\)总共\(8\)个,所以可以大力状压. 将\(2-n\)之间的所有数质因数分解,记录其中\(<\sqrt{n}\)的因子的出现情况,按照\(> \sq…
Description 为了庆祝 NOI 的成功开幕,主办方为大家准备了一场寿司晚宴. 小 G 和小 W 作为參加 NOI 的选手,也被邀请參加了寿司晚宴. 在晚宴上,主办方为大家提供了 n−1 种不同的寿司,编号 1,2,3,-,n−1.当中第 i 种寿司的美味度为 i+1 (即寿司的美味度为从 2 到 n). 如今小 G 和小 W 希望每人选一些寿司种类来品尝,他们规定一种品尝方案为不和谐的当且仅当:小 G 品尝的寿司种类中存在一种美味度为 x 的寿司,小 W 品尝的寿司中存在一种美味度为…
题面传送门 题意: 你有一个集合 \(S={2,3,\dots,n}\) 你要选择两个集合 \(A\) 和 \(B\),满足: \(A \subseteq S\),\(B \subseteq S\),且 \(A \cap B=\varnothing\) 不存在两个数 \(x \in A\),\(y \in B\),且 \(\operatorname{gcd}(x,y)>1\). 求满足条件的集合 \(A,B\) 的数量. \(n \in [2,500]\) 通过分析题面可以发现,如果两个集合 \…
题目大意:两个人从2~n中随意取几个数(不取也算作一种方案),被一个人取过的数不能被另一个人再取.两个人合法的取法是,其中一个人取的任何数必须与另一个人取的每一个数都互质,求所有合法的方案数 (数据范围毕竟很小,乍一看也不是啥打表找规律的题) 和我之前做过的一道题很类似hdu 6125,但这道题由于题面看起来很玄学,所以正解更难想 但还是 状压DP+分组背包 的套路 因为500以内的任何一个数,只会有一个大于19的质因子,所以对2 3 5 7 11 13 17 19这8个质数进行状压,然后每个数…
Description 给一个数字串s和正整数d, 统计s有多少种不同的排列能被d整除(可以有前导0).例如123434有90种排列能被2整除,其中末位为2的有30种,末位为4的有60种. Input 输入第一行是一个整数T,表示测试数据的个数,以下每行一组s和d,中间用空格隔开.s保证只包含数字0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Output 每个数据仅一行,表示能被d整除的排列的个数. Sample Input 7000 1001 11234567890 112343…
题目描述 为了庆祝 NOI 的成功开幕,主办方为大家准备了一场寿司晚宴.小 G 和小 W 作为参加 NOI 的选手,也被邀请参加了寿司晚宴. 在晚宴上,主办方为大家提供了 n−1 种不同的寿司,编号 1,2,3,…,n−1,其中第 i 种寿司的美味度为 i+1 (即寿司的美味度为从 2 到 n). 现在小 G 和小 W 希望每人选一些寿司种类来品尝,他们规定一种品尝方案为不和谐的当且仅当:小 G 品尝的寿司种类中存在一种美味度为 x 的寿司,小 W 品尝的寿司中存在一种美味度为 y 的寿司,而…
深感自己姿势水平之蒻……一直都不是很会状压DP,NOIP又特别喜欢考,就来复习一发…… 题目来源 Orz sqzmz T1 [BZOJ4197][NOI2015]寿司晚宴 (做过)质因数分解最大的质因子独自处理,$\sqrt{500}$以内的质数只有八个,因此可以用$2^{16}$的状态来表示一种方案: 然后有同样因子的两个数不能同时出现,排序然后随便搞搞就行了…… #include<algorithm> #include<iostream> #include<cstring…
题目 思路 这道题竟然是状压DP,本人以为是数论,看都没看就去打下一题的暴力了,哭 \(A_i\)<=30,所以我们只需要考虑1-58个数,再往后选的话还不如选1更优,注意,1是可以重复选取的,因为题目中有一句话 所以我们所枚举的因子只能包括1-58之间的质因子,而且每个质因子只能选一次,所以选完质因子之后,如果还有剩余的数,就用1填补,而1-58之间的质因子只有16个!!!我们对其进行状压. f[i][j]代表处理到第i位j状态下的最优解 预处理1-58之间的每一个数的因子,用state数组存…
Painful Bases LightOJ - 1021 这个题目一开始看,感觉有点像数位dp,但是因为是最多有16进制,因为限制了每一个数字都不同最多就有16个数. 所以可以用状压dp,看网上题解是 dp[s][r] 表示数字集合为s,对 k 取余为r的方案数. 这个题目首先把给你的字符转化成数字,然后枚举状态,枚举模数,枚举每一位的所有可能. 这个注意是写离散化的,不是直接暴力,虽然理论上都会超时,但是实际上离散化的没有超时. 这个题目我觉得还挺好的,以后可以在写写 #include <io…