上一页 1 2 3 4 5 6 7 ··· 18 下一页
摘要: 思路: 区间逆序数即是交换次数。 逆序数,可以用树状数组吧。 怎么处理区间变换的时候求逆序数啊。。 这里分成左边的增/删,右边的增/删 因为是按时序插入, 所以左边增,增一个数,计算:ans+=sun(cur_val-1)[比他小的数的个数] 那么删:删一个数,计算ans+=sun(cur_va... 阅读全文
posted @ 2017-02-18 00:20 see_you_later 阅读(131) 评论(0) 推荐(0) 编辑
摘要: THE FIRST 莫队算法。 /************************************************************** Problem: 2038 User: keyboarder_zsq Language: C++ Result:... 阅读全文
posted @ 2017-02-17 21:29 see_you_later 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 先膜拜watashi! 前言: 比赛的时候,确定的是这是一个博弈,然后就是各种瞎猜,后面想到DP[ x ][ y ]代表x表白色的状态,y表黑色的状态,无果。挂机开始。GG、巨菜。 思路: 这一发记忆化搜索真是玄学。 仔细想想,首先我只要求权值最大,我不在乎输赢。 直接就是dp[i][j][k]... 阅读全文
posted @ 2017-02-17 20:27 see_you_later 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 前言: 和队友一发入魂,很强势。 比赛中题目长的,就和队友一起读,这样比较快,然后还不会梦游,把点一句一句地搞出来。 思路: 在头5次,每次有人踢球就可能会输。 后面谁没进,对方进了救输。 代码: //#include #include#include#include#include#inclu... 阅读全文
posted @ 2017-02-17 18:54 see_you_later 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 题意: 百度。 思路: 一个串的插入只能搞出这个串的前缀,然而对于要query的串是子串,所以插入的时候暴力插入所有字母开头的串。。。。 然后还要注意到自己的串本身会叠加字典树中的前缀,要标记掉。 #include using namespace std;typedef long long L... 阅读全文
posted @ 2017-02-16 20:22 see_you_later 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 额。。有点遗忘了树状数组特性了。。印象中一直是前缀和,然后一定要记住树状数组是把给出的值(值太大可能可以离散化)也就是点到了区间,然后这个点存的值就是由自己来定了。 题意: 百度。 思路: 树状数组是用来标记的!值->区间点! 因为这里值重复是算的,所有树状数组存的是区间上该位置的个数。 0:插... 阅读全文
posted @ 2017-02-16 19:31 see_you_later 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题意: 有n个区间,每个区间覆盖区间里一段数,求最大连续区间长度被覆盖k次,并输出选取的区间。 思路: 贪心; 感觉一开始肯定是要把区间按left从小到大排序的。 然后肯定是连续k个区间能够达到的重叠最长? 因为left已经足够小了? 3 2 1 100 30 70 31 78 这个案例就说明... 阅读全文
posted @ 2017-02-15 12:24 see_you_later 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 在搜1011的时候误搜了1111,简单BFS吧,多一个X就是多四个面,每次看看他的四个面有多少个重复的,然后剪掉,最后答案加上就好了; code: //#include #include#include#include#include#include#includeusing namespace... 阅读全文
posted @ 2017-02-14 22:14 see_you_later 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 前言(膜法): 早上10点多开始膜的,然后到中午交了一发,感觉膜法不对啊!然后就兴起小窗了一发管理员,然后管理员给我发了in,out数据。。。可是太大并没有什么可取性。。。 还是自己试,然后发现自己搞的案例都过,后面放着不玩了,然后队友给了我一题以前做过的dfs写,然后写了以后T了,后面我就跟... 阅读全文
posted @ 2017-02-14 21:40 see_you_later 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你一堆棒子,这些棒子是你从一堆一样的棒子折断而来的, 现在你忘记了是从那一堆一样的棒子的长度,让你写一个程序,求最短的长度。 思路: 首先这个棒长肯定是和的约数,且大于最大值。 然后是sort一下棒子长度从大到小(我也不知道为啥可行) 最后就是一个判重剪枝: 注意判重剪枝,是对相同情况... 阅读全文
posted @ 2017-02-14 21:25 see_you_later 阅读(162) 评论(0) 推荐(0) 编辑
摘要: (温馨提示:图片外部食用更加) mid=(left+right)>>1,midmid=(mid+right)>>1; 举凸性函数的例子: 首先我们一定要明确问题:求极值,这里是极大值。 如图, 第一种情况下:mid一定在midmid的左边,而且为什么只能确定左端?因为midmid位于极值位... 阅读全文
posted @ 2017-02-13 22:55 see_you_later 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 先贡献几个数据(没用别怪我): /*ab40 ab1 ab0 ab1 ababababac40 aba1 aba0 abab1 abababcdefghijklmnopqrstuvwxyz30 abc1 def1 jmnabcdabcd30 cd0 abcd0 abcd*/ 思路: 因为要... 阅读全文
posted @ 2017-02-13 15:31 see_you_later 阅读(111) 评论(0) 推荐(0) 编辑
摘要: HDU5211 思路: 倒着更新每个数的约数,更新完要把自己加上,以及1的情况? //#include #include#include#include#include#include#includeusing namespace std;typedef long long LL;typede... 阅读全文
posted @ 2017-02-13 14:56 see_you_later 阅读(116) 评论(0) 推荐(0) 编辑
摘要: CodeForces - 471A 首先要有四个数相等,然后剩下两个数不同就是Bear,否则就是Elephant。 #include using namespace std;typedef pair PII;int num[10];int a;int main(){ memset(num... 阅读全文
posted @ 2017-02-12 22:30 see_you_later 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 萌新感言: 我的天呐! 因为是AC自动机的专题所以没有管别的。。。硬着头皮吃那份题解(代码)。。【请戳简单美丽可爱的代码(没开玩笑)】 首先讲AC自动机: tag存的是以这个节点为后缀的字符串个数(已状压)。 我们在构造fail指针的时候,采用的是BFS的手段,对于树而言,那就是一层一层的向下遍... 阅读全文
posted @ 2017-02-12 17:00 see_you_later 阅读(195) 评论(0) 推荐(0) 编辑
摘要: Fourth AC zi dong ji(Aho-Corasick Automation) of life 9A(其实不止交了10发...) 感言: 一开始多组数据这种小数据还是...无伤大局,因为改完以后还是wa... 一: 最后发现是wa在构造fail指针的时候在建立临时指针查询有没有匹... 阅读全文
posted @ 2017-02-12 09:52 see_you_later 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出n个字符串,再给出一个字符串,把之前出现过的字符串全部变成* 思路: AC自动机,Trie树上存的值是一个字符串的长度,也就是往前的长度,然后倒着处理一遍。 感想: 第三题AC自动机,本来就是想脱离模板多练练,虽然之前撒比bug错了一大堆,但是收获很多啊。 重要的感想有两个方面: 一... 阅读全文
posted @ 2017-02-11 21:18 see_you_later 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 思路: 因为不同病毒特征码不会相同。 AC自动机,然后对于每一个输出即可。 注意:以上字符串中字符都是ASCII码可见字符(不包括回车);G++ MLE。 //#include #include #include #include #include #include using na... 阅读全文
posted @ 2017-02-11 16:13 see_you_later 阅读(91) 评论(0) 推荐(0) 编辑
摘要: Frist AC zi dong ji(Aho-Corasick Automation) of life #include using namespace std; const int N=5e5+10; //10000个串,长度为50 struct Trie{ int ... 阅读全文
posted @ 2017-02-11 14:44 see_you_later 阅读(155) 评论(0) 推荐(0) 编辑
摘要: ZOJ3321 //there is at most one edge between two nodes. 因为这句话的局限性,又要满足环,那么一定是每个点度为2,然后为n节点的一个环 //#include #include#include#includeusing namespace std... 阅读全文
posted @ 2017-02-11 13:12 see_you_later 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 思路: 利用next[]的转化。 //#include #include#include#includeusing namespace std;const int N=1e3+10;char p[N],s[N];int lenp,lens,Next[N];void GetNext(){ i... 阅读全文
posted @ 2017-02-11 00:25 see_you_later 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 关于next的解释原文:点点点 //#include #include #include #include using namespace std; const int N=1e6+10; char s[N]; int Next[N],len; void GetNext() { ... 阅读全文
posted @ 2017-02-10 23:54 see_you_later 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题意: 给一个字符串,求满足既是这个字符串的前缀,又是这个字符串的后缀,从小到大输出长度 思路: 细讲next数组含义博文:点我 首先要满足前缀的呀。 KMP的next数组干的是子串最长后缀。 所以从最后一个next一直往前跳,next存的就是最长后缀,知道为0||-1; //#include... 阅读全文
posted @ 2017-02-10 19:24 see_you_later 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题意: 求最小T,满足L的倍数且都由8组成,求长度; 思路: 很强势的福利:点 图片拿出去食用更优 //#include#include#include#include#includeusing namespace std;typedef long long LL;LL eluer(LL ... 阅读全文
posted @ 2017-02-10 15:44 see_you_later 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 题意: 有男生女生,男生都认识双方,女生都认识双方,给出一些男女关系,问最大拿多少个人,使得所有人都认识双方。 思路: 原图最大团=总结点数-[【补图(补图为二分图)】的最大独立集=最大完全子图的顶点数];//#include#include#include#includeusing name... 阅读全文
posted @ 2017-02-10 14:06 see_you_later 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 题意: n个点的完全图,删掉m条边以后,求与1联通的点的个数。 思路: 直接判断 遍历图,n(n+1)/2=5e7 复杂度n^2......,哦,这样也行。。。 //#include#include#include#includeusing namespace std;typedef long ... 阅读全文
posted @ 2017-02-10 13:54 see_you_later 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个x,求有多少个矩阵中满足存在x个不同的正方形。 思路: (数学渣+推理渣) #includeusing namespace std;typedef long long LL;const LL N=1e6+10;struct asd{ LL a,b;};asd ans[N]... 阅读全文
posted @ 2017-02-10 10:51 see_you_later 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你一个序列,要求你从小到大排序,你可以划分成一个块一个块地进行块内排序,问你最多能分成几个块 思路: 贪心,首先感觉就是有正序的话我就分开啊; 难道倒序不能分块?321肯定不行啊。 存不存在连续两个倒序,但是后面有元素比前面块小,存在:[6 3] [5 1] 这样分成两块是错的。 所以... 阅读全文
posted @ 2017-02-10 09:29 see_you_later 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题意: 检验给出条件是否有同性恋。 思路: 条件并查集。 还是一个类似的前缀和,sum[x]是x到根这段路径上的和,根一定是坐标越小的, 那么如果说对于同类(同一个集合)的判断就sum[a]是否等于sum[b] 对于不同类的话,就是他们的关系取反。 考虑状态压缩中,关系就是叠加。 一直wa,wa... 阅读全文
posted @ 2017-02-09 23:55 see_you_later 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出m组区间[a,b],以及其区间的和,问有矛盾的有几组; 思路: 种类并查集。 主要是几个关系:同类元素的关系,父亲与儿子的关系,不同类元素的关系; 我们可以类似看作一个前缀和,sum[x]是x到根这段路径上的和,那么根一定是坐标越小的,那么如果说对于同类(同一个集合)的判断就是sum... 阅读全文
posted @ 2017-02-09 21:38 see_you_later 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 思路: ---来源百度 0表示它与根结点为同类, 1表示它吃根结点, 2表示它被根结点吃。 判断两个点a, b的关系,我们令p = Find(a), q = Find(b),即p, q分别为a, b子树的根结点。 1. 如果p != q,说明a, b暂时没有关系,那么关于他们的判断都是正确的,... 阅读全文
posted @ 2017-02-09 20:57 see_you_later 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题意: 求多个字符串的最长公共子串 思路: 4000个串,200长度。 一种暴力,对于一个串最多有200*200=40000级别个子串,然后我要再处理一下next数组200,8e6复杂度; 然后我要和4000个串去匹配一下,看看符不符合,400000*4000*200这样就炸了; 其实显然不需要... 阅读全文
posted @ 2017-02-09 17:55 see_you_later 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 题意: 给两个字符串s1,s2,求最长的s1前缀匹配s2后缀的字符串,以及长度 思路: 利用KMP看下最终匹配到了哪个位置;一个是利用常规匹配,另一个是利用next数组的跳转。 #includeusing namespace std;const int N=5e4+10;int lens1,le... 阅读全文
posted @ 2017-02-09 15:42 see_you_later 阅读(121) 评论(0) 推荐(0) 编辑
摘要: CodeForces754A 题意: 给一个数组,让你变成1-n,输出变换区间,要求原区间和不为0. 思路: 如果原数组不为0,那就是YES; 如果为0,则从1开始扫过去,碰到不为0时,分两个区间[1,k],[k+1,n] #includeusing namespace std;int a[11... 阅读全文
posted @ 2017-02-09 13:05 see_you_later 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你两个字符串p和s,求出p在s中出现的次数。 这道题,abababa中aba出现了3次。 有其他题是求abababa,aba就是2次。 需注意。 KMP 模板 //#include//using namespace std;#include#include#include#inclu... 阅读全文
posted @ 2017-02-09 00:16 see_you_later 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 思路: 打表。 利用公式。 类似素数打表一样。 #includeusing namespace std;const int N=3e6+10;bool isPrime[N];long long res[N];void init(){ res[1]=1; memset(isPri... 阅读全文
posted @ 2017-02-04 17:27 see_you_later 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题意: n,m 给出A1,A2,A3...AN;C1,C2,C3...CN; 给出硬币的价值和个数,问在1-M中间能构造出多少个组合 思路: n种物品的价值,n种物品的个数; 一种物品能组成多种物品的0/1背包 #includeusing namespace std;const int N=1e... 阅读全文
posted @ 2017-02-04 16:20 see_you_later 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 前言,根据最终图的样貌搞真厉害 “缩点判根度为结点数-1”牛逼 ----- 题意: 找一个根使得不带根的所有子树内部颜色都相同; 思路: 如果存在两个颜色不一样的连在一起,根就是他们两个中间一个。。。。。。直接搜两次就好了。。。 #includeusing namespace::std;t... 阅读全文
posted @ 2017-02-03 15:36 see_you_later 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题意: N个人,有两种人,M对亲密关系,问最少删除几个人达到没有亲密关系。 思路: 最大匹配 = 最小独立集,删掉该人对最大匹配数的影响,如果没有影响,删不删都无所谓,如果有影响贼删除; 类似HDU1281; 处理可用删除这个点以后找增广,如果找的到增广则无影响,找不到增广则有影响。 错误就是... 阅读全文
posted @ 2017-02-03 14:39 see_you_later 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个矩阵问能否实现对角线全部是1,能的话输出路径,不能的话输出-1 思路: 首先根据矩阵的性质,这一定是一个满秩矩阵,所以只根据行或列交换就一定能实现。 所以行和列构成二分图,然后跑一发匈牙利就知道行不行。 然后怎么输出交换的步骤呢,我们只考虑列交换的话,在对于数组cy[ ]也就是... 阅读全文
posted @ 2017-02-02 20:42 see_you_later 阅读(140) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 18 下一页