2016年10月30日
摘要: 主要有两种做法: 乱搞和dp dp相对来说考虑的特殊情况少一些 最重要的一点就是: 为了避免类似:(1 2 2 2 1 )的情况, 我们需要一个q记录“前”一个数 p记录当前数 判断时 p > ( < ) q & & p > ( a [ i + 1 ] )即可 1 #include<cstdio> 阅读全文
posted @ 2016-10-30 20:41 Absolutezero 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 两列排序后将编号一一对应 归并排序求逆序对 (每一次交换就去掉一个逆序对) 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define ll long long 5 using namespace std; 6 con 阅读全文
posted @ 2016-10-30 20:09 Absolutezero 阅读(228) 评论(0) 推荐(1) 编辑
摘要: 不考虑insert 则NOI的个数可通过O(n)递推得到: sum_NOI<--sum_NO<--sum_N 考虑insert: 首先预处理对于每个N,其后面的O和I各有多少个 N:显然插入在最前面 I:最后面 O:枚举断点,前面的N*后面的I,取max 1 #include<cstdio> 2 # 阅读全文
posted @ 2016-10-30 11:16 Absolutezero 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 这是一道dp…… f [ i ] [ j ] 表示前 i 组,总和为 j 时的方案数 f [ i ] [ j + a [ i ] [ k ] ] <-- f [ i - 1 ] [ j ] 1 #include<cstdio> 2 #include<cstring> 3 #include<algor 阅读全文
posted @ 2016-10-30 10:21 Absolutezero 阅读(200) 评论(0) 推荐(0) 编辑