上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 31 下一页
摘要: 一傻逼题调了两天。。 n<=30 * m<=30的地图,0表示可以放平台,1表示本来有平台,2表示不能走,3起点4终点,走路方式为象棋的日字,求:从起点走到终点,至少要放多少平台,以及放平台的方案数,无解-1。 方法一:其实能走直接平台的就可以直接走来走去,也就是算一个联通块。类似于tarjan,先 阅读全文
posted @ 2017-09-21 12:22 Blue233333 阅读(199) 评论(0) 推荐(0) 编辑
摘要: n<=50000组数Ai,Bi,Ai>=Bi,最多K<=n个组选Bi,其他组选Ai,求最多能选中几组数使选数总和不超过M<=1e14。 一开始,肯定是在Bi里面选K个最小的,然后M有剩的再来调整。如何调整呢?现在我有两个选择:在没选的数里面选个最小的Aj,否则在选的K个最小Bi的里面,把某个Bi换成 阅读全文
posted @ 2017-09-19 21:41 Blue233333 阅读(306) 评论(0) 推荐(0) 编辑
摘要: n<=400个东西,每个东西有高度<=100,这种东西在堆放过程中不得超过的最大高度<=40000,以及每个东西的个数<=10,求最高能堆多高。 算了下背包复杂度不太对然后开了bitset。。 1 #include<stdio.h> 2 #include<string.h> 3 #include<s 阅读全文
posted @ 2017-09-19 19:14 Blue233333 阅读(486) 评论(0) 推荐(0) 编辑
摘要: n<=50000个区间,求哪个点被覆盖区间数量最多,输出这个数量。 差分模板。。然而数组忘开两倍。。 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<algorithm> 5 #include<queu 阅读全文
posted @ 2017-09-19 18:20 Blue233333 阅读(168) 评论(0) 推荐(0) 编辑
摘要: n<=500 * m<=500的方阵,先沿横坐标切A-1刀,再把每一块切B-1刀,得到A*B块,求这A*B块的数字之和的最小值的最大值。 最小值最大--二分,然后贪心切。每次扫一行,看这一行能不能切成满足二分值的B块,如果能就记可行横条块多一,最后看可行横条块能否到A,如不能则继续扫下一行,把没满足 阅读全文
posted @ 2017-09-19 14:12 Blue233333 阅读(267) 评论(0) 推荐(1) 编辑
摘要: n<=100 * m<=100的地图,每个数绝对值不超过25,从1,1到n,m,一开始速度v,从数字A走到数字B速度会变成v*2^(A-B),求到终点最短时间。 可以发现,相同的数字出发的速度是一样的,和(1,1)位置的数的差做2的指数再乘v,而一个点只有四条边,跑个最短路即可。 然后n,m打反调了 阅读全文
posted @ 2017-09-19 13:41 Blue233333 阅读(252) 评论(0) 推荐(0) 编辑
摘要: n<=200个点m<=40000条边无向图,求 t次走不经过同条边的路径从1到n的经过的边的最大值 的最小值。 最大值最小--二分,t次不重边路径--边权1的最大流。 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #i 阅读全文
posted @ 2017-09-18 13:55 Blue233333 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 给两个长度不超过50000的串,A串可每次截连续一段复制出来,求最少复制几次能得到B串。 方法一:SAM。不会。 嗯好会了。 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<stdlib.h> 5 / 阅读全文
posted @ 2017-09-18 07:30 Blue233333 阅读(315) 评论(0) 推荐(0) 编辑
摘要: n<=1000000个数,每个数的选择范围在Li到Ri<=1000000000之间,求最长能得到多长的连续不下降序列。 首先可以暴力,f[i][j]表示前i个数,最后一个数取j,然后瞎转移就好了,显然过不了。 仔细一想,转移过来的状态只有几个,用{x,y}表示一个路径,最后一个数为x,答案为y。x越 阅读全文
posted @ 2017-09-17 20:59 Blue233333 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 最短路模板。选迪杰。 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<algorithm> 5 #include<queue> 6 //#include<iostream> 7 using namesp 阅读全文
posted @ 2017-09-14 21:12 Blue233333 阅读(234) 评论(0) 推荐(0) 编辑
摘要: n<=10000天每天Ci块生产一东西,S块保存一天,每天要交Yi件东西,求最少花多少钱。 这个我都不知道归哪类了。。 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<algorithm> 5 //#i 阅读全文
posted @ 2017-09-14 19:51 Blue233333 阅读(224) 评论(0) 推荐(0) 编辑
摘要: n<=200个点m<=1500条无向带权边的图,每个点有人和容量,人可以移动,代价为所有人走过的边的权和,求使所有点人不超过容量的最小代价。 方法一:费用流。 错误!答案与边权不成比例。 方法二:二分一个答案,然后根据floyd求出的最短路看每个点在二分的答案下能去到哪些点,跑最大流检查是否合法。 阅读全文
posted @ 2017-09-14 19:10 Blue233333 阅读(236) 评论(0) 推荐(0) 编辑
摘要: n<=300000个点的树,每个点有个人于第Ti秒观测,有m<=300000个人于时间0开始从Sj跑到Tj,速度1个点每秒,输出每个点上的人观察到的跑步的人的数量。 前25分:直接模拟每条路径,先s跑到lca再跑到t,边跑边记时间,如果经过某个点时时间刚好一样就该点答案++。 Si等于1的20分:观 阅读全文
posted @ 2017-09-14 16:11 Blue233333 阅读(549) 评论(0) 推荐(1) 编辑
摘要: n<=50 * m<=50的地图,每块地‘*’表示一定要被填上,‘.’表示一定不能填上,用1*l或l*1,l自定,的板填起来,求最少几块板。 如果是做过那种“一炮打一列或一行,求几炮把地图上的点打掉”的二分图经典题,那就可以类比了。不过这里的行和列是基于联通块的,所以预处理出行联通块和列联通块并编号 阅读全文
posted @ 2017-09-13 14:00 Blue233333 阅读(197) 评论(0) 推荐(0) 编辑
摘要: n<=100000个数,求划分为若干和不小于0的区间的方案数%1000000009。 注意模数啊啊啊。。f(i)--前i个数方案数, n2过不了。不过上面那个东西就是找满足sum(i)>=sum(j)的f,随便线段树合并或者平衡树想必都可以写啦 然而splay写炸了。。求和最后一步旋转转错了。。 1 阅读全文
posted @ 2017-09-13 07:15 Blue233333 阅读(173) 评论(0) 推荐(0) 编辑
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 31 下一页