随笔分类 -  summerTrain

摘要:题意:给你n张卡,每张卡上有蓝色和红色的两种数字,求一种排列使得对应颜色数字之间形成的逆序对总数最小题解:贪心,先按蓝色排序,数字相同再按红色排,那么蓝色数字的逆序总数为0,考虑交换红色的数字消除逆序,那么这个操作的代价是蓝色的数字逆序对增加2*len-3,而红色的数字交换最多也只能消除那么多对逆序... 阅读全文
posted @ 2015-07-23 19:35 瑞宇 阅读(327) 评论(0) 推荐(0)
摘要:A题,超级大水题,根据有没有1输出-1和1就行了。我沙茶,把%d写成了%n。B题,也水,两个矩形的长和宽分别加一下,剩下的两个取大的那个,看看是否框得下。C题,其实也很简单,题目保证了小三角形是正三角形,一个正三角的面积=l*l*(1/2)*cos(30),由于只要算三角形个数,把六边形扩成一个大三... 阅读全文
posted @ 2015-07-23 11:13 瑞宇 阅读(215) 评论(0) 推荐(0)
摘要:好题,当时想了半个小时,我往图论方面去想了,把出现过的字符串当场点,然后相互连边,那么就构成了一个三角形,一个大于三个点的连通分量里有以下结论:度为二的点可能是track,度为大于二的点一定不是track,当一个点连接一个可能是track的点和一个可能是artist的点,那么这个点就可能是ablum... 阅读全文
posted @ 2015-07-22 09:50 瑞宇 阅读(302) 评论(2) 推荐(0)
摘要:题意:给你一些N个点,M条边,走每条边要花费金钱,然后给出其中必须访问的点,在这些点可以打工,但是需要先拿到证书,只可以打一次,也可以选择不打工之直接经过它。一个人从1号点出发,给出初始金钱,问你能不能访问所以的点,并且获得所以证书。题解:目标是那些一定要访问的点,怎么到达的我们不关心,但是我们关心... 阅读全文
posted @ 2015-07-21 21:29 瑞宇 阅读(248) 评论(3) 推荐(0)
摘要:题意:给一些带颜色的点,求一个最小的矩形,恰好包括一半的红色点,且不包括蓝色点。题解:暴力,求个二维前缀和,用容斥原理更新一下。N很小所以我采用了离散优化,跑了个0ms。之前没写过二维前缀和,加上离散写得也不是很熟练,所以搞了2个小时,好在是一发就过了。貌似有个坑,线不要特判,不然wa。#inclu... 阅读全文
posted @ 2015-07-21 18:31 瑞宇 阅读(233) 评论(2) 推荐(0)
摘要:题意:给你一个序列,和标准序列连线,求交点数。题解:就是求逆序对个数,用树状数组优化就行了。具体过程就是按照顺序往树状数组了插点(根据点的大小),因为第i大的点应该排在第i位,插进去的时候他前面本该是有i-1个点的,如果少了,那么一定就和这个元素构成了逆序对。#include#include#inc... 阅读全文
posted @ 2015-07-21 18:22 瑞宇 阅读(166) 评论(0) 推荐(0)
摘要:题意:求空间两线的最短距离和最短线的交点题解:线性代数和空间几何,主要是用叉积,点积,几何。知道两个方向向量s1,s2,求叉积可以得出他们的公共垂直向量,然后公共垂直向量gamma和两线上的点形成的向量做内积,在除掉gamma的长度就得到投影,即是最短距离。然后求两个点可以用gamma和s2的叉积和... 阅读全文
posted @ 2015-07-20 19:23 瑞宇 阅读(243) 评论(0) 推荐(0)
摘要:神坑题。这题的坑点有1.判断连通,2.有重边,3.至少要有一个人背炸药因为有重边,tarjan的时候不能用子结点和父节点来判断是不是树边的二次访问,所以我的采用用前向星存边编号的奇偶性关系,用^1来判断是不是树边#include#include#includeusing namespace std;... 阅读全文
posted @ 2015-07-20 08:18 瑞宇 阅读(337) 评论(0) 推荐(0)
摘要:博主图论比较弱,搜了模版也不会用。。。所以决心学习下tarjan算法。割点和割边的概念不在赘述,tarjan能在线性时间复杂度内求出割边。重要的概念:时间戟,就是一个全局变量clock记录访问结点的时间。一个无向图dfs会形成一个森林,当图只有一个连通分量时,就只有一棵树。由于在无向图中,除了树边,... 阅读全文
posted @ 2015-07-19 21:37 瑞宇 阅读(743) 评论(0) 推荐(0)
摘要:题意:问两个迷宫是否存在公共最短路。题解:两个反向bfs建立层次图,一遍正向bfs寻找公共最短路#include#include#includeusing namespace std;const int maxn = 500+1;int d1[maxn][maxn];int d2[maxn][max... 阅读全文
posted @ 2015-07-19 11:25 瑞宇 阅读(311) 评论(0) 推荐(0)
摘要:题意:给你一堆牌,和一些洗牌机,可以改变牌的顺序,问你能不能通过洗牌机把数字为x的牌洗到第一个位置。题解:反向建边,dfs判断连通性#include#includeusing namespace std;const int maxn = 200000+4;int a[maxn];vector son... 阅读全文
posted @ 2015-07-19 09:53 瑞宇 阅读(352) 评论(0) 推荐(0)
摘要:题意:给你一个函数和一些系数,给你一堆询问,求函数值。根据s的符号,分成两组讨论,函数值与比x小的系数数量有关,二分输出答案。#include#includeusing namespace std;const int maxn = 200000+1;int A[maxn];int B[maxn];i... 阅读全文
posted @ 2015-07-19 09:10 瑞宇 阅读(294) 评论(2) 推荐(0)
摘要:题意:给n个元素,从n中选两个非空集合A和B。问有多少中选法?递推:dp[n]表示元素个数为n的方案数,对于新来的一个元素,要么加入集合,要么不加入集合自成一个集合。加入集合有三种选择,A,B,E(可空的集合),或者自成集合,作为A或B,然后在选一个n-1个元素的非空子集(2^n-1 - 1)。#i... 阅读全文
posted @ 2015-07-19 00:37 瑞宇 阅读(321) 评论(0) 推荐(0)
摘要:根据兔子试药情况可以缩小范围,如果死了,不在试过的药里面,如果活着,在试过的药里。最糟的情况: 两个原则 1.能确定魔药所在的范围的尽量大,2.死得兔子尽量多。如果当前不知道情况的药n为k的二倍以上,那么基于上面两个原则,试过药的兔子肯定会死。没死:范围k,损失的兔子0死了:范围n-k,损失的兔... 阅读全文
posted @ 2015-07-18 21:18 瑞宇 阅读(389) 评论(2) 推荐(0)
摘要:题目背景是以前用来对网页进行排名的Page Rank算法,是早期Google的革命性发明。背后的原理是矩阵和图论。这个数学模型是由Google的创始人拉里·佩奇和谢尔盖·布林发现的。如果一个网页被很多网页链接那么它的排名就高,当然不同的网页应该用不同的权值加以区分,一个网页的排名来自指向它的网页权值... 阅读全文
posted @ 2015-07-18 11:23 瑞宇 阅读(286) 评论(0) 推荐(0)
摘要:题意:移动一个矩形,使矩形内包含的点尽量多。思路:把一个点拆成两个事件,一个进(权值为1)一个出(权值为-1),将所有点按照x排序,然后扫描,对于每个x,用一个滑窗计算一下最大值,再移动扫描线。树状数组可以实现。上面方法其实不是最优的,目前所知最优的办法是把一个矩形压缩成一个点,而一个点延伸为一条线... 阅读全文
posted @ 2015-07-18 00:03 瑞宇 阅读(402) 评论(0) 推荐(0)
摘要:虽然这题可以用暴力n^3过,但是还有有种n^2的方法的,枚举b,对于b,分别枚举a和c,得到对于这个b的最优解,然后从所以b中选一个最优的。要保证字典序最小,只要从小往大枚举就好了感谢moonflyer#include#include#include#includeusing namespace s... 阅读全文
posted @ 2015-07-17 23:37 瑞宇 阅读(219) 评论(2) 推荐(0)
摘要:对于每个元素,最理想的情况就是都在它的左边或者右边,那么sort一下就可以得到一个特解了,然后大的中间不能有小的元素,因为如果有的话,那么无论选小的还是选大的都不是最优。对小的元素来说,比它大的元素在哪里是没有关系的。所以把大的看作一个整体,然后插空法算出总方案数。答案用llu存#include#i... 阅读全文
posted @ 2015-07-17 22:17 瑞宇 阅读(287) 评论(0) 推荐(0)
摘要:题意:分段用椎台面积近似计算体积,然后计算出近似值和真实值的相对误差微积分加数学。平头椎台的体积计算公式:V = 1/3*h*(S1+S2*sqrt(S1*S2)一个更快的计算多项式值的方法: for(int i = 15; i >= 0; i--) ans = ans*x+p[i],比直接pow快... 阅读全文
posted @ 2015-07-17 20:42 瑞宇 阅读(509) 评论(0) 推荐(0)
摘要:二分图最大匹配问题遇到冰山就把行列拆成两个部分。每个部分x也好,y也好只能匹配一次图画得比较草,将就着看横着扫一遍,竖着扫一遍,得到编号一个位置就对应一个(xi,yi)就是X集到Y集的一条边,由题意,每个点只能被选择一次。所以最大匹配的边数就是答案了。算法过程当增广路不存在的时候,就是二分图最大匹配... 阅读全文
posted @ 2015-07-17 19:22 瑞宇 阅读(543) 评论(0) 推荐(0)