U68464 滑稽树上滑稽果(guo) 题目描述 小小迪有 n 个约会对象,每个对象有一个约会时长 p[i],小小迪 想尽可能多的去完成他的约会(假设小小迪可以瞬移),每个对象还有 一个忍耐时间 q[i],如果小小迪没有在这个时间前去赴约并完成约 会(<=q[i]),那么她就会离开.你能帮帮他嘛? 输入输出格式 输入格式: 第一行 1 个数字 n 含义如题. 接下来 n 行,一行两个数字 p[i],q[i]含义如题 输出格式: 一行一个数字表示小小迪最多能见多少个约会对象.. 输入输出样例 输入…
一个显然的结论是最终树的形态必然是一条链.具体证明只要考虑选定树上的某一条链,然后把其他部分全部接在它后面,这样答案一定不会变劣. 那么,一开始的想法是考虑每一位的最后出现位置,但这并不容易实现.注意到最终序列是单调递减的.我们在统计答案之前,把公共位先统计掉,即始终都是1的位.这样,剩下的位的最终结果都是0.这样,我们就避免了在统计时忽略某些数.那么,我们记dp[i]表示当前的结果为i的最小费用.我们在转移时枚举下一个数字是什么.这里无需担心数字的重复放置,因为它并不能让当前的数字发生变化.那…
题目 低智选手果然刷不动uoj 首先考虑一下构造一棵树显然是骗你玩的,按位与这个东西越做越小,挂到链的最下面显然不会劣于挂到之前的某一个点下面,所以我们只需要求一个排列使得答案最小就好了 设\(A=\max(a_i)\),发现最优答案不可能要劣于反复对一个数取\(\rm and\)的答案,我们就有了一个\(O(nA)\)的暴力,设\(dp_i\)表示当前的\(\rm and\)和为\(i\),把这个\(i\)变成\(0\)的最小代价 但是有可能最后的\(\rm and\)和也不是\(0\),于是…
原文链接www.cnblogs.com/zhouzhendong/p/UOJ370.html 题解 首先易知答案肯定是一条链,因为挂在链的最下面肯定比挂在其他节点上赚. 问题被转化成了从一个集合中不断选数加入到当前序列尾端,使得序列的所有前缀 AND 之和最小. 我们发现,假如加入一个数后可以使序列的 AND 值变小,那么必然不会去加一个使 AND 值不变的. 假设 $v = a_1\ {\rm and} \ a_2 \ {\rm and}\ \cdots \ {\rm and}\ a_n$,先…
$n \leq 1e5$个点,每个点有个权值$a_i \leq 2e5$.现将点连成树,每个点$i$的链接代价为$a_i \ \ and \ \ i父亲的代价$,这里的$and$是二进制按位与,求最小总代价. 日常被坑... 首先肯定是要把这些点连成一条链,尽量使得代价andand就and成0了.然后呢... 方法一:贪心,从小到大排.错误! 5 56499 113007 129845 126701 56282 一组错误数据. 方法二:这个想法还是可以有的,俗话说,贪心不成就DP.看一下那些二进…
题目分析: 答案肯定是链,否则可以把枝干放到主干. 去除一直存在的位,这样0位占满时就会结束. 用$f[S]$表示0位填埋情况,每次转移是它的一个子集,我们考虑可否转移. 再用$g[S]$存储转移是否合法,用滑稽果填充$g$数组.不一定要完全满足条件,因为有其它方案更优,无影响. 代码: #include<bits/stdc++.h> using namespace std; #define RI register ; ,maxx; ; <<)-,res=; <<];…
链接:https://ac.nowcoder.com/acm/contest/992/I来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述   n个不同的滑稽果中,每个滑稽果可取可不取,从所有方案数中选取一种,求选取的方案中滑稽果个数不超过m的概率.(对109+7取模)输入描述:第一行一个正整数T( T <= 10^5 )随后T行每行两个整数n,m ( 0 < m <= n…
链接:https://ac.nowcoder.com/acm/contest/925/I来源:牛客网 题目描述 n个不同的滑稽果中,每个滑稽果可取可不取,从所有方案数中选取一种,求选取的方案中滑稽果个数不超过m的概率.(对109+7取模) 输入描述: 第一行一个正整数T( T <= 10^5 ) 随后T行每行两个整数n,m ( 0 < m <= n <= 10^5 ) 输出描述: T行,每行一个整数表示答案. 示例1 输入 复制 2 5 2 5 1 输出 复制 500000004…
题解: 首先很显然的是这是一条链(特殊数据说是链是故意让人迷茫的??) 然后 自己就开始yy 觉得每一次是加入一个使得当前值最小的数 然而这tm又是特殊数据?? 那就写一波发现是错的 考虑一下特殊数据的1e5 我们会发现每一次and一下减少至少一个1(或者从此之后保持不变) 这样我们可以枚举这一次的最高位 在剩余的数中寻找是否有这一位为0的 递归下去就可以了 时间是nloga的 再考虑一般情况 显然我们可以设f[i][s]表示前i个,状态为s 转移就是枚举ai,有一个小问题就是 ai会被重复用…
题意:给出一个\(n\)个结点的联通无向图,每条边都有边权.令删去一条边的费用为这条边的边权.求最小的费用以删去某些边使得结点\(1\)至结点\(n\)有且只有一条路径. \(n \leq 15\) 不难想象出,删去边后所得的图形中,在\(1\)到\(n\)的路径上的每一条边都是桥.换言之,每一条边都连接两个边双联通分量. \(n \leq 15\)的数据范围显然与状压dp有关,于是我们考虑枚举下一个边双联通分量来完成dp转移,以不断铺设从\(1\)到\(n\)的路径. 令dp状态为dp[S,c…