上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 37 下一页
该文被密码保护。 阅读全文
posted @ 2019-03-28 19:15 Aragaki 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 结论:在答案集合中的数其质因数最多有两个 且有两个的话一个>n1/2一个<n1/2 这样我们就可以把所有质数筛出来 弄成二分图 左边是<n1/2右边是>n1/2的 所以先把单个质因子的答案全部加上 再考虑两个质因子的一个数会不会比一个质因子的两个数更优 如果更优 则建边 再求最大流 注意最后答案要加 阅读全文
posted @ 2019-03-28 15:23 Aragaki 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 待补 阅读全文
posted @ 2019-03-27 19:36 Aragaki 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题意经过一番转换变成了 让你在一个二分图上删一条边使得二分图的最大独立集大小至少+1 二分图的最大独立集=点数-最小点覆盖(最大匹配) 点数是固定不变的 所以我们要减少最大匹配数 则删掉的哪一条边必须是二分图匹配里必须的一条边 做法:先Dinic跑一次 然后Tarjan缩点 找到图中端点不为S/T且 阅读全文
posted @ 2019-03-27 10:36 Aragaki 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 给你一颗大小为n(3000)的树,树上每个点有点权(100000),再给你一个数m(100000) i为1~m,问树中是否存在一个子图,使得权值为i. 每次solve到一个节点 用一个bitset维护所有经过它的链的取值(calc前要先初始化当前节点的bitset) 复杂度为nlognm/64 阅读全文
posted @ 2019-03-24 21:25 Aragaki 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 易知2-9为先手胜 继续递推下去 10-18 后手胜 再推发现19-162先手胜 即发现有9(9) 18(2*9) 162(9*2*9)..... 阅读全文
posted @ 2019-03-22 15:38 Aragaki 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 纯暴力时间与空间都需要n^2 但是有多余的删除操作 可以利用树链剖分的思想优化 思路如下: 对于每个节点 1.dfs函数统计所有轻儿子的答案2.dfs函数统计重儿子的答案 同时用另一个函数遍历除重儿子那颗子树之外的所有子树 得到当前节点的答案3.如果当前节点是轻儿子的话 消除对目标数组的影响 是重儿 阅读全文
posted @ 2019-03-21 17:14 Aragaki 阅读(204) 评论(0) 推荐(0) 编辑
摘要: D coun[i]表示[i]这个数右边有多少个数j能和他组成题中所给的二元组(i,j) 如果一个数的coun[i]=n-i-ans 那么说明他可以与最后一个交换 同时不计算贡献 因为它是向右走的 对左边没有贡献 E 令k[i]的前缀和为c[i] 则题目中的要求Ai+1>=Ai+ki两边同时减去c[i 阅读全文
posted @ 2019-03-20 09:46 Aragaki 阅读(216) 评论(0) 推荐(0) 编辑
摘要: //virtual tree /*Huyyt*/ #include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define TS cout<<"!!!"<<endl using namespace std; typedef long 阅读全文
posted @ 2019-03-18 13:40 Aragaki 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 树上差分O(n)的做法 考虑每种颜色对每个点的贡献,如果对于每种颜色我们把当前颜色的点删除,那么原来的树就会分成几个子树,对于一个点,当前颜色在和他同子树的点的点对路径上是不会出现的.考虑到有多种颜色,最后一个点的答案即为n * 颜色数 - 每种颜色节点时所在小树的size 阅读全文
posted @ 2019-03-12 21:14 Aragaki 阅读(136) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 37 下一页