02 2018 档案
摘要:A 逆序数 题解:用树状数组进行计算有多少个前面比他大的数,只需要getsum(MAX)-getsum(a[i]),getsum(MAX)得到的是当前a[i]及出现在之前所有的数的个数,getsum(a[i])得到的是比a[i]在a[i]之前小于等于它的数的个数,相减就是比它大的个数; 1 #inc
阅读全文
摘要:传送门:Poj 2186 题意:给你n头牛,m种关系,A牛认为B牛是popular的,B牛认为C牛是popular的,则A也认为C是popular的,问最终有几头被所有牛认为是popular的牛 题解:强连通缩点基础题(虽然我Tarjan和缩点都是对的,但是最终讨论判断的时候写垮了(写了3天。。。。
阅读全文
摘要:Hdu 1083 题意:给你一个p表示测试组数,给你n和m表示课的个数和学生的个数,接下来n行首数字i表示该堂课的学生代表人数,之后为i个学生编码,问能否为每堂课找到一个学生课代表且不冲突; 题解:匈牙利算法模版 另附简单易懂匈牙利算法讲解:传送门
阅读全文
摘要:Poj 1200 题意:给你一个n和m以及一个有m个不同字母组成的字符串,问有多少个长度为n的不同字符子串; 题解:以m为进制进行Hash。虽然是看了解题报告才会的但必须要理解并且学会运用:https://www.cnblogs.com/gj-Acit/archive/2013/05/15/3080
阅读全文
摘要:#include #include #include using namespace std; const int N=220010; using namespace std; char str[N]; char tmp[N]; int len[N]; int init(){ tmp[0]='$'; int i=0,nlen=1; while(str[i]!='\0'){...
阅读全文
摘要:Hdu 3374 题意:给你一个字符串,让你输出它移位后最小字典序的rank和循环节个数,最大字典序的rank和循环节个数。 题解:循环节好找,只要判断len%(len-nx[len])是否等于0,如果等于0说明含有循环节,则ans=len%(len-nx[len]),否则ans=1(即循环节为一整
阅读全文
摘要:Uva 10305
阅读全文
摘要:BZOJ 1012 题解:用单调栈来维护第L大的数这个关系
阅读全文
摘要:BZOJ 1207 题解:做满足条件的最大上升子序列处理即可
阅读全文
摘要:POJ - 3067 题意:西边给你一排点,东边给你一排点,再给你k条连接东西的线,现问有多少个交点? 题解:pair存左右两边的点,对pair进行sort,此时得到的pair是按照first排好序的(如果first相同则按照second排序),此时可以发现只需要去找在逆序对即可。注意!!!!!!p
阅读全文
摘要:POJ 2299 题意:给你一组数字,能交换相邻元素,问需要交换多少次才能使其变成升序序列。 题解:实际上就是求逆序对个数,不过因为数据比较大,所以需要离散化一下。
阅读全文
摘要:BZOJ 1015 思路:并查集只有联边的作用,无法做到拆边,因此采取逆序做法。先将边拆掉,再用并查集进行联边,不同联通块相连则联通块数目减一。
阅读全文

浙公网安备 33010602011771号