08 2017 档案

摘要:题意 我们这有一种仅由“(”,“)”和“?”组成的括号序列,你必须将“?”替换成括号,从而得到一个合法的括号序列。 对于每个“?”,将它替换成“(”和“)”的代价已经给出,在所有可能的变化中,你需要选择最小的代价。 思路 刚开始$?$全部看做$)$,然后从左到右扫一遍,发现$)$比$($多的时候,就 阅读全文
posted @ 2017-08-30 23:31 free-loop 阅读(390) 评论(0) 推荐(0)
摘要:题意 给出n个区间和m个区间,从这n个区间里选一个区间a,这m个区间选一个区间b,使得a&b的长度 c最大。 思路 如果这n个区间里有一个区间包含另一个区间,那另外一个区间就可以忽略掉,进行$O(nlogn)$去重之后,剩下的区间按左端 点递增的方式排序后的右端点一定也是递增的。 问题变成了对m个区 阅读全文
posted @ 2017-08-25 13:39 free-loop 阅读(211) 评论(0) 推荐(0)
摘要:题意 给出一个$n$个点$m$条边的有向图$(n,m直接的想法是对于每个点求一遍最短路,这样一共要跑n次最短路,时间复杂度$O(nmlogm)$。 考虑两个点集$S1$和$S2$之间的最短路,我们可以跑一次最短路求出来。 具体可以新建虚拟源点$s$和虚拟汇点$t$,$s$和$S1$的每个点之间连一条 阅读全文
posted @ 2017-08-22 22:48 free-loop 阅读(323) 评论(1) 推荐(2)
摘要:A.Parenthesis 括号匹配的问题有一种经典的做法。 将左括号看成1,右括号看成 1,做一遍前缀和sum。 括号序列是合法的当且仅当$sum[n]=Min(sum[1],sum[2]....sum[n])=0$时成立。 于是问题变成了交换两个括号后如何维护sum数组的值。 实际上交换a和b之 阅读全文
posted @ 2017-08-21 16:51 free-loop 阅读(274) 评论(0) 推荐(0)
摘要:C Make a Rectangle 从大到小贪心即可。 D Coloring Dominoes 就是个乘法原理。 cpp include using namespace std; const int N=200005; int vis[26]; char s[N]; struct Node{int 阅读全文
posted @ 2017-08-20 22:57 free-loop 阅读(170) 评论(0) 推荐(0)
摘要:A. H国的身份证号码I dfs裸题。 时间复杂度$O(n^k)$。 B.合并子目录 以 $/$为分隔符,对所有的文件夹进行hash后存入map,给每个文件夹的hash值分配一个id。 以这些id和文件夹的从属关系建树,那么只要$size[i]=1$就表示这个文件夹i可以和它的子文件夹合并。 时间复 阅读全文
posted @ 2017-08-20 18:17 free-loop 阅读(268) 评论(2) 推荐(0)
摘要:题意: 给你一个R C的棋盘,棋盘上的棋子会攻击,一个棋子会覆盖它所在的行,它所在的列,和它所在的从左上到右下的对角线,那么问这个棋盘上没有被覆盖的棋盘格子数。数据范围R,C,N include include include include include include include incl 阅读全文
posted @ 2017-08-16 19:10 free-loop 阅读(328) 评论(0) 推荐(1)
摘要:# include <cstdio> # include <cstring> # include <cstdlib> # include <iostream> # include <vector> # include <queue> # include <stack> # include <map> 阅读全文
posted @ 2017-08-15 23:44 free-loop 阅读(229) 评论(0) 推荐(0)
摘要:给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。每插入一个数字,我们都想知道此时最长上升子序列长度是多少? 由于序列是顺序插入的,所以当前插入的数字对之前的数字形成的最长上升子序列没有任何影响,所以只需要计算出当前的这个数字结尾的上升子序列长度。 由于 阅读全文
posted @ 2017-08-07 23:18 free-loop 阅读(383) 评论(1) 推荐(0)
摘要:飞飞国是一个N×M的矩形方阵,每个格子代表一个街区。然而飞飞国是没有交通工具的。飞飞侠完全靠地面的弹射装置来移动。每个街区都装有弹射装置。使用弹射装置是需要支付一定费用的。而且每个弹射装置都有自己的弹射能力。我们设第i行第j列的弹射装置有Aij的费用和Bij的弹射能力。并规定有相邻边的格子间距离是1 阅读全文
posted @ 2017-08-07 16:50 free-loop 阅读(312) 评论(0) 推荐(0)
摘要:给出一个n排列,每次可以选择相邻的两个数字放在新的排列首部,问最后形成的新的排列字典序最小是? 考虑新排列的第一个数字,则应是下标为奇数的最小数,下标不妨设为i。第二个数字应该下标大于i且为偶数的最小数,不妨设为j。 那么这样就将[1,n]新分割成了三个区间[1,i-1],[i+1,j-1],[j+ 阅读全文
posted @ 2017-08-07 00:30 free-loop 阅读(713) 评论(0) 推荐(0)
摘要:一个无向连通图,顶点从1编号到N,边从1编号到M。 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和。 现在,请你对这M条边进行编号,使得小 阅读全文
posted @ 2017-08-02 11:39 free-loop 阅读(207) 评论(0) 推荐(0)
摘要:一个显而易见的结论是,这种数字的值是单调递增的。我们修改一个数只会对这个数后面的数造成影响。考虑线段树划分出来的若干线段。 这里有两种情况: 1、某个线段中的最大值小于等于修改的数,那么这个线段的贡献为0,无需处理 2、否则我们将这个线段分成两个并单独考虑,如果左侧的最大值大于修改的数,那么是不影响 阅读全文
posted @ 2017-08-01 20:46 free-loop 阅读(179) 评论(0) 推荐(0)