摘要: 题目大意: 有n个数,要将他们分成若干段,每一段的cost定义为: cost=r-l+ΣCk (k∈[r,l]) 该段的最终花费是:(cost-L)^2; 给出L,n,C(1~n),总共的最小花费。 分析: dp方程极容易想出来: f[i]=max(f[j]+(sum[i]-sum[j]+i-j-1 阅读全文
posted @ 2018-05-13 11:41 *Miracle* 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 你初始时有∞ 元钱,并且每天持有的股票不超过 Maxp 。 有 T 天,你知道每一天的买入价格( AP[i] ),卖出价格( Bp[i] ), 买入数量限制( AS[i] ),卖出数量限制( BS[i] )。 并且两次交易之间必须间隔 W 天。 现在问你 T 天结束后,最大收益是多少。 阅读全文
posted @ 2018-05-13 11:39 *Miracle* 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给出N个正整数,AB两个人轮流取数,A先取。每次可以取任意多个数,直到N个数都被取走。每次获得的得分为取的数中的最小值,A和B的策略都是尽可能使得自己的得分减去对手的得分更大。在这样的情况下,最终A的得分减去B的得分为多少。 分析: 我们身临其境地考虑一下,先手肯定是要从大到小取数,并且 阅读全文
posted @ 2018-05-13 11:38 *Miracle* 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 分析: 方法一:递推 已经处理了f[0]~f[n-1],考虑f[n],新来了一个数n,这个数要放错位,有n-1种情况。其他的数的放置每次都有f[n-1]种情况,被n占用位置的数k,将k放在n位置, 阅读全文
posted @ 2018-05-13 11:37 *Miracle* 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给定n和一串数字,这串数字是一个1~n的排列。现在要用两个栈给这些数字排序。首先先判断是否有解,有解的话再输出字典序最小的方案: 入栈1,输出a,出栈1,输出b 入栈2,输出c,出栈2,输出d 分析: 首先必然要先考虑是否有解。对于没有解的情况,必然是当到了某一个数x0时,栈1,栈2队首 阅读全文
posted @ 2018-05-13 11:36 *Miracle* 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 题意: 将n(n<=10^18)的各位数字重新排列(不允许有前导零) 求 可以构造几个mod m等于0的数字 分析: 状态压缩 状态: 设f[s][k]表示对于选择数字组合的s来说,%m等于k的排列数量。 第一维大小:2^18 第二维大小:100 阶段: 对于s的选择的枚举。s直接从1枚举到1<<( 阅读全文
posted @ 2018-05-13 11:34 *Miracle* 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 题目大意 给定一个 n 位的十进制数,可以在数字之间加 k 个' + ',得到一个式子,求每种方案的这个式子的和 分析: 容易想到将式子的和转化为每个数字的贡献值之和。 设数组a为:a(n-1),a(n-2),...,a(0); 对于每一个位置,我们可以以其右面第一个放加号的位置为界,确定它的数位和 阅读全文
posted @ 2018-05-13 11:33 *Miracle* 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有n盏灯,(0<=n<=1000),有m盏已经点亮,每次只能点亮与已经点亮的灯相邻的灯,求总方案数,答案对1e9+7取模 第一行:两个整数n,m表示灯的总数和已点亮的灯的数目 第二行m个数,表示已点亮的灯的编号 分析: 我们可以借助已经被点亮的灯作为分界点,找到若干个长度不为0的开区间。 阅读全文
posted @ 2018-05-13 11:30 *Miracle* 阅读(275) 评论(0) 推荐(1) 编辑
摘要: 题目大意: 给一个n边形,求出在所有任意三条对角线都不相交于同一个点的情况下,交点个数是多少。(即交点个数最多是多少) 分析: 题目很水,但是公式不好想。 由于任意三条对角线不会交于一点,所以所有的交点都是两条对角线相交而成的。这两条对角线来自四个点(可以当做求四边形的个数问题)。所以每有任意的四个 阅读全文
posted @ 2018-05-13 11:27 *Miracle* 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给出k、n个数选择一种字典序最大的排列,使得对于任意的i,di>=d[i/k](下取整 下同) 分析: 很容易想到的是建树,将i的父亲设为[i/k],之后建有向边。 60分贪心: 将原先的a数组升序排列,直接根据子树大小分配排位。pai[i]=(同层级剩余的)-(子树大小)+1; 然而对 阅读全文
posted @ 2018-05-13 11:26 *Miracle* 阅读(148) 评论(0) 推荐(0) 编辑