[HNOI 2013]数列】的更多相关文章

Description 题库链接 给你四个数 \(N,K,M,P\) ,让你生成一段长度为 \(K\) 严格单调递增序列,并且满足: 第一位可以为任意元素: 相邻两位的差值不超过 \(M\) : 序列中元素大小不超过 \(N\) . 求满足上述要求不同的生成序列有多少个,对 \(P\) 取模. \(1\leq N\leq 10^{18},1\leq K,M,P\leq 10^9\) Solution 其实容易发现,我们可以生成长度为 \(K\) 以增量为元素的序列 \(A\) . 等价的变成了:…
[HNOI 2013]切糕 第三题:切糕(程序文件名:cake.exe)100 分,运行时限:5s 经过千辛万苦小A 得到了一块切糕,切糕的形状是长方体,小A 打算拦腰将切糕切成两半分给小B.出于美观考虑,小A 希望切面能尽量光滑且和谐.于是她找到你,希望你能帮她找出最好的切割方案. 出于简便考虑,我们将切糕视作一个长P.宽Q.高R 的长方体点阵.我们将位于第z层中第x 行.第y 列上(1≤x≤P, 1≤y≤Q, 1≤z≤R)的点称为(x,y,z),它有一个非负的不和谐值v(x,y,z).一个合…
COGS 2398. [HNOI 2013]切糕 http://www.cogs.pro/cogs/problem/problem.php?pid=2398 ★★★☆   输入文件:nutcake.in   输出文件:nutcake.out   简单对比时间限制:5 s   内存限制:512 MB [HNOI 2013]切糕 第三题:切糕(程序文件名:cake.exe)100 分,运行时限:5s 经过千辛万苦小A 得到了一块切糕,切糕的形状是长方体,小A 打算拦腰将切糕切成两半分给小B.出于美观…
题目大意 切糕是 (p times q times r) 的长方体,每个点有一个违和感 (v_{x, y, z}).先要水平切开切糕(即对于每个纵轴,切面与其有且只有一个交点),要求水平上相邻两点的切面高度差小于等于 (D),求切面违和感和的最小值. (1 leqslant p, ; q, ; r leqslant 40) (0 leqslant v leqslant 1,000) 题目链接 BZOJ 3144 CodeVS 2997 题解 最小割. 用边连接相邻两个高度的的点,边 ((x, y…
题目链接 戳我 \(Solution\) 这道题貌似并不难的样子\(QAQ\) 我们发现这个因为有首项的关系所以有点不太好弄.所以我们要将这个首项对答案的影响给去掉. 我们可以构建一个差分数组,我们令他等于\(a[1],a[2]...a[k-1]\) 则一个差分数组对答案的贡献为: \[\sum_{i=1}^{k-1}n-a[i]\] 然后我们一共有\(m^(k-1)\)个这样的查分数组,所以总贡献为: \[\sum_{j=1}^{m^{k-1}}\sum_{i=1}^{k-1}n-a[j][i…
感觉此题难啊,数学还是太渣了,看了半天的题解才算明白了点儿. 题目大意 给一个长度为n且仅由1和-1组成的序列ai, i = 1, 2, ..., n,每个位置都有另一个值vi,要求用某种方案将序列划分为m(0 < m < n)个非空连续子序列,使得所有子序列中和的最大绝对值最小,并且在所有满足上述条件的方案中划分位置的v[i]序列字典序最小. 猜想及证明 记 \(S_i = \sum_{j = 1}^{i}{a_j}\) 记题目中说的和的最大绝对值的最小值为 有如下几个结论 若并且,则 若并…
题目大意 一个a * b * c(a * b * c <= 5000)大小的长方体中有一些点需要被覆盖,每次可以选择任意大小的长方体,覆盖其中的点,产生的代价为这个长方体长宽高中最小的那个的长度,求最小代价. 二维情形 对二维的情形这就是经典的最小割问题了,可以建立二分图用二分图最大匹配算法解决.具体建图方法是将行和列分为两个集合,如果一个点需要被覆盖,就将它所在的行和列连接起来.这种解法的正确性是显然的:由最大流-最小割定理,最大流就等于最小割,而将行和列连起来后,为保证源与汇分开必须将源到行…
Description 题库链接 一个无向连通图,顶点从 \(1\) 编号到 \(N\) ,边从 \(1\) 编号到 \(M\) . 小Z在该图上进行随机游走,初始时小Z在 \(1\) 号顶点,每一步小Z以相等的概率随机选择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数.当小Z到达 \(N\) 号顶点时游走结束,总分为所有获得的分数之和. 现在,请你对这 \(M\) 条边进行编号,使得小Z获得的总分的期望值最小. \(1\leq N\leq 500\) Solution…
Description 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛.此次联 赛共N支球队参加,比赛规则如下: (1) 每两支球队之间踢一场比赛. (2) 若平局,两支球队各得1分. (3) 否则胜利的球队得3分,败者不得分. 尽管非常遗憾没有观赏到精彩的比赛,但沫沫通过新闻知道了每只球队的最后总得分, 然后聪明的她想计算出有多少种可能的比赛过程. 譬如有3支球队,每支球队最后均积3分,那么有两种可能的情况: 可能性1    可能性2 球队  A  B  C  得分   …
题面 除了不洗牌以外,每种洗牌方式的每个循环里的颜色必须一样,然后大力背包一下就好了.最后记得把不洗牌的方案也算进去 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; int n,m,p,c1,c2,c3,ans; ][N][N][N],noww,last; int trs[N][N],vec[N][N],siz[N],vis[N]; void exGCD(int…