上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页
摘要: 【题解】 找一下两个面积s1,s2的2和3的因子数,把他们除掉,如果s1,s2不相等,就是-1,否则可以用s1,s2的2和3的因子数计算答案。 1 #include<cstdio> 2 #include<algorithm> 3 #define LL long long 4 #define rg r 阅读全文
posted @ 2018-05-22 21:48 Driver_Lao 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 【题解】 在考场上A掉的题。 把美味度排个序,然后按照价格p为权值建立主席树,把每个果汁按照拍好的顺序添加进去。主席树上维护总升数cnt以及总价格sum。对于每个询问,我们二分一个美味值,check的时候去主席树上查找大于等于这个美味值的果汁中购买L升的价格即可。 1 #include<cstdio 阅读全文
posted @ 2018-05-21 17:03 Driver_Lao 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 【题解】 模拟就行,类似进制转换 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #define N 200010 5 #define rg register 6 using namespace std; 7 int n, 阅读全文
posted @ 2018-05-17 19:18 Driver_Lao 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 【题解】 可以发现10的因数除了1和10之外只有2和5了,那么走过的路径上各个数字的2的因数个数之和、5的因数个数之和中较小的一个即是答案。这样的话DP即可。同时需要注意有0的情况,有0的时候有一个答案为1,要和前面求出的答案取较小值。 1 #include<cstdio> 2 #include<a 阅读全文
posted @ 2018-05-17 13:29 Driver_Lao 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 洛谷 3806 1 #include<cstdio> 2 #include<algorithm> 3 #define N 10010 4 #define rg register 5 using namespace std; 6 int n,m,tot,cnt,root,last[N],siz[N], 阅读全文
posted @ 2018-04-26 14:13 Driver_Lao 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 1 #include<cstdio> 2 #include<algorithm> 3 #include<queue> 4 #include<cstring> 5 #define N 1000010 6 #define rg register 7 using namespace std; 8 int 阅读全文
posted @ 2018-04-25 16:15 Driver_Lao 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 洛谷 3376 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #define N 10010 5 #define rg register 6 using namespace std; 7 int n,m,S,T,tot, 阅读全文
posted @ 2018-04-24 09:38 Driver_Lao 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 【题解】 二分图最大匹配的模板题。 1 #include<cstdio> 2 #include<algorithm> 3 #define N 1010 4 #define rg register 5 using namespace std; 6 int n,m,tot,ans,T,last[N],v 阅读全文
posted @ 2018-04-23 21:56 Driver_Lao 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 【题解】 贪心题。设五元组(mx,pos,l,r1,r2)表示最大值为mx,取得最大值的区间右端点为pos,区间左端点为l,区间右端点的可选区间为[r1,r2]. 每次从堆里拎出最大值,然后把这个区间拆了,因为选了[l,pos]这个区间之后就不能再选它了。我们得往堆了丢俩新的五元组(mx',pos' 阅读全文
posted @ 2018-04-23 20:15 Driver_Lao 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 【题解】 GDOI2016 Day2T3 如果给出的数据是一棵树那么皆大欢喜直接点分治就好了,用树状数组维护大于x的数的个数。如果是一棵基环树,我们先断掉环上的一条边,然后跑点分治;再加上经过这条边的方案数,其实就是从断掉的那条边的一个端点开始,把环遍历一遍,更新贡献的方式跟点分治过程中的差不多,具 阅读全文
posted @ 2018-04-23 15:33 Driver_Lao 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 【题解】 既然是一人对应一床,那么显然可以用二分图匹配来做。俩人认识的话,如果其中一个a是在校学生,另一个b不回家,b就可以向a的床连边(a,b当然也可以是同一个人)。 然后如果最大匹配数大于等于需要床的人数,就存在合法方案。 1 #include<cstdio> 2 #include<algori 阅读全文
posted @ 2018-04-22 22:01 Driver_Lao 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 【题解】 其实是个二分图最大匹配的模板题,直接上匈牙利算法就好了。 1 #include<cstdio> 2 #include<algorithm> 3 #define N 1010 4 #define rg register 5 using namespace std; 6 int n,m,E,a 阅读全文
posted @ 2018-04-22 20:22 Driver_Lao 阅读(380) 评论(1) 推荐(0) 编辑
摘要: 【题解】 用线段树维护区间最大值(因为没有修改,St表也可以),然后由于x,y可能是降雨量未知的年份,需要进行分类讨论。 1 #include<cstdio> 2 #include<algorithm> 3 #define rg register 4 #define N 50010 5 #defin 阅读全文
posted @ 2018-04-22 10:48 Driver_Lao 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 【题解】 算是个思维题。。 题目数据范围很大,而是否能组成三角形这种信息也无法用数据结构维护,那怎么办呢? 我们可以发现,如果想要一个数列任意三项不能组成三角形且各项尽量小,这个数列就是一个斐波那契数列。而本题中点权范围为int范围内,我们可以发现在int范围内斐波那契数列只有46项。 那么如果给出 阅读全文
posted @ 2018-04-21 16:51 Driver_Lao 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 【题解】 二分答案。r要设好,不能随便设置为max(s,len),不然check的时候会爆long long 1 #include<cstdio> 2 #include<algorithm> 3 #define rg register 4 #define N 200010 5 #define LL 阅读全文
posted @ 2018-04-21 10:29 Driver_Lao 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 【题意概述】 给你N点M边的无向图(1<=N,M<=200000),一共删n次点, 每次询问删这个点之前是否完全联通。 【题解】 离线处理询问。倒着做就变成了加边加点,判断是否只有一个联通块。加入每个点now的时候先把cnt加1,然后遍历这个点连出去的边,发现to已经加入并且与now不在一个联通块里 阅读全文
posted @ 2018-04-21 09:01 Driver_Lao 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 【题解】 先跑一边最小生成树,记录树上最大的边权,然后对于每只猴子判断其跳跃距离是否大于等于最大边权即可。同时为了避免小数的麻烦,边权保留勾股定理后的平方结果,把猴子的跳跃距离平方一下,因为都是非负数,平方一下不改变大小关系。 1 #include<cstdio> 2 #include<algori 阅读全文
posted @ 2018-04-21 06:48 Driver_Lao 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 【题意概述】 给出一个有左括号和右括号的序列,左边的左括号和右边的右括号可以合并。现在要求你维护这个序列,支持两种操作: 1,翻转某个位置的括号; 2,查询区间[L,R]合并后第k个括号在原序列中的位置,如果k超过区间合并后的括号总数,输出-1. 【题解】 首先我们可以发现,对于一个区间,合并后的结 阅读全文
posted @ 2018-04-20 16:26 Driver_Lao 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 【题解】 套路题。。其实也很好想。。 把id为0的当成id为-1的,然后求前缀和,这样-1和1就可以相互抵消。也就是如果sum[i]=sum[j],那么x[i]-x[j+1]就是一个合法的答案。我们用first[i]记录满足sum[j]=i的j里面a[j+1]的最小值。 1 #include<cst 阅读全文
posted @ 2018-04-19 07:41 Driver_Lao 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 【题意概述】 K(1≤K≤100)只奶牛分散在N(1≤N≤1000)个牧场.现在她们要集中起来进餐.牧场之间有M(1≤M≤10000)条有向路连接,而且不存在起点和终点相同的有向路.她们进餐的地点必须是所有奶牛都可到达的地方.那么,有多少这样的牧场呢? 【题解】 一看题。。 对于每个点,把它能到达的 阅读全文
posted @ 2018-04-18 22:04 Driver_Lao 阅读(229) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页