05 2015 档案
摘要:打表,发现规律是存在一定次数(较小)后,会出现a=(a*a)%p。可以明显地发现本题与线段树有关。设置标记flag,记录本段内的数是否均已a=a*a%p。若是,则不需更新,否则更新有叶子结点,再pushup。#include #include #include #include #define LL...
阅读全文
摘要:这道题其实是求K条最长的不重叠的链。贪心算法+DFS即可求。深度优先搜索时,返回当前子树的最长链,使用优先队列保存其他孩子结点的最长链,即可。求结果时只需从优先队列中取前K个值的和。这相当于暴力删除每条最长的链。#include #include #include #include #include...
阅读全文
摘要:留意到,每一种语言的情况其实是独立的,也就是说,每一种语言的集合的包含的情况都是符合要求的。一种语言在图上可以有32种情况(由数据2知),所以,总的数就是32^nimport java.util.*;import java.math.*;public class Main { static publ...
阅读全文
摘要:这道题的概率可以单独考虑每个格子对期望的贡献值。因为其实每个格子是否被选都可以认为是独立的,单独一个格子贡献的期望为1*(该格子K次被选的概率),所以答案其实就是每个格子K次被选中的概率之和。#include #include #include #include #define LL long lo...
阅读全文
摘要:E. Mike and Foamtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputMike is a bartender at Rico's ba...
阅读全文
摘要:C. Mike and Frogtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputMike has a frog and a flower. His...
阅读全文
摘要:D. Mike and Feettime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputMike is the president of country ...
阅读全文
摘要:考虑这么一个 14 位数 02565413989732 ,如图所示,它的数字先逐渐变大,然后开始变小,再变大,再变小,再变大,再变小。我们就说,它一共包含了 6 个单调区间。我们的问题就是:一个 n 位数平均有多少个单调区间?为了避免歧义,我们假设任意两位相邻的数字都不相同,因而像 777655...
阅读全文
摘要:第一题,不道是什么鬼。。第二题猜数字。很多用主席树,我不会,啊啊啊~~~~记得这题有出过吧,想了一发线段树的,把所有的数排序,同时把询问K排序,做两发遍历,首先从小到大遍历所有的数,单点更新比K小的线段树的点,维护最大值,遇到>=K时则查询一发。再从大到小遍历,更新比k大的,维护最小值,遇#incl...
阅读全文
摘要:这次打得较差,差点就绿了。。。B题,这B题竟然WA了,再看看就发现一个很严重的错误。。--!#include #include #include #include using namespace std;int num[3050];int main(){ int n; while(sca...
阅读全文
摘要:公式啊,公式啊。。。。TAT杭电题解。。。。。高中生。。。。。。对于卢卡斯定理,由于p较大,所以不可能按一般的来算,n,m较小,循处理出n!的逆元对p的,然后可以按照卢卡斯定理,降低,对后面的就可以直接运用组合数公式来求了。#include#include#include#include#inclu...
阅读全文
摘要:求逆序的个数。首先处理出对n个数它所有排列的逆序的个数。然后,按位枚举,当枚举的数少于当前位,逆序数的个数就是前面确定的数对于后面数的逆序总数+后面k个数的排列的逆序总数。1Y。#include#include#include#include#include#include#include#incl...
阅读全文
摘要:此题不难,不等式很空易就列出来了,只是要把它转化成减法形式。。卡在这了。。。其实取一个log对数就好了。。。要记住这个技巧。用基于dfs的spfa。。#include#include#include#include#includeusing namespace std;const int N=810...
阅读全文
摘要:这道题其实不需要考虑具体数值,但可以肯定的是,相连边的两端点必定有一正一负,至于谁正谁负,并不重要,这是可以思考的,很明显的一个二分图性质,如果不满足此条件,是不可能满足题目第二个条件的。所以首先对题目二分染色。对于T,随意指定一个值即可。注意题目第二个条件为充要条件,所以要考虑没有相连的两点。uv...
阅读全文
摘要:五道水题,但要手快才好。。。我手慢了,E题目都没看完TAT....想了一发,很水,就是一遍Dijk即可,使用优先队列,同时记录由哪条边转移而来#include #include #include #include #include #include #define LL long longusing...
阅读全文
摘要:题目1 : 扑克牌时间限制:2000ms单点时限:1000ms内存限制:256MB描述一副不含王的扑克牌由52张牌组成,由红桃、黑桃、梅花、方块4组牌组成,每组13张不同的面值。现在给定52张牌中的若干张,请计算将它们排成一列,相邻的牌面值不同的方案数。牌的表示方法为XY,其中X为面值,为2、3、4...
阅读全文
摘要:题目1 : 彩色的树时间限制:2000ms单点时限:1000ms内存限制:256MB描述给定一棵n个节点的树,节点编号为1, 2, …, n。树中有n - 1条边,任意两个节点间恰好有一条路径。这是一棵彩色的树,每个节点恰好可以染一种颜色。初始时,所有节点的颜色都为0。现在需要实现两种操作:1. 改...
阅读全文
摘要:三道水题了。题目1 : 2月29日时间限制:2000ms单点时限:1000ms内存限制:256MB描述给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期)。只有闰年有2月29日,满足以下一个条件的年份为闰年:1. 年份能被4整除但不能被100整除2. 年份能被400整除输入第一行为一个...
阅读全文
摘要:POJ 3675 裸的题了。直接上模板就行了。注意的是,求出的是有向面积,有可能是负数。#include #include #include #include #include #include #include #include #include #include #include #includ...
阅读全文
摘要:HDU 1561。这道是树形DP了,所谓依赖背包,就是选A前必须选B,这样的问题。1561很明显是这样的题了。把0点当成ROOT就好,然后选子节点前必须先选根,所以初始化数组每一行为该根点的值。由于多选了0点,所以记得把m++.#include #include #include #include ...
阅读全文
摘要:题目3 : Spring Outing时间限制:20000ms单点时限:1000ms内存限制:256MB描述You class are planning for a spring outing. N people are voting for a destination out of K candi...
阅读全文
摘要:POJ 1973这道题以前做过的。今儿重做一次。由于每个程序员要么做A,要么做B,可以联想到0/1背包(谢谢N巨)。这样,可以设状态dp[i][j]为i个程序员做j个A项目同时,最多可做多少个B项目。枚举最后一个程序员做多少个A项目进行转移(0/1)。dp[i][j]=max{dp[i-1][k]+...
阅读全文