07 2019 档案
摘要:题意:要完成一个由s个子项目组成的项目,给b(b>=s)个部门分配,从而把b个部门分成s个组。分组完成后,每一组的任 意两个点之间都要传递信息。假设在(i,j)两个点间传送信息,要先把信息加密,然后快递员从i出发到总部,再加 密,在到j点。出于安全原因,每次只能携带一条消息。现在给出了道路网络、各个
阅读全文
摘要:题意:给定N,表示N堆石子,每堆石子数为a[],问多少个区间,可以满足“石子总和若为偶数,那么可以两两取来自不同堆的石子,直到取完; 如果为奇数,那么排除其中一个,然后可以两两取来自不同堆的石子,直到取完”。 思路:结论是,如果一个区间的区间和大于等于区间最大值的两倍,则这个区间合法。 考虑分治,我
阅读全文
摘要:题意:给定一个N个节点的树,1<=N<=50000 每个节点都有一个权值,代表商品在这个节点的价格。商人从某个节点a移动到节点b,且只能购买并出售一次商品,问最多可以产生多大的利润。 思路:路径压缩,得到每个点到当前根的信息,然后更新即可。 有可以用倍增做。 很久前抄的代码。
阅读全文
摘要:发现一个神奇的东西,做两次高维前缀和,可以反演回来。。。。可能我没抓住高维前缀和的用法吧。 https://www.cnblogs.com/chenhuan001/p/5800917.html http://vfleaking.blog.uoj.ac/blog/87
阅读全文
摘要:题意:给定一棵树,有点权a[],有边权。 现在有M次修改点权的操作,输出每次修改后,Σ(a[i]^a[j])*dis(i,j); 思路:因为待修改,我们需要快速得到以及修改一个点到其他所有点的信息。 肯定就是动态点分治了啊。 而异或这个操作没有什么累加的性质,所以每一位拆开单独计算。 根据二进制位置
阅读全文
摘要:题意:二维平面上给你N颗星,给出星星的坐标,亮度; 然后给你一个W*H的窗口,问你最大的亮度和。 思路:扫描线,假设有一个inf*H的窗口,按照y排序,那么就把H范围内的星星放入了这个窗口(单调队列实现),现在就成了华东窗口问题,在一维数组里面找长度为W的窗口的最大和,但是现在带修改,单点修改,固定
阅读全文
摘要:题意:外卖员开始在0号节点,有N个人点了外卖,(N<=10),现在告诉两两间距离,问怎么配送,使得每个人的外卖都送外,然后回到0号点的总时间最短,注意,同一个点可以多次经过。 思路:TSP问题(货郎担问题),可以通过状态DP解决小数据问题。 先floyd求一下两两最近距离,然后DP; dp[i][j
阅读全文
摘要:题意:给你n个寺庙,m个村庄,p条路,现在你要在这n+m个位置中选出若干个位置打井,每个位置打井的费用会告诉你,同时p条路也有修建费用,现在每个寺庙都住着一个和尚,问你最小的费用让这n个和尚都能喝上水。 思路:可以对照之前做的MST题目(https://www.cnblogs.com/hua-don
阅读全文
摘要:题意:有K种珍珠,每种N颗,求长度为1~N的项链,包含K种珍珠的项链种类数。N<=1e9, K<=30; 思路:矩阵快速幂,加个1累加前缀和即可。
阅读全文
摘要:题目连接:https://www.luogu.org/problemnew/show/U60884 题意:有N个点,标号为1∼N,用N−1条双向带权通道连接,保证任意两个点能互相到达。 Q次询问,问从编号为x的点到达标号L∼R的点其中一个点的最小距离是多少。 说明 :N,Q<1e5,边权<1e4;
阅读全文
摘要:题意:给定N个点,求最小圆覆盖的圆心喝半径。保留10位小数点。 N<1e5; 思路:因为精度要求较高,而且N比较大,所以三分套三分的复杂度耶比较高,而且容易出错。 然是写下增量法吧。 伪代码加深记忆: 那么代码的核心就是三点求外接圆 三点求外接圆: 两边求中垂线交点。
阅读全文
摘要:题意:给定N点M边的无向连通图,每条边有两个权值(g,s)。 给定G,S。 让你给出一组(g0,s0)使得图中仅留下g<=g0, s<=s0的边之后,依然连通,并求Gg0+Ss0的最小值。 n<=200,m<=50000。 思路:枚举g0,求最小的s0,满足生成MST。 把边按g排序,一条边一条边的
阅读全文
摘要:题意:给你n个工作集合,给你T的时间去做它们。给你m和s,说明这个工作集合有m件事可以做,它们是s类的工作集合(s=0,1,2,s=0说明这m件事中最少得做一件,s=1说明这m件事中最多只能做一件,s=2说明这m件事你可以做也可以不做)。再给你ci和gi代表你做这件事要用ci的时间,能获得gi的快乐
阅读全文
摘要:题意:给两种宝石,体积S1,S2,价值V1,V2,背包容量n,求最大收益。 所有数据都在32位整数范围内。 思路:只有两种物品的背包,显然不是常见的背包,应该从背包之外的思路下手。 1:可以猜想其中一个是数量少于1e5,暴力求,然后过了。 2:分类处理数据: 如果有物品体积>=sqrt(N),那么可
阅读全文
摘要:题目:在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i]。 不幸的是,这片土地常常发生地震,并且随着时代的发展,城市的价值也往往会发生变动。 接下来你需要在线处理M次操作: 0 x k 表示发生了一次地震,震中城市为x
阅读全文
摘要:题意:一个序列被称作是不无聊的,当且仅当,任意一个连续子区间,存在一个数字只出现了一次,问给定序列是否是不无聊的。 思路:每次找到一个只出现了一次的点,其位置的pos,那么继续分治[L,pos-1],[pos1+1,R];为了保证分治的复杂度,每次的复杂度应该是拆开后较小的哪个。 可以类比启发式合并
阅读全文
摘要:题意:有N个牧场,每个牧场修水井花费Wi,连接牧场花费Pij,问最小花费,使得每个牧场要么有水井,要么和有水井的牧场有通道。 思路:加一个格外的节点O,连接O表示修井,边权是修井的费用。 那么这N+1个点求最MST即可。 刘同学想到的解法: 先找到修井费用最低的的牧场,然后和上面一样,由于最低的那个
阅读全文
摘要:题意: 给定长度为N的海滩,然后有M做防御塔,给出每座塔的位置Xi,到海岸的距离Yi。 求防御塔上最小观测半径Ri,使得海滩被封锁。 思路:要使左边界和右边界连通。 很nice,可以二分+并查集做。 可以最小生成树做。 可以最短路做。 MST代码: #include<bits/stdc++.h> #
阅读全文
摘要:题意:有N种化学元素,有M种转化关系,(u,v,L)表示化学物质由u变为v需要L能量,现在你有E能量,问最多有多少种不同的途径,使得1转为为N,且总能量不超过E。 思路:可以转为为带权有向图,即是求前K(K未知)短路,满足前K短路的边权和小于等于E,求K。 BZOJ上面提交的时间和空间都还不错。但是
阅读全文
摘要:题意:给定一个5*5的棋盘,上面有白马给妈给12匹,以及一个空格。问是否能在15步内有给定棋盘转移到目标棋盘。 如果可以,输出最小步数。 否则输出-1; 思路:由于步数比较小,我们就直接不记录状态vis[]用BFS求了。 直接搜索(即可能会多次走到同一状态)。 减枝1:f()=g()+h(),g是当
阅读全文
摘要:题意: 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50,个数不超过65。 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度。 给出每段小木棍的长度,编程帮他找出原始木棍的最小可能长度。 思路:搜索+减枝。 至于复杂度,很难计算,反正疯狂
阅读全文
摘要:之前用VS,先是完成了GLUT库下的opengl使用; 然后得知GLUT有些过时,又按照教程接触了GLFW库下,反正对我来说是有些复杂。 今天正式试一试用VS来写ACM的题目,发现不能定义string? 一直改,才发现头文件应该是<string>而不是<cstring>; 那么如果我想用<bits/
阅读全文