随笔分类 -  基础—构造

摘要:把回文串的相等关系连一下,发现最后要求的是一笔画问题 注意到奇数长度的中间有一个单独没有连线的,所以a数组至多有两个奇数值 如果没有奇数,那么b在最前面放一个1,然后把a[1]~a[m 1]放上去,这样就是错位着一笔画了,然后剩下一个奇数值连成若干2中间一个1的样子; 如果一个奇数,那么把奇数放到最 阅读全文
posted @ 2019-05-24 23:30 lokiii 阅读(201) 评论(0) 推荐(0)
摘要:首先把点权归到边上,设点权较小的一个点是v,也就是(u,v)的边权是log2(dis(u,v)) a[v]+a[v]+a[u] 然后还有一个性质就是这棵树按点权最小点提起来就是一个堆 暴力是n^2的MST,然后考虑优化,按照点权从小到大加入生成树,那么每个点加进去的时候会连到点权比他小的点上 因为l 阅读全文
posted @ 2019-05-11 17:38 lokiii 阅读(233) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-04-25 15:44 lokiii 阅读(2) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-03-31 11:17 lokiii 阅读(5) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-03-22 21:55 lokiii 阅读(9) 评论(0) 推荐(0)
摘要:A题意:给定字符串s,求无重复字符子序列个数(子序列相同位置不同算不同) 在最后加一串a~z表示选了这些就是不选这个字符了,然后答案就是每次选每个字符位置的方案数的积 cpp include include using namespace std; const int N=100005,mod=1e 阅读全文
posted @ 2019-03-17 22:01 lokiii 阅读(220) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-03-07 18:51 lokiii 阅读(9) 评论(0) 推荐(0)
摘要:C: 枚举中间点,计算两边点差值,把个数乘起来即可 cpp include include include using namespace std; const int N=200005; long long n,k,ans; int main() { scanf("%lld%lld",&n,&k) 阅读全文
posted @ 2018-09-04 20:46 lokiii 阅读(168) 评论(0) 推荐(0)
摘要:神仙构造,做不来做不来 详见:http://vfleaking.blog.163.com/blog/static/174807634201329104716122/ cpp include include include include using namespace std; const int 阅读全文
posted @ 2018-08-20 20:25 lokiii 阅读(362) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-05-08 19:09 lokiii 阅读(4) 评论(0) 推荐(0)