- 博客(12)
- 收藏
- 关注
原创 题解-[NOI2007]社交网络
题目链接洛谷题目描述:我们可以通过统计经过一个结点 vvv 的最短路径的数目来衡量该结点在社交网络中的重要程度。考虑到两个结点 AAA 和 BBB 之间可能会有多条最短路径。我们修改重要程度的定义如下:令 Cs,tC_{s,t}Cs,t表示从s到t的不同的最短路的数目,Cs,t,vC_{s,t,v}Cs,t,v表示经过 vvv 从 sss 到 ttt 的最短路的数目;则定义 I(v)=∑...
2019-10-23 18:34:42 440
原创 算法/题解-二分图匹配(匈牙利算法)
题目链接:洛谷什么是二分图?二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 ——百度百科通俗地说,二分图就是一种特殊的无向图,它有两堆顶点。每一堆里的每一个顶点都只能和另一堆的顶点相连...
2019-09-21 14:16:40 312
原创 题解-[NOIP2010]三国游戏
题目链接洛谷题目描述小涵和计算机玩三国游戏,小涵先手计算机后手,每回合每人选一位未被选过的武将每两位武将都有不同的默契值,最后两方从自己阵容里选出默契值最高的一对武将相比较,默契值高的一方胜计算机的策略是:在未被选择的武将中选择x,使得x与小涵阵容里的一位武将y之间的默契值是全场最高的。也就是说选出小涵下一轮的最优选择给出所有武将之间的默契值,求小涵是不是必胜,如果必胜,她阵容中的最高...
2019-09-09 22:08:44 495
原创 题解-合并果子(优先队列)
题目链接:洛谷题目描述:给定n个叶结点,每个结点有一个权值W[i],将它们中两个、两个合并为树,假设每个结点从根到它的距离是D[i],使得最终∑(wi * di)最小。题解:Part 1 合并果子这道题有很多方法能做,我一开始竟然脑抽用了个双向队列???然后用sort排序,果然T了然而玄学的是,加了O2以后…好吧进入正题这题的做法很简单,就是经典的Huffman树,即每次选...
2019-08-23 14:45:50 354
原创 题解-[NOI2014]动物园
题目链接:luogu题目描述:输入N组数据,每组数据包含一个字符串S,对于每个S,求出它的num数组。num数组的定义是:字符串S的前i个字符构成的子串,既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,将这种字符串的数量记作num[i]。为了避免大量的输出,你不需要输出num[i]分别是多少,你只需要输出所有(num[i]+1)的乘积,对1,000,000,007取模的结果即可。...
2019-08-18 15:40:27 256
原创 算法/题解-KMP
题目链接:luogu题目描述:给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置。然后输出next数组题解:这篇题解鸽了好久,因为我一直都没有完全理解看猫片,这东西是真的难。KMP的用处就是在母串里面找子串。朴素做法是一位一位地匹配,判断子串和母串的字符是否相同,所以时间复杂度是O(mn)。(m、n是母串和字串的长度)KMP就是通过一些神奇的操作跳过一些字...
2019-08-11 22:27:24 421
原创 题解 Sticks 小木棍
题目链接:UVAluogu RemoteJudge需登UVAluogu 加强版题目描述:每组数据给出N根小木棍,把它们拼接成若干根长度相等的木棍,求该长度的最小值。题解:这题似乎就是暴搜加剪枝优化,不过剪枝比较复杂。先上代码:#include <bits/stdc++.h>using namespace std;int a[100],v[100],n,len,c...
2019-08-04 09:10:46 618
原创 题解 前缀统计
题目链接:AcWing题目描述:给定N个字符串S1,S2…SN,接下来进行M次询问,每次询问给定一个字符串T,求S1~SN中有多少个字符串是T的前缀。输入字符串的总长度不超过10^6,仅包含小写字母。题解:这道题用字典树(Trie)做Trie的模板是将字符串结尾记录在每个节点,但这题节点中记录的是z字符串的个数,其实就是把每个节点原来的bool变量改成int下面是插入函数:void...
2019-08-03 07:47:23 571
原创 题解 最短Hamilton路径
题目链接:AcWing题目描述:给定一张 n 个点的带权无向图,点从 0~n-1 标号,每个点经过一次,求从0到n-1的最短路径题解:数据范围比较小,所以暴力也能做,但正解是贼难的位运算 Q_Q算法的核心是用一个二进制数表示一种方案对于这个数的第i位:0表示没走过,1表示走过这里的f[i][j]表示:在当前方案i中,走到了j那么状态转移方程就是f[i][j]=min(f[i][...
2019-08-03 07:43:00 342
原创 题解/算法-manacher算法
给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.字符串长度为n字符串长度len <= 11000000
2019-08-02 21:35:32 175
原创 题解 滑动窗口
题目链接:AcWingluogu题目描述:现在有一堆数字共N个数字(N<=10^6),以及一个大小为k的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。题解:这道题是典型的单调队列,用STL或数组模拟都可以实现,我这里用的是STL。所谓单调队列,就是队列里所有的数的值都是单调递增或单调递减的。这道题要求最大值和最小值,显然它们用的方法是...
2019-08-02 21:27:41 328
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人