摘要:题意:有一个输入序列,每次操作要把b[i]插入到第a[i]个,在第a[i]个后面的要后移,问最后序列。 n<=200000 思路:顺序来只能用splay维护 考虑倒序,对于插入到第K个位置,在线段树二分第K个0的位置,类似于主席树 将其插入后将这个位置修改为已经有数 单点修改
阅读全文
摘要:题意: 生物课上我们学到,DNA序列中只有A, C, T和G四种片段。 经科学发现,DNA序列中,包含某些片段会产生不好的基因,如片段”ATC”是不好片段,则”AGATCC”, “CATCAA”, “ATCATC”都是不好的DNA序列,这些不好片段我们可以称为病毒片段。 现在已知m个病毒片段, 然后
阅读全文
摘要:题意: 生物课上我们学到,DNA序列中只有A, C, T和G四种片段。 经科学发现,DNA序列中,包含某些片段会产生不好的基因,如片段”ATC”是不好片段,则”AGATCC”, “CATCAA”, “ATCATC”都是不好的DNA序列,这些不好片段我们可以称为病毒片段。 现在已知m个病毒片段, 问长
阅读全文
摘要:题意:给出一个矩阵前i列所有元素的和,和前j行所有元素的和,求这个矩阵解压以后的原型。(答案不唯一) n,m<=20,1<=a[i,j]<=20 思路:这道题把边上的流量作为原先矩阵中的点 把每一行,每一列都看成一个点 S——>i行 a[i]-m i行——>j列 19 j列——>T b[i]-n 跑
阅读全文
摘要:题意: 有n个队伍,两两都有比赛 知道最后每支队伍获胜的场数 求最多有多少队伍,他们战胜了所有获胜场数比自己多的队伍,这些队伍被称为SK N<=50 思路:把每个队伍和它们两两之间的比赛都当做点,判断最大流是否满流即可 S——>队伍 a[i] 队伍 ——>比赛 1 比赛——>T 1 i号队伍是SK:
阅读全文
摘要:题意: Blinker最近喜欢上一个奇怪的游戏。这个游戏在一个 N*M 的棋盘上玩,每个格子有一个数。每次 Blinker 会选择两个相邻的格子,并使这两个数都加上 1。现在 Blinker 想知道最少多少次能使棋盘上的数都变成同一个数,如果永远不能变成同一个数则输出-1。 Blinker最近喜欢上
阅读全文
摘要:题意: 来自n个不同国家的代表开会,每个国家代表数为ci 会场有m张圆桌,每张桌子可容纳mi人 不希望有同一个国家的代表在同一张桌子上就餐 设计一个合法方案 (n,m<=300) 思路:最大流,保存原边上限,与残余网络比较是否有所变动即可。 【问题分析】 二分图多重匹配问题,可以用最大流解决。 【建
阅读全文
摘要:题意:在一棵N个节点,有边权的树上维护以下操作: 1:单边修改,将第X条边的边权修改成Y 2:区间取反,将点X与Y在树上路径中的所有边边权取反 3:区间询问最大值,询问X到Y树上路径中边权最大值 n<=10000 CAS<=20 思路:做了2天,改出来的一刻全身都萎掉了 边权转点权,点权就是它到父亲
阅读全文
摘要:题意:给定N个字符串,如果A串的最后两个字母跟B串的前两个字母相同它们就能连接。 求一个由字符串组成的首尾相连的环,使(字符串总长度/字符串个数)最大。 n<=100000 len<=1000 思路:SPFA国家队论文题 赋所有dis[i]=0,跑最长路,如果某个元素入队次数超过点数就说明有正环。
阅读全文
摘要:题意:见题面(我发现自己真是越来越懒了) 有N*M的矩阵,每个格子有一个值a[i,j] 现要求将其中的K个点(称为关键点)用格子连接起来,取(i,j)的费用就是a[i,j] 求K点全部连通的最小花费以及方案 n,m,k<=10 思路:斯坦纳树 虽然去年就疑似过了一道裸题,不过估计也是COPY的std
阅读全文
摘要:题意:见题面 思路:设dp[i,sta,k]为前i个人已经吃完,从第i人到第i+b[i]人的吃饭状况是sta,前一个吃完的人离i的距离是k(可能为负)的最小值 \[ dp[i+1,sta>>1,k-1]=min(dp[i+1,sta>>1,k-1],dp[i,sta,k]) (sta and 1=1
阅读全文
摘要:题意:要求在N个数的序列中支持以下操作: 1:将第X个元素加上Y 2:询问当前K大值 n<=30000,m<=50000 思路:树状数组套主席树 Tyvj又炸了,还不知道对不对
阅读全文
摘要:题意:见题面 思路:http://www.cnblogs.com/chenyushuo/p/5139556.html 必须交换b1,b2做第二次最大流的原因: 假如一个a1到b2的一个流和b1到a2的一个流分别经过了一个桥的两个端点(u,v),如图 我们就可以将a1到b2的流量改为经过u-v-a2-
阅读全文
摘要:题意:给定一棵树,每个点有权值,每条边有边权(单向边)。你可以选取K个黑点,使得从每个点移动到距离他最近的黑点的花费(距离*点权)的总和最小。 n<=100 k<=50 w[i],a[i]<=10000 思路:见IOI2005龙凡解题报告 为什么要多叉转二叉?因为假设点U被选,这个被选点只会对U自己
阅读全文
摘要:题意:求0/1背包的前K优解总和 k<=50 v<=5000 n<=200 思路:日常刷水 归并即可,不用排序
阅读全文
摘要:题意:在一个有m*n 个方格的棋盘中,每个方格中有一个正整数。现要从方格中取数,使任意2 个数所在方格没有公共边,且取出的数的总和最大。试设计一个满足要求的取数算法。 n,m<=30 思路:如果将棋盘黑白点染色,可以发现相邻的黑白点不能同时取 将源点到黑点连一条容量为黑点数字的边,黑点到相邻白点连容
阅读全文
摘要:题意:给出一个n*n的矩阵,每一格有一个非负整数Aij,(Aij <= 1000) 现在从(1,1)出发,可以往右或者往下走,最后到达(n,n),每达到一格,把该格子的数取出来,该格子的数就变成0, 这样一共走K次,现在要求K次所达到的方格的数的和最大。 n<=50,k<=10 思路:费用流 将每个
阅读全文
摘要:题意:有N个人要从A个物品中各取一个,B个物品中各取一个,选取第i个A类物品和第j个B类物品的费用是(a[i]-b[j])^2 求最小总花费 n<=a,b<=80 a[i],b[i]<=10000 思路:第一题费用流 由源点到每个A类物品连容量为1,费用为0的边 每个B类物品到第一个汇点连容量为1,
阅读全文
摘要:题意:一次舞会有n个男孩和n个女孩。每首曲子开始时,所有男孩和女孩恰好配成n对跳交谊舞。每个男孩都不会和同一个女孩跳两首(或更多)舞曲。 有一些男孩女孩相互喜欢,而其他相互不喜欢(不会“单向喜欢”)。每个男孩最多只愿意和k个不喜欢的女孩跳舞,而每个女孩也最多只愿意和k个不喜欢的男孩跳舞。 给出每对男
阅读全文
摘要:题意:将一个由0,1,2构成的矩阵里的1与2全部分割最少需要选取多少条边 n,m<=100 思路:裸的最小割模型 相邻的格子连容量为1的边(其实可以少连很多遍,1与1,2与2之间的边是没有意义的) 由源点到所有1连容量为oo的边,2到汇点连容量为oo的边 最小割即是答案
阅读全文
摘要:题意:有N个物品,承重上限为M,有K组物品互斥关系,互斥关系有传递性,即1与2互斥,2与3互斥,1与3也互斥 给出每个物品的花费和价值,求承重上限内的最大价值总和 n<=1000,m<=1000,k<=1000 c[i]<=1000 w[i]<=10 思路:日常刷水 因为互斥关系有传递性,并查集后就
阅读全文
摘要:题意:有一棵树,树有边权,有若干次询问,给出一些点,求: 1.这些点互相之间的距离之和 2.点对距离中的最大和最小值 n<=1000000 q<=50000并且保证所有k之和<=2*n 思路:感谢Gold_7 建立虚树,在上面树形DP即可 最大值和最小值用了一种精妙的写法来保证是最值+次值 终于会写
阅读全文
摘要:题意: 在一个n*n个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示。棋盘上某些方格设置了障碍,骑士不得进入。 对于给定的n*n个方格的国际象棋棋盘和障碍标志,计算棋盘上最多可以放置多少个骑士,使得它们彼此互不攻击。 n<=200,m<=n^2 思路:经典的二分图最大独立集,采用黑白点染
阅读全文
摘要:题意:一棵N个点的树上有若干个关键点,每条边有一个边权,现在要将这些关键点到1的路径全部切断,切断一条边的代价就是边权。 共有M组询问,每组询问有k[i]个关键点,对于每组询问求出完成任务的最小代价。 对于100%的数据,2<=n<=250000,m>=1,sigma(ki)<=500000,1<=
阅读全文
摘要:转载自http://blog.csdn.net/jzhang1/article/details/50528549#comments 膜拜 原题大意:给出一个序列A,f(i) = sigma(A(j)) 其中j是i的子集(即i&j==j),数列从0开始,保证序列长度为2的整数次幂。 我们把这个想成2*
阅读全文
摘要:题意:有一棵N个点的树,每个点有一个点权a[i],要求在线实现以下操作: 1:将X号点的点权修改为Y 2:查询X到Y的路径上第K大的点权 n,q<=80000 a[i]<=10^8 思路:此题明显地体现了我对主席树理解不深 树上路径K大可以直接用树剖+二分答案+树做 但DFS序+主席树也可以 对于点
阅读全文
摘要:题意:给定一个N个数的序列,要求维护一个数据结构支持以下两种操作: 1:将第X个数改成Y 2:查询第X到第Y个数里第K小的数是多少 n,m<=10000,a[i]<=10^9 思路:单点修改版本的主席树 对于没有修改的主席树,我们直接在对应的节点上每个点继承上个点的状态,再用链表创建logn个点来表
阅读全文
摘要:题意:有N个数对(a[i],b[i]) 每次可以把(x,y)变成(x+a[i],y+b[i])或(x+b[i],x+a[i]),后者称为交换一次 求使abs(x-y)最小时的最小交换次数 n<=1000 1<=a[i],b[i]<=6 思路:设dp[i,j]为前i个数对,使x-y=j时的最小交换次数
阅读全文
摘要:题意:有NA个A与NB个B两种任务需要完成,完成一段长度为X的A任务需要时间ta+ka*x*x,B任务类似,连续的同一种任务不能分成两段运行 有P台可以并行运算的计算机,求最快完成所有任务的时间 1≤nA≤60,1≤nB≤601≤nA≤60,1≤nB≤601≤p≤201≤p≤201≤tA≤1000,
阅读全文
摘要:题意:给一棵n个节点的树,每个节点开始有一个苹果,m次操作 1.将某个结点的苹果数异或 1 2.查询一棵子树内的苹果数 n,m<=100000 思路:最近一段时间在思考树上统计问题的算法 发现询问一棵子树中信息的问题一般都是DFS序+线段树或BIT维护 树上两点之间的查询一般都是树剖维护 比如说这题
阅读全文
摘要:题意:给一个长度为n的序列a。1≤a[i]≤n。m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2。如果存在,输出这个数,否则输出0。 n,m≤500000 思路:这题可以用主席树巧妙地做 询问(x,y)区间时直接输出a[query(x,y)] 首先区
阅读全文
摘要:题意:有n个数组成的序列,要求维护数据结构支持在线的下列两种操作: 1:单点修改,将第x个数修改成y 2:区间查询,询问从第x个数到第y个之间第K大的数 n<=100000,a[i]<=10^9 思路:一年前写过的第一道主席树,现在有了更深的理解 最朴素的想法是设t[i,j]为i时刻[1..j]的个
阅读全文
摘要:题意:有一颗树,1号点为根,保证编号小的点深度较小,初始状态每条边都没有被标记,要求实现两个操作在线: A:将连接x,y的边标记 W:查询从1到x的路径上有多少条边未被标记 n<=2*10^5 思路:本题的特殊性质: 1.一次只标记一条边且没有重边 2.直接求1到x的路径,不用LCA 记录i点在DF
阅读全文
摘要:题意:给出一棵有根树,树上每个点、每条边都有一个权值。 现在给出“控制”的定义:对一个点u,设点v在其子树上,且dis(u,v)≤av,则称u控制v。 要求求出每个点控制了多少个点 n (1 ≤ n ≤ 2·105). (1 ≤ ai ≤ 109) 1 ≤ pi ≤ n, 1 ≤ wi ≤ 109)
阅读全文
摘要:题意:在靠近南极的某处,一些企鹅站在许多漂浮的冰块上。由于企鹅是群居动物,所以它们想要聚集到一起,在同一个冰块上。企鹅们不想把自己的身体弄湿,所以它们在冰块之间跳跃,但是它们的跳跃距离,有一个上限。 随着气温的升高,冰块开始融化,并出现了裂痕。而企鹅跳跃的压力,使得冰块的破裂加速。幸运的是,企鹅对冰
阅读全文
摘要:题意:由于人类对自然的疯狂破坏,人们意识到在大约2300年之后,地球不能再居住了,于是在月球上建立了新的绿地,以便在需要时移民。令人意想不到的是,2177年冬由于未知的原因,地球环境发生了连锁崩溃,人类必须在最短的时间内迁往月球。现有n个太空站处于地球与月球之间(编号1..n),m艘公共交通太空船在
阅读全文
摘要:题意:有一张平面图,求它的最小割。N,M.表示网格的大小,N,M均小于等于1000. 左上角点为(1,1),右下角点为(N,M).有以下三种类型的道路 1:(x,y)<==>(x+1,y) 2:(x,y)<==>(x,y+1) 3:(x,y)<==>(x+1,y+1) 思路:第一眼看就是一个最小割=
阅读全文
摘要:题意:在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地就积聚了一潭水。这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间。因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没的烦恼(不用担心,雨水会流向附近的一条小溪)。作为一名一流的技师,农夫约翰已经在每条排水沟的一端
阅读全文
摘要:题意: Kiana最近沉迷于一款神奇的游戏无法自拔。 简单来说,这款游戏是在一个平面上进行的。 有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形如y=ax^2+bx的曲线,其中a,b是Kiana指定的参数,且必须满足a<0。 当小鸟落回地面(即x
阅读全文