摘要: 题目:洛谷P1309、codevs1132、Vijos P1771 题目大意:要你模拟瑞士轮赛制,求出R轮后第Q名选手的编号。 解题思路:首先对所有选手按分数从大到小进行排序,然后模拟比赛。 因为原本是排好序的,赢的加1分,输的扣1分,所以赢的人和输的人也是分别有序的。 所以我们可以把每轮赢的人扔进 阅读全文
posted @ 2017-07-11 08:26 Mrsrz 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你n个节点的森林(注意不是一棵树),m条路径的长度,c个询问,要你回答每个询问两个点i和j的最短距离,或者回答没有连接。 解题思路:对于每个节点,求出其到根的距离a[i],然后求两点的最近公共祖先LCA,最后的答案为$a[i]+a[j]-2*a[LCA(i,j)]$。 我用的是Tarja 阅读全文
posted @ 2017-07-10 19:08 Mrsrz 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有n个点和m条路(双向),要你在某些点上放“河蟹”来“占领”这个点的所有路,但是任意两只河蟹不能放在有路径连接的两个点上,否则会打架,求最少多少只河蟹使得所有路全被占领,或者不可能全部占领。 算法:BFS(或DFS)染色 思路:因为BFS有分层效果,于是我使用BFS将每个联通块染成黑色和白 阅读全文
posted @ 2017-06-11 20:50 Mrsrz 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 题目大意、算法、思路:略。模板题,BKDRHash。 C++ Code: 阅读全文
posted @ 2017-06-11 19:21 Mrsrz 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题目大意:见原题目描述,说的很清楚。 算法:图论、欧拉路径 思路:题目数据中没有重复条件,因此成功得到解有两种可能。①n个点,n条路径,形成欧拉回路(没有奇数点);②n+1个点,n条路径,形成欧拉路径(只有2个奇数点)。因此先判断是否有解,如果有就用dfs搜欧拉路径(回路)即可。 我这里给每个字母都 阅读全文
posted @ 2017-06-11 18:55 Mrsrz 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题目:BZOJ1192 题目大意:略,见原题。 思路:求出比$n$大的最小的$2^k-1$的数的\(k\)。设$2^k=m$,则$k=\log_2 m$,如有多则进1。 C++ Code: 阅读全文
posted @ 2017-06-09 20:06 Mrsrz 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你一个字符串(区分大小写),要求你添加最少的字符使其变成回文串,问最少添加几个字符。 思路:此题的答案=原字符串长度-原字符串与前后颠倒后的字符串的最长公共子串长度(LCS)。 求LCS用DP。 此题字符串最长能达5000,数组需要开5000*5000*int,会“炸”(MLE)。解决办 阅读全文
posted @ 2017-06-09 19:01 Mrsrz 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题目大意:读入一些数(每行读入$w[i],s[i]$为一组数),要求找到一个最长的序列,使得符合$w[m[1]] < w[m[2]] < ... < w[m[n]]$且$s[m[1]] > s[m[2]] > ... > s[m[n]]$,并输出每组数在读入时的顺序(具体见原题目)。 思路:先根据w 阅读全文
posted @ 2017-06-04 17:10 Mrsrz 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你$n$种长方体,要你用这些长方体从下往上叠起来,下面的长方体的长和宽要严格大于上面的。求出最高能搭多高。 思路:先得出可以使用的长方体(长>宽,注意高也可以作为一条长或宽,那么一个长方体至少有3种不同的长宽高),然后根据长排序,接着DP就行了。 具体见代码。 C++ Code: 阅读全文
posted @ 2017-06-04 15:53 Mrsrz 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你一个4位数的初始状态(只包含1~9),要求你变化成另一个4位数。 变化规则为:每次可给任意一位加1或减1(1减1变为9,9加1变为1),或交换相邻两个数位上的数字(第一位和最后一位不相邻)。 要你求出最少的变化次数。 解题思路:这道题很明显是一道BFS的题,只不过变化的操作复杂了点。我 阅读全文
posted @ 2017-05-30 20:36 Mrsrz 阅读(242) 评论(0) 推荐(0) 编辑