- 博客(21)
- 收藏
- 关注
原创 Codeforces Round#520 div2 E. Company [LCA] [线段树] [dfs序]
【题目】:给你一颗由n个点组成的树,编号为1-n中的一个数字,并且各不相同。一共有q个询问,每次询问给你一个区间[L,R],让你求出在可以忽略区间中一个点的情况下,他们深度最大的lca是谁,并且输出忽略的是谁,lca是谁。链接:E. Company【题解】:结论:对这棵树进行dfs序,然后一个区间的LCA一定是dfs序最小的点和dfs序最大的点的LCA。证明挺简单的 这里忽略。那么知道了这...
2018-11-16 15:40:32 275
原创 Codeforces Round#519 D. Mysterious Crime【想法题】
【题意】:给你m个长度为n的排列,m<=10,n<=100000,让你求有多少种不同的公共子串。【题解】:就目前而言,如果是在多个字符串中求不同的公共子串个数,还不是一个能在较低复杂度下就能解决的问题,所以这道题一定是有它自己特殊的地方:排列(permutaion)。因为是排列,那么每一个数字只会出现一次,那我们就能记录每一个字符串中每一个数字后面跟着的是谁,那么判断是否存在某个子...
2018-10-29 13:09:53 163
原创 bzoj 1003 物流运输 最短路+dp
【题意】:一共要运输n天物资,每天都要从1号码头运送到m号码头,给你e行,每行告诉你从a号码头到b号码头的花费(无向图)。再告诉你d行,表示p号码头,在第 [a,b] 天内不能经过。当你某一天和上一天的运输路线不同时,需要额外花费k。现在让你求这n天加起来最小的总花费。n<=20, m<=100【题解】:代表前 i 天的最小花费,那么 一定是从某一个 转移过来,并且这些天里走的...
2018-10-17 19:19:41 201
原创 BZOJ 1001 狼抓兔子 st平面图最大流 转化为 对偶图求最短路
/*2018/10/16BZOJ 1001st平面图最大流,转化为对偶图跑最短路顾业鸣注意n==1||m==1的特判*/#include<stdio.h>#include<string.h>#include<algorithm>#include<set>using namespace std;typedef long lon...
2018-10-16 14:00:28 237
原创 hdu 6397 Character Encoding 【容斥原理】 2018杭电多校第八场 Contest 8 A
【题意】:传送门:hdu-6397 Character Encoding给你n m k,本质上就是让你求下面这个不定方程的解的组数:【题解】: 先介绍一下隔板法,如果您会的话请跳过这一段。我们先引入一个问题,有x个小球,放到m个盒子里,每个盒子不能为空,问有多少种放法。这里保证每个小球都是相同的,并且。分到m个盒子里,就等价于用m-1个板去隔开这x个球。因为不...
2018-08-15 18:22:46 1148 5
原创 2018 百度之星 初赛A 1004 度度熊看球赛 【DP】
【题意】:链接:度度熊看球赛 有一排2*N个椅子,现在有N对情侣来看球赛,每个人随机坐在一个椅子上。再给你一个D,如果有k对情侣相邻而坐,就会产生的喧闹值。问你期望的喧闹值,为了避免出现浮点数,答案乘以,并且对998244353取模。【题解】:官方题解很巧妙,讲的非常好。官方题解:我这里就再赘述一下:先假设,永远是女生坐在男生右边。(每对情侣可以选择男...
2018-08-13 17:45:18 295
原创 hdu 6321 Problem C. Dynamic Graph Matching【2018 Multi-University Training Contest 3 】【状压DP】
【题意】:t组样例,n个点(保证是偶数),m次操作,每次操作告诉你两个点,给这两个点加一条边或者减一条边,减边的话保证减边之前至少有一条边。每次操作之后输出 整个图中 匹配大小为 j 的数量 。两条重边被认为是不一样的。【题解】:n <= 10,每个点有被占用和不被占用两种状态,所以一共有2^10种状态。如果这次增加了 a b这两个点的一条边,那么就从 0 - 102...
2018-07-30 20:12:27 147
原创 hdu-2973 YAPTCHA 【威尔逊定理】
【题意】:链接:hdu2973 YAPTCHA是向下取整的意思。t 组样例,给你一个n,让你根据公式求Sn。【题解】:1. 首先要先介绍一下威尔逊定理:( p -1 )! ≡ p-1 ( mod p ) 与p是质数 是充要条件。也就是说,当p是质数,(p-1)的阶乘 对 p 取模一定得到 p-1。反过来也成立。 2. 那现在看这道题,我们假设3k+7是质数,设p...
2018-07-28 23:24:20 484
原创 codeforces 732F Tourist Reform 【边双连通分量】【tarjan】
【题意】:链接:codeforces 732F Tourist Reformn个点,m条边,v[ i ]表示从点 i 出发,到达的不同地方的数量。一开始是无向边,让你把每条边改成有向边,怎么改,可以使得最小的v[ i ]最大。【题解】:我们考虑如果这个图中存在桥,即把这条边去掉,这个图就不能连通,那么这条边是关键的。所以我们用tarjan对整个图搜一遍,找到双连通分量和桥,把是桥的...
2018-07-24 22:44:16 270
原创 gym 101755D Transfer Window 【网络流】【dfs】
【题意】:链接:gym 101755 D Transfer Window给你一个n和一个k,表示一共有n个人,由1...n表示。 你有k个人,你想要k个人。第二行给出k个数,表示你有的k个人的id,第三行给出k个数,表示你想要的k个人的id,然后给你n*n的矩阵,第i行的第j个字符为0表示 i 不能换到 j,为1表示 i 能换到 j 。如果能换到你想要的k个人,输出YES,然后下一行输...
2018-07-23 20:10:44 401
原创 gym 100971-A Treasure Island 【搜索】【暴力】
【题意】:链接:gym100971—A Treasure Island给你n,m。然后给你一张n*m的地图,'#' 表示水,'.' 表示陆地,‘?' 表示不确定,可能是水可能是陆地。已知,这张地图上只有一片连续的陆地,问你是否能还原这张地图,如果不可能输出Impossible,答案不唯一输出Ambiguous,答案唯一的话,将‘ ?’还原成‘ # ’或者‘ . ’。【题解】:教训:...
2018-07-21 21:09:20 254
原创 gym-101755H Safe Path 【BFS】
【题意】:链接:gym-101755H Safe Path给你n,m,d。然后给你一个n*m的二维矩阵,这里只告诉你n*m<=200000,我选择用一维数组存图。M 表示该位置有怪兽,S是起点,F是终点,相邻格子之间的距离为1,不能进入离怪兽的距离小于等于d的地方,问你能不能从S走到F,不能的话输出-1,能的话输出最小步数。【想法】先将所有的怪兽点入队,进行一次bfs,把...
2018-07-20 20:11:45 447
原创 gym 101755-G Underpalindromity 【线段树】【想法】
【题意】:链接:gym101755-G Underpalindromity给你n和k,接下来给你长度为n的数组,每次你只能让某个数字变大1。问你在所有长度为k的子区间里,需要让数字变大多少次,才能让这个子区间是回文的。子区间与子区间之间不会相互影响,也就是你的变大只是临时的,并非永久有效。【想法】:当你去试一试,你会发现:对于某个数字而言,与它有关系的数字,只会是某个区间里,一些下...
2018-07-19 20:53:44 312
原创 gym-101755 M Forgotten Spell 递归写法,避免复杂分类讨论
【题意】:链接:gym101755M -Forgotten Spell有一个初始的字符串,不知道是什么。给你三个长度相等的字符串,每个字符串最多有一个字符和初始字符串不一样,问你能不能通过这三个字符串求出原来的初始字符串,根据情况输出。【想法】:首先我们可以确定一点,如果有超过三列,不是完全相等的,那么肯定输出“Impossible”。然后我们再思考,有0列和1列,不是完全相等...
2018-07-19 20:37:47 386 1
原创 hdu-3333 Turing Tree 线段树 + 离线 + 想法
这题没注意看数据上来就用莫队t了一发。然后仔细一看发现不太好做,想了很久。题目链接:点击打开链接题意:t组样例,t<10,n个数,q个询问,每次给一个区间,问这个区间不重复的数字的和。n<=30000,q<=100000。首先,我们试想一下用线段树来统计区间和的话,是否能够每次询问一个区间的时候,我都保证这个区间里的数字不重复。那么,如果我们事先直接把[1,n]这个区间的线段树建...
2018-07-10 19:42:43 170
原创 【牛客网】【Wannafly挑战赛19】B-矩阵 【单调队列】
题目链接:点击打开链接题意:第一行给出 r,c,x,y,z 五个字母,再给出一个 r行c列的整数矩阵,求一个行数不超过x,列数不超过y,并且0的数量不超过z的子矩阵,使得其中的元素之和最大,输出这个和。我们先n方暴力for出这个子矩阵 列的范围,同时控制列数不超过y,不然就break。然后我们for 子矩阵的行,从 1 到 r。这时候,如果我们之前把各行的元素和以及0的数量和,用前缀和统计好,会发...
2018-07-09 16:15:18 218
原创 hiho1515-调查分数 【带权并查集】
题意:给出整数N,M,Q。代表有N个同学,编号为1-N,M个信息,Q个询问。接下来有M行,每一行有三个整数x,y,s,表示x的分数比y大s。然后有Q行,每行给出x,y,询问x比y高几分,如果不可知,输出-1。题解:定义fa[i]为i的父亲,v[i]是i比父亲多几分。带权并查集,进行更新即可。#include<stdio.h>#include<algorithm>#inc...
2018-06-01 18:12:50 178
原创 【牛客网】【埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛】B—合约数【莫队做法】
题目链接:B—合约数题意:一棵树,有n个节点,从1编号到n。根节点的编号为p。给出每个节点的val[i]值,定义f(i)为以编号i为根节点的子树中(包括根节点),所有val[j]是合数并且是val[i]的约数的节点个数。求所有f(i)的和。答案对1e9+7取模。题解:学长说可以用set的启发式合并或者splay的启发式合并。emmm,我太菜了不会这些怎么写。我的做法是:预处理范围内的数字是否是合数...
2018-04-15 20:33:28 509
原创 【牛客网】【埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛】L—K序列【动态规划】
题目链接:L—K序列题解:for一遍数组,temp[i]表示:不包括当前for到的点,序列和为i的最长长度。然后for一遍0-k,对dp[ (j+num[i])%k ]进行更新,dp[j]是包括当前点的,序列和为j的最长长度。更新完dp之后再更新temp。复杂度是n*k,题目里说明了这个小于10的7次方。#include<iostream>#include<stdio.h>...
2018-04-15 18:46:39 512
原创 UVa12018 Juice Extractor ( DP )
原题链接:UVa12018 原题如下: Jerry loses himself in the interesting game: Fruit Ninja. Fruit Ninja is a game of iPhone and iPad in which the players cut the fruits coming from the bottom of the screen and ga
2017-10-07 21:07:39 441
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人