02 2016 档案
摘要:题意:一个骰子在一个人正方形内,蜜蜂在任意一个位置可以出现,问看到点数的期望。 思路:半平面交+概率期望 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<cstd
阅读全文
摘要:题意:给一张有向图G,求一个结点数最大的结点集,使得该结点中任意两个结点 u 和 v满足:要么 u 可以到达 v, 要么 v 可以到达 u(u 和 v 相互可达也可以)。 分析:”同一个强连通分量中的点要么都选,要么不选。把强连通分量收缩点后得到SCC图,让每个SCC结点的权等于它的结点数,则题目转
阅读全文
摘要:题意:有n个命题,已知其中的m个推导,要证明n个命题全部等价(等价具有传递性),最少还需要做出几次推导。 思路:由已知的推导可以建一张无向图,则问题变成了最少需要增加几条边能使图变成强连通图。找出所有的强连通分量,将每一个连通分量视作一个大节点,则整张图变成了一张DAG。设出度为0的大节点个数为b,
阅读全文
摘要:题意:做蛋糕,给出N个半径,和高的圆柱,要求后面的体积比前面大的可以堆在前一个的上面,求最大的体积和。 思路:首先离散化蛋糕体积,以蛋糕数量建树建树,每个节点维护最大值,也就是假如节点i放在最上层情况下的体积最大值dp[i]。每次查询比蛋糕i小且最大体积的蛋糕,然后更新线段树。注意此题查询的技巧!!
阅读全文
摘要:题意:给你一个长度为n的括号匹配串(不一定恰好匹配),让你在这个串的前面加p串和后面加上q串,使得这个括号串平衡(平衡的含义是对于任意位置的括号前缀和大于等于0,且最后的前缀和为0)。 思路:枚举这个字符串前面p字符串的长度,我们可以使得p字符串的前缀和大于等于字符串s的最小前缀和minx,那么p+
阅读全文
摘要:题意:n个人,在规定时间范围内,找到最多有多少对男女能一起出面。 思路:ans=max(2*min(一天中有多少个人能出面)) 1 #include<iostream> 2 #include<string> 3 #include<algorithm> 4 #include<cstdlib> 5 #i
阅读全文
摘要:水题 1 #include<iostream> 2 #include<string> 3 #include<algorithm> 4 #include<cstdlib> 5 #include<cstdio> 6 #include<set> 7 #include<map> 8 #include<vec
阅读全文
摘要:题意:在墙上贴海报,海报可以互相覆盖,问最后可以看见几张海报思路:直接搞超时+超内存,需要离散化。离散化简单的来说就是只取我们需要的值来 用,比如说区间[1000,2000],[1990,2012] 我们用不到[-∞,999][1001,1989][1991,1999][2001,2011][201
阅读全文
摘要:1 #include<iostream> 2 #include<string> 3 #include<algorithm> 4 #include<cstdlib> 5 #include<cstdio> 6 #include<set> 7 #include<map> 8 #include<vector
阅读全文
摘要:1 #include<iostream> 2 #include<string> 3 #include<algorithm> 4 #include<cstdlib> 5 #include<cstdio> 6 #include<set> 7 #include<map> 8 #include<vector
阅读全文
摘要:水 1 #include<iostream> 2 #include<string> 3 #include<algorithm> 4 #include<cstdlib> 5 #include<cstdio> 6 #include<set> 7 #include<map> 8 #include<vect
阅读全文
摘要:题意:求q次询问的静态区间连续最大和起始位置和终止位置 输出字典序最小的解. 思路:刘汝佳白书 每个节点维护三个值 pre, sub, suf 最大的前缀和, 连续和, 后缀和 然后这个题还要记录解的位置所以还要区间总和sum 1 #include<iostream> 2 #include<stri
阅读全文
摘要:题意:一条大街上住着n个乒乓球爱好者,经常组织比赛切磋技术。每个人都有一个能力值a[i]。每场比赛需要三个人:两名选手,一名裁判。他们有个奇怪的约定,裁判必须住在两名选手之间,而裁判的能力值也必须在两名选手之间。问一共能组织多少种比赛。分析:考虑第i个人,假设a1到ai-1中有ci个比ai小,那么就
阅读全文
摘要:思路:dp[i]代表第i个拦截系统最后拦截的高度及最低值。贪心判断接下来那个导弹的高度与离它最近的之前所有拦截系统中的最近,不符合则开一个系统。 1 #include<iostream> 2 #include<string> 3 #include<algorithm> 4 #include<cstd
阅读全文
摘要:题意:知道一个人买票花的时间和和前面那个人一起买票花的时间,问最少花多少时间可以把票卖完. 给出T,表示有T组样例 给出n,表示有n个人买票. 给出n个数表示这个人单独买票会花的时间. 给出n-1个数,表示这个人和前面那个人一起买票会花的时间. 思路:dp[i]=min(dp[i-1]+a[i],d
阅读全文
摘要:题意:求表达式中最大的值。 long double 128位 有效数字18-19 范围正负1.2*10^4932 注意取对数! 1 #include<iostream> 2 #include<string> 3 #include<algorithm> 4 #include<cstdlib> 5 #i
阅读全文
摘要:题意:输入个n和质数p,n个区间,每个区间可以等概率的任选一个数,如果选的这个区间和它下个区间选的数的积是p的倍数的话(n的下个是1),就挣2000,问挣的期望 思路:整体的期望可以分成每对之间的期望。期望=概率乘2000. 得到钱概率=1-得不到钱的概率 1 #include<iostream>
阅读全文
摘要:对角线 x1+y1=x2+y2 或者x1-y1=x2-y2 1 #include<iostream> 2 #include<string> 3 #include<algorithm> 4 #include<cstdlib> 5 #include<cstdio> 6 #include<set> 7 #
阅读全文
摘要:水 最大偶数和 1 #include<iostream> 2 #include<string> 3 #include<algorithm> 4 #include<cstdlib> 5 #include<cstdio> 6 #include<set> 7 #include<map> 8 #includ
阅读全文