摘要:
bzoj3048[Usaco2013 Jan]Cow Lineup 题意: 给你一个序列,你最多可以删去k类数(数列中相同的数字被称为一类数)。求通过删数得到的该序列中的最长完美序列(满足所有的数字相等的连续子序列被叫做完美序列)。序列大小≤100000 题解: 先离散化,然后维护一个单调队列,如果 阅读全文
摘要:
bzoj1112[POI2008]砖块Klo 题意: N柱砖,希望有连续K柱的高度是一样的. 你可以选择以下两个动作 1:丢掉某柱砖的一块砖。给某柱加上一块砖,现在希望用最小次数的动作完成任务。N≤100000 题解: 设一个区间长度为k,其中位数为a,比a小的元素个数为b,和为c;比a大的元素个数 阅读全文
摘要:
bzoj4517[Sdoi2016]排列计数 题意: 求有多少种长度为n的序列 A,满足1~n在序列中各出现了一次,且序列恰好有m个数是稳定的(若第i个数A[i]的值为i,则称i是稳定的)。共T组数据,方案数模10^9+7。T=500000,n≤1000000,m≤1000000。 题解: 显然结果 阅读全文
摘要:
bzoj4236JOIOJI 题意: 给一个只由JOI三个字母组成的串,求最长的一个子串使其中JOI三个字母出现次数相等。串长度≤200000 题解: 有点像bzoj4384,因此推算的过程是差不多的,但还是有不同因为本题要求的是出现次数相等,而那题要求的是不等: cnt[1][i]-cnt[1][ 阅读全文
摘要:
bzoj1002[FJOI2007]轮状病毒 题意: N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不同的3轮状病毒,如下图所示 现给定n,计算有多少个不同的n轮状病毒。N<=100 题解: 公式:f[i]=f[i-1]*3-f[i-2]+2,i≥ 阅读全文
摘要:
bzoj4563[Haoi2016]放棋子 题意: 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列。要求你放N枚棋子(障碍的位置不能放棋子),也满足每行只有一枚棋子,每列只有一枚棋子的限制,求有多少种方案。N≤200。 题解: 发现在障碍在什么位置和答案 阅读全文
摘要:
bzoj2251[2010Beijing Wc]外星联络 题意: 找一个01串中出现次数大于1的字串。01串长度≤3000 题解: 有个结论:一个串的所有后缀的所有前缀对应了这个串的字串。所以将这个串的所有后缀插入trie,累计经过trie上每个节点的经过次数,找到大于1的输出即可。 代码: 1 # 阅读全文
摘要:
bzoj3713[PA2014]Iloczyn 题意: 判断给定的数字能否被表示成两个斐波那契数的乘积。n≤10^9 题解: 开始在想有没有什么根号级算法,后来想知道斐波那契数列10000位有多大,结果爆long long了……实际上斐波那契数列到45位就大于10^9了。所以直接枚举即可。 代码: 阅读全文
摘要:
bzoj1901 Zju2112 Dynamic Rankings 题意: 维护数据结构,支持区间第k大和单点修改。序列大小,操作数≤10000 题解: 构造一个树状数组,树状数组中的节点用主席树维护。一开始先插入序列中的节点,然后对于修改,就是将经过的树状数组上的主席树删除旧值,再插入新值;对于查 阅读全文
摘要:
bzoj3613[Heoi2014]南园满地堆轻絮 题意: 给一个序列,将其修改为不下降序列,要求修改幅度最大的幅度尽量小。序列大小≤5000000 题解: 最优策略是将其全部修改为同个值,且这个值是序列中两个相差最大的元素的差值/2。故输出这个值即可。 代码: 20160812 阅读全文