洛谷 P6075 [JSOI2015]子集选取】的更多相关文章

链接:P6075 前言: 虽然其他大佬们的走分界线的方法比我巧妙多了,但还是提供一种思路. 题意: %&¥--@#直接看题面理解罢. 分析过程: 看到这样的题面我脑里第一反应就是DP,但是看到n和k的范围只能作罢.想到各种柿子又根本推不出来,于是颓废地打了个复杂度算不来的貌似是 \(2^{n^3}\) 的深搜.于是有以下测试: input      output 1 2         4 2 2         16 3 2         64 1 3         8 2 3      …
洛谷题面传送门 学校模拟赛的某道题让我联想到了这道题-- 先讲一下我的野鸡做法. 首先考虑分治,对于左右端点都在 \([L,R]\) 中的区间我们将其分成三类:完全包含于 \([L,mid]\) 的区间,完全包含于 \([mid+1,R]\) 的区间,和跨过中间点的区间.前两种我们只需进一步递归 \([L,mid]\) 和 \([mid+1,R]\) 即可求解出答案,比较麻烦的是第三种.我们考虑先扫一遍预处理出 \(F_i=\gcd(a_i,a_{i+1},\cdots,a_{mid})\),以…
题目描述 输入 输入包含一行两个整数N和K,1<=N,K<=10^9 输出 一行一个整数,表示不同方案数目模1,000,000,007的值. 样例输入 2 2 样例输出 16   可以发现对于集合中每个元素的选取都是互不影响的,设$f(n,k)$为输入$n,k$时的答案,那么$f(n,k)=f(1,k)^n$. 我们现在来推导$f(1,k)$的结果:可以发现$1$的位置一定是连续的,设$a_{i}$表示第$i$列最后选取到了$a_{i}$行,若从第$1$列到第$m$列均存在被选取. 那么可以得…
Description 有一些\(\{1\dots n\}\)的子集\(A_{i,j}, 1\leq j\leq i\leq k\)共\(\frac{k(k+1)}2\)个,满足\(A_{i,j}\subset A_{i+1,j}, A_{i,j}\subset A_{i,j+1}\).求这些集合有多少种方案.如果\(A\)和\(B\)两种方案中存在\(i,j\)使得\(A_{i,j}\neq B_{i,j}\),则它们是不同的.\(n, k\leq 10^9\) Solution 对于\(n=…
传送门 ps: 下面\(n\)和\(k\)好像和题目里的写反了...将就着看吧\(qwq\) 暴力打个表答案就出来了? 先写个结论,答案就是\(2^{nk}\). 为啥呢? 首先你需要知道,因为一个集合是另一个集合的子集这个东西,集合中的一个元素对其他元素并不会有影响,完全可以把元素分开来看,然后将答案乘起来. 那么转化成一个好像好解决点的问题,就是\(k = 1\)时怎么做. 因为只有一个元素,在加上要求是\(A_{i,j} \subseteq A_{i-1,j},A_{i,j} \subse…
Description Input 输入包含一行两个整数N和K,1<=N,K<=10^9 Output 一行一个整数,表示不同方案数目模1,000,000,007的值. Sample Input 2 2 Sample Output 16 思路 首先因为每个元素都是独立的,所以可以分开考虑 然后如果只有一个元素,可以考虑\(dp_{i}\)表示i行i列的方案数 第i+1行如果放了前k个,那么前面的前k个都必须要放,所以只剩下一个\(dp_{i-1-k}\) 然后归纳一下发现就是\(2^k\) 所…
题意 题目链接 分析 显然可以看成一个位数为 \(n\) 的二进制数然后每一位分开考虑然后求和.最后的答案是 \(w^n\) 的形式. 考虑一个dp. 定义状态 \(f_{i}\) 表示选择了长度为 \(i\) 的三角的方案总数. 根据题意容易得到如果 \(A_{i,j}\) 可以为1,那么 \(A_{i-1,j}\ ,A_{i,j-1}\) 都要是1. 所以一行当中如果存在1的话一定是一段连续的前缀. 转移: \(f_i=1+\sum_{j=1}^{i-1}{f_j}\).枚举 \(i-1\)…
数据范围过大说明这个题和组合一点关系也没有,答案基本上肯定是ab的形式了.暴力打表感觉不太好写,找到当年的题面发现还有个样例是6 40 401898087,于是暴力找ab=401898087的数,发现一组a=64 b=40,可以发现a=2n b=k,同时也符合第一组数据,于是就做完了. 可以发现集合中的数字互不影响,对每个数字分别考虑.问题变为在一个全0三角形中填一些1,使得若ai,j=1,则ai-1,j=ai-1,j=1. 容易发现每行为1的一定是一个前缀.设fi,j为第i行有j个1的方案数,…
题目描述 数据范围 \(1\leq N,K \leq 10^9\) \(solution\) 集合S中每个元素互不影响,不妨依次考虑其中一个元素在三角形中的出现情况 问题转化为一个\(0/1\)的三角形\(\{A_{i,j}\}\),用\(0\)表示选了,\(1\)表示没选,那么如果\(A_{i,j}\)为\(1\),则\(A_{i,j}\)左边和上边都是\(1\) 考虑\(n\)比较小的情况,可以DP \(f_i\)表示一个\(i*i\)的三角形的方案数 对于\(f_i\),第\(i\)行一定…
233,扒题解的时候偷瞄到这个题的题解了,,GG 暴力发现是2^(nm),然后就是sb题了 #include <bits/stdc++.h> #define LL long long using namespace std; ; int ksm(int x, LL p) { ; ,x=(LL)x*x%mod) ) sum=(LL)sum*x%mod; return sum; } int n,m; int main() { cin>>n>>m; LL orz=(LL)n*…
题意 给定一棵\(n\)个点的树,有点权,你从\(1\)号点开始一次旅行,最后回到\(1\)号点.每到达一个点,你就能获得等于该点点权的收益, 但每个点都有进入该点的次数限制,且每个点的收益只能获得一 次,求最大收益. 思路 树形\(\texttt{DP}\) + 优先队列 比较容易看出来这是一道树形\(\texttt{DP}\)题 要注意的是最大停留次数为输入次数-1,因为还要从子树返回到这一个节点 然后下面考虑怎么\(\texttt{DP}\) 我们用\(f[i]\)表示以从\(i\)出发,…
题面 首先这 \(n\) 个数是互相独立的,所以我们不需要统一的去考虑,只需要考虑其中一个数即可. 我们以 \(k=5\) 的情况举例. 我设 \(f_i\) 为最后一行只填前 \(i\) 个点的情况数, \(g_i\) 为 \(k=i\) 时总共的情况数. 显然, \(f_0\) 就是 \(g_{k-1}\) ,在这里就是 \(g_4\) . 然后 \(f_1\) 其实就是图中黑色部分一定填,白色一定不填,红色部分可选的种类数.进一步观察,这个红色部分其实就是 \(g_3\) . 再进一步由图…
传送门(uoj) 传送门(洛谷) 全世界都会子集卷积就咱不会--全世界都在写\(FMT\)就咱只会\(FWT\)-- 前置芝士 或运算\(FWT\)或者\(FMT\) 左转洛谷模板区,包教包会 子集卷积 定义:对于两个集合幂级数\(F,G\),它们的子集卷积\(H\)定义为\[H_S=\sum_{T\subseteq S}F_TG_{S-T}\] 简单来说就是两个下标要满足的条件为\(L\cap R=\varnothing\)且\(L\cup R=S\) \(L\cup R=S\)就是个异或卷积…
4475: [Jsoi2015]子集选取 Time Limit: 1 Sec  Memory Limit: 512 MBSubmit: 363  Solved: 255[Submit][Status][Discuss] Description Input 输入包含一行两个整数N和K,1<=N,K<=10^9 Output 一行一个整数,表示不同方案数目模1,000,000,007的值. Sample Input 2 2 Sample Output 16 HINT   Source By 佚名上…
洛谷题目传送门 Dalao的题解多数是什么模拟退火.DFS剪枝.\(O(3^nn^2)\)的状压DP之类.蒟蒻尝试着把状压改进了一下使复杂度降到\(O(3^nn)\). 考虑到每条边的贡献跟它所在的层有关,所以如果我们能够将一层的边一起加进去,计算就会方便许多.于是想办法把这个转移过程状压一下. 设\(f_{i,j}\)为当前已选点集为\(i\),下一层加入的点集为\(j\)时,新加入的所有点与原有点之间最小的边权之和.计算的具体实现,我们\(O(2^n)\)枚举\(i\),再枚举\(i\)的补…
「JSOI2015」子集选取 传送门 看到这个数据范围,就知道肯定是要找规律. 如果把集合看成一个长度为 \(n\) 的 \(01\) 串, \(0\) 表示没有这个元素, \(1\) 表示有这个元素, 那么我们可以发现对于题中的约束关系,不同位上的 \(01\) 之间不会互相影响. 那么我们只需要对于只有一位也就是 \(n = 1\) 的情况计算出方案(记为 \(x\))那么最后的答案就是 \(x ^ n\) . 现在考虑如何计算 \(x\) . 根据题目的限制,不难发现每一行都是一个全是 \…
树链剖分 将一棵树的每个节点到它所有子节点中子树和(所包含的点的个数)最大的那个子节点的这条边标记为"重边". 将其他的边标记为"轻边". 若果一个非根节点的子树的大小不小于任意一个他兄弟节点的子数大小(若有多个就看心情选取其中的一个),那么它到它父节点的连边为重边,这个节点为重子节点,否则,它到它父节点的连边为轻边. 将一条全部由重边组成的链叫做重链. (图中加粗的边为重边,未加粗的边为轻边,图取自www.baidu.com) 这样做有什么用呢? 如上图剖分后的树…
洛谷 P3410 拍照 题目描述 小B有n个下属,现小B要带着一些下属让别人拍照. 有m个人,每个人都愿意付给小B一定钱让n个人中的一些人进行合影.如果这一些人没带齐那么就不能拍照,小B也不会得到钱. 注意:带下属不是白带的!!!对于每个下属,如果他带了那么小B需要给他一些钱,保证当他拍照时配合. 请问,小B的净收益最多是多少. 输入输出格式 输入格式: 第1行有2个正整数m和n(0<m,n<=100).接下来的m行,每行是一个要求拍照的人的有关数据.第一个数是他同意支付该合影的费用:接着是该…
洛谷 P2762 太空飞行计划问题 P3410 拍照[最大权闭合子图]题解+代码 最大权闭合子图 定义: 如果对于一个点集合,其中任何一个点都不能到达此集合以外的点,这就叫做闭合子图.每个点都有一个权值,那么最大权闭合子图就是权值最大的那个闭合子图. (或者说对于一个点集,这个点集中所有点的出边所指向的点都在此点集中) 求解 超级源点向每个权值为正的点连边,容量为该点权值 每个点权为负的点向超级汇点连边,容量为该点权值相反数 原图中的变,容量为inf 然后跑最小割(最大流) 最后用正点权的总和-…
题目链接 [洛谷传送门] [LOJ传送门] 题目大意 给定一棵树,每次选取树上的一个点集,要求点集中的每个点不能是另一个点的祖先,选出点集的代价为点集中权值最大点的权值,问将所有点都选一遍的最小代价为多少. (题目大意来自洛谷题解某一篇) 题解 分析一下这一道题目. 首先,因为不能存在祖先关系,那么在一条链上的所有点一定是要分开来取的. 那么很显然,根必须一个点一个集合,那么在递归子树,同样的操作,把子树独立的递归,然后合并子树内的最大值. 代码 #include <bits/stdc++.h>…
原文链接https://www.cnblogs.com/zhouzhendong/p/9261079.html 题目传送门 - 洛谷P3959 题目传送门 - Vijos P2032 题意 给定一个 $n$ 个节点 $m$ 条边的无向图. 现在请你在这个图之上生成一个有根树. 记 $d_i$ 为节点 $i$ 的深度 $(d_{root}=0)$ ,记 $fadis_i$ 为节点 $i$ 到其父亲节点的连边中的最小边权. 则这棵树的代价为 $$\sum_{i=1}^{n}(d_i\times fa…
本省省选题是需要做的. 题目传送门:洛谷P4609. 题意简述: 求有多少个 \(1\) 到 \(N\) 的排列,满足比之前的所有数都大的数正好有 \(A\) 个,比之后的所有数都大的数正好有 \(B\) 个. 答案对 \(mod=10^9+7\) 取模. 有 \(T\) 组数据. 题解: 考虑最大的元素 \(N\) ,它把序列分成两部分. 考虑左边的一部分,它满足比之前所有数都大的数正好有 \(A-1\) 个,右边同理. 把每个比之前所有数都大的数和其右边比它小的连续一段的数分为一组,则左边有…
一道技巧性非常强的计数题,历年WC出得最好(同时可能是比较简单)的题目之一. 题目传送门:洛谷P5206. 题意简述: 给定 \(n, y\). 一张图有 \(|V| = n\) 个点.对于两棵树 \(T_1=G(V, E_1)\) 和 \(T_2=G(V, E_2)\),定义这两棵树的权值 \(F(E_1, E_2)\) 为 \(y\) 的 \(G'=(V,E_1\cap E_2)\) 的联通块个数次方. 即 \(F(E_1, E_2) = y^{n - |E_1\cap E_2|}\)(因为…
题目传送门:洛谷 P4389. 题意简述: 有 \(n\) 个物品,每个物品都有无限多,第 \(i\) 个物品的体积为 \(v_i\)(\(v_i\le m\)). 问用这些物品恰好装满容量为 \(i\) 的背包的方案数,两个方案不同当且仅当存在某一个物品的选取数量不同. 你需要对 \(i\in [1,m]\) 回答,答案对 \(998,244,353\) 取模. 题解: 对于一个体积为 \(v\) 的物品,它装满容量为 \(x\) 的背包的方案数序列为 \(a_x=[v|x]\). 例如 \(…
[LGR-054]洛谷10月月赛II luogu 成功咕掉Codeforces Round #517的后果就是,我\(\mbox{T4}\)依旧没有写出来.\(\mbox{GG}\) . 浏览器 \(\mbox{popcount}\)为\(0\)的乘上\(\mbox{popcount}\)为\(1\)的就是答案. 因为两个数异或以后二进制位\(1\)的个数的奇偶性不会变. 至于计算\(\mbox{popcount}\),预处理到根号,\(O(1)\)计算即可. #include<cstdio>…
[LGR-051]洛谷9月月赛 luogu 签到题 description 给出\(K\)和质数\(m\),求最小的\(N\)使得\(111....1\)(\(N\)个\(1\))\(\equiv k \mod m\). \(m\le10^{11},0 \le k < m\) solution 把\(N\)个\(1\)写成等比数列求和的形式,不难推出这个式子:\(10^N\equiv9k+1\mod m\) 所以直接上\(BSGS\)就行了. 应该是不存在无解的情况的,毕竟无解很容易构造而题目中…
洛谷 P2014 选课(树形背包) 思路 题面:洛谷 P2014 如题这种有依赖性的任务可以用一棵树表示,因为一个儿子要访问到就必须先访问到父亲.然后,本来本题所有树是森林(没有共同祖先),但是题中的节点\(0\)其实就可以当做一个LCA,从节点\(0\)开始dp. 状态定义:\(dp[x][m]\)x节点,选则m课,获得的最大学分 决策时,类比背包,遍历每一个状态,用儿子的状态更新 dp转移方程(已优化一维): \[ dp[x][i] = max{dp[x][i-j]+dp[son(x)][j…
洛谷 P1273 有线电视网(树形背包) 干透一道题 题面:洛谷 P1273 本质就是个背包.这道题dp有点奇怪,最终答案并不是dp值,而是最后遍历寻找那个合法且最优的\(i\)作为答案.dp值存的是当前状态下的成本,所以合法情况即当成本值大于等于0,不亏本的时候. 因为dp维护的是成本,并且按照背包思想,存在让这个用户接入和不让这个用户接入两种决策,类比背包,所以状态转移方程容易得到原始方程: \[ dp[s][i][j]=max \{ dp[s][i-1][j-k]+dp[w][size_w…
前言:     如果还不知道斯坦纳树的童鞋可以看这两篇博客: 我的:https://blog.csdn.net/jerry_wang119/article/details/80001711 我一开始学习的:https://blog.csdn.net/wu_tongtong/article/details/78992913 这道题,在我学习斯坦纳树之前就翻到了,是在洛谷上搜状压的时候看到的.那个时候还不知道斯坦纳树是个什么玩意,不过马上进行了学习. 然而学习了之后也没有什么卵用,发现并不只是斯坦纳…
Description: 给你一个n * m的方格纸,有一些格子无法被覆盖,然后用2*3的格子覆盖这个方格纸,问你最多能放多少个格子 神级状压 为了弄清楚这道题翻了无数篇解题报告,最后终于搞明白了 用三进制表示每行的状态. 比如对于第i行第j列的格子,如果i-1行,i行的j列都是空的则用0表示,i行的j列不能放用2表示,剩下的(仅i - 1行的j列不能放)用1表示 然后深搜进行转移 干讲没意思,具体看注释,写的很清楚了(AC代码是poj的,稍微改一下输入输出就是洛谷的. #include<ios…