摘要:
A:非常裸的dp。 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int read() 阅读全文
posted @ 2018-10-02 18:25
Gloid
阅读(216)
评论(0)
推荐(0)
摘要:
考虑固定左端点,求出该情况下能获得的最大值。于是每次可以在某数第一次出现的位置加上其价值,第二次出现的位置减掉其价值,查询前缀最大值就可以了。每次移动左端点在线段树上更新即可。 阅读全文
posted @ 2018-10-02 16:13
Gloid
阅读(139)
评论(0)
推荐(0)
摘要:
显然可以dp:设f[i]为前i个人最多能分多少组,则f[i]=max{f[j]}+1 (cmax<=i-j<=dmin)。 容易发现d的限制是一段连续区间,二分或者随便怎么搞都行。c则有点麻烦,考虑分治。找到区间中c最大的位置,处理左边区间再向右边(包括该位置)转移,最后处理右边区间(当然就是cdq 阅读全文
posted @ 2018-10-02 14:55
Gloid
阅读(450)
评论(0)
推荐(0)
摘要:
A:辣鸡题。搜索怎么这么难啊。不会啊。 B:裸的高斯消元,看起来可以优化到n2。 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> u 阅读全文
posted @ 2018-10-02 09:39
Gloid
阅读(164)
评论(0)
推荐(0)

浙公网安备 33010602011771号