黑科技
文章平均质量分 58
Cold_Chair
我XXX就是饿死,死外边,从这里跳下去,也不会再做你九条可怜一个测试点
展开
-
BZOJ4999 JZOJ5112【usaco2017_Mar Platinum】Switch Grass
给出一个联通无向图,没有重边,每条边有一个正权值,每个点有一个颜色,每次修改一个点的颜色,求新图中连接两个颜色不同的点的路径的最短距离。原创 2017-05-26 19:13:59 · 1142 阅读 · 0 评论 -
各种有用的东西、黑科技、技巧
转自alan_cty的blog1转载 2016-09-15 16:24:22 · 694 阅读 · 0 评论 -
c++map、set和pair使用小技巧
最近遇到一道题(后一篇博客会说),不会用map和set的啊,只得去学一下,顺便带了pair,在这里总结。如果有想要学详细的,请直接关掉这个页面,这里是说部分常用的东西怎么用。原创 2017-05-24 20:45:24 · 2650 阅读 · 2 评论 -
51nod 算法马拉松29 C题 美丽的集合
原题链接。这其实是我第一次在算马上交题,但是我太弱了,除了这题,都不会。每次合并两个集合其实就是把一个集合的元素弄到一个集合里去做01背包。竟然有集合合并,那显然要启发式合并了,这样最多提出n log n个元素。但是如果暴力01背包每次的复杂度是10^5,难以接受。注意到这个01背包非常特殊,它只要求是否能够凑成这个体积,所以这是一个布尔值。 于是bitset就可以用了,每次暴力左移,再或上去就行原创 2017-10-06 19:31:38 · 421 阅读 · 0 评论 -
c++ 优先队列学习小记
其实我一直憎恶优先队列,因为它麻烦,没有set好用。然而set的缺点也很多,比如说存实数就炸了。优先队列怎么实现的我不知道,但是它具备了堆的最基本功能,想要改造非常难,也不能快速定位,废的一匹。它是个大顶堆,所以改成小顶可以直接取反,pair也适用。头文件:#include<queue>定义:priority_queue<int> p;功能: p.push(2); //压栈 prin原创 2017-11-09 21:20:27 · 292 阅读 · 0 评论 -
c++ bitset学习小记
这个玩意用过很多次了,但是没有总结,在这里写一下。首先bitset就是c++内置的一个压位工具,每一位要么是0要么是1,可以快速位运算,也可以快速算1的个数之类的东西。修改是可以直接当数组修改的。头文件:#include<bitset>定义:bitset<500> a;常用的东西: a[i] = 0; a[i] = 1; //直接当数组修改。 a.set(); a.reset();原创 2017-11-09 21:33:35 · 335 阅读 · 0 评论 -
乘法取大模数技巧(黑科技)
经常会有些恶心人的题把模数开到10^18那么大来恶心人。此时如果直接相乘long long肯定是存不下的,打个小高精度代码又有些繁琐且容易写错,在这里提供两种便捷的办法。第一种:快速加,众人皆知,原理与快速幂类似,打法也十分类似。Code:ll ksj(ll x, ll y) { ll s = 0; for(; y; y /= 2, x = x * 2 % mo...原创 2018-05-16 19:57:16 · 901 阅读 · 0 评论 -
OI中时间函数实战用法
1.用作时间函数随机种子。srand(time(0));2.暴力卡时:在求最优解的题中有奇效。用法:clock()函数,返回值为一个整数,一般电脑的单位是ms,不同电脑可能不同。这没有关系,CLOCKS_PER_SEC是一个定值,就是clock()一秒的数值是多少。int st = clock();//...printf("%lf\n", (double) (clock() -...原创 2018-10-11 21:08:21 · 770 阅读 · 0 评论 -
OI中用priority_queue替代set的一些小trick
set由于其功能强大,令人爱不释手。但是换来的是令人作呕的常数。其实在一些简单的操作中,set是可以用priority_queue来替代的,后者常数小,代码相对来说也要简洁一些。堆优化dij的priority_queue写法:*SPFA已死,有事烧纸正常的堆写法是需要删除的,显然set是可以做到这一点的,需要用pair,很烦。问题1:c++优先队列默认是大顶堆,我们需要取出的是距离最...原创 2018-10-12 21:34:32 · 542 阅读 · 0 评论