导航

10 2016 档案

摘要:/* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给两行n个数,要求从第一行选取a个数,第二行选取b个数使得这些数加起来和最大。 限制条件是第一行选取了某个数的条件下,第二行不能选取对应位置的数。 思路: 比赛的时候一直在想如何dp。没有往网络流的方向多想想。赛后看到tag想了想,咦,费用流可做。 所以思路是最小费用最大流,dp如今都不知如何做。 将一个位置拆分成3个点,从超级源点分别到1... 阅读全文

posted @ 2016-10-26 22:07 tun~ 阅读(385) 评论(0) 推荐(0)

摘要:/* 大连热身E题 不要低头,不要放弃,不要气馁,不要慌张 题意: 在1000×1000的格子内有很多个炮弹中心,半径给定。 为某人能否从西部边界出发,从东部边界走出。 不能输出不能,能的话输出最北边的入口和出口的坐标。 思路: dfs乱搞题。把炮弹辐射范围连在一起的炮弹看作一个整体,记录下它围起来的边界区域。 然后找到最北边的输出。 */ #include using na... 阅读全文

posted @ 2016-10-26 21:58 tun~ 阅读(247) 评论(0) 推荐(0)

摘要:/* 大连热身D题 题意: 有n个人,m个浴室每个浴室有ai个喷头,每个人等概率得选择一个浴室。 每个浴室的人都在喷头前边排队,而且每个浴室内保证大家都尽可能均匀得在喷头后边排队。 求所有浴室中最长队伍的期望。 思路: 概率dp dp[i][j][k]代表前i个浴室有j个人最长队伍是k的概率。 枚举第i个浴室的人数。然后转移的时候其实是一个二项分布。 */ #include using ... 阅读全文

posted @ 2016-10-26 21:53 tun~ 阅读(275) 评论(0) 推荐(0)

摘要:/* 大连热身C题 不要低头,不要放弃,不要气馁,不要慌张 题意: 给一个城市路线图,给定起点给定终点。有n个货物从起点运送到终点。城市的边是无向边。 每个货物每天如果通过某条路,那么这天这条路只能运送这一个货物,另外一个方向也不得运送货物。 问最少需要多少天,使得起点的货物全部运送到终点。 思路: 按照天数将城市节点裂点。即第i天的某个节点。 枚举天数,不断重新构建网络,跑最大流。找到最小... 阅读全文

posted @ 2016-10-26 21:44 tun~ 阅读(361) 评论(0) 推荐(0)

摘要:/* 大连热身B题 不要低头,不要放弃,不要气馁,不要慌张 题意: 坐标平面内给很多个点,放置一个边长为r的与坐标轴平行的正方形,问最多有多少个点在正方形内部。 思路: 按照x先排序,然后确定x在合法范围内后按照y排序,进行扫描线。 */ #include using namespace std; bool vis[1050]; struct st{ void read... 阅读全文

posted @ 2016-10-26 21:37 tun~ 阅读(179) 评论(0) 推荐(0)

摘要:/* 大连热身A题 不要低头,不要放弃,不要气馁,不要慌张 题意: 给一棵树,每条边上有权值。给一个起点,放置n个机器人,要求使得任意一个节点至少被一个机器人经过。 每个机器人经过某条边时的代价为这条边的权值。反复经过需要反复累积。 问最小的代价是什么。 思路: 1.转化为背包问题。考虑给某个子树i个机器人的最小代价,即有i个机器人跑到某棵子树不回来。其中0个代表给某子树一个机器人,该机器人... 阅读全文

posted @ 2016-10-26 21:31 tun~ 阅读(193) 评论(0) 推荐(0)

摘要:/* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给一个无向图。现在要求给这个无向图的边加上方向。 定义f(x)为从x点出发能够到达的点的数目。 使得MIN(f(x))最大。 思路: 先tarjan找边双分量,然后从点数最大的边双分量开始dfs。 就酱。 中午老妈刚给我打电话问感冒没,我说没有,晚上就发烧了 gg */ #include #define N 400... 阅读全文

posted @ 2016-10-19 21:56 tun~ 阅读(321) 评论(0) 推荐(0)

摘要:/* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给n个插座,m个电脑。每个插座都有一个电压,每个电脑都有需求电压。 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整。 有无限个变压器供应。 问最多能使得多少个插座与电脑匹配,使得电压一致。 如果有多种方案,输出需要变压器总数最小的那种。 输出匹配数量 输出每个插座需要接多少个变压器。输出每台电脑匹配哪个插座。 思路: 贪心... 阅读全文

posted @ 2016-10-19 21:48 tun~ 阅读(340) 评论(0) 推荐(0)

摘要:/* 不要低头,不要放弃,不要气馁,不要慌张 题意: n天进行m科考试,每科考试需要a的复习时间,n天每天最多可以考一科。并且指定哪天考哪科。 注意考试那天不能复习。 问最少需要多少天可全部通过考试。 思路: 转化为判定性问题。二分天数。 然后贪心,在规定天数以内,最后一天通过即可。需要保证每一科最后一天之前剩下还没考试的科目都来得及复习。(同时注意要要加上考试时间) 最后还要判定是不是所有的... 阅读全文

posted @ 2016-10-19 21:37 tun~ 阅读(178) 评论(0) 推荐(0)

摘要:/* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给一棵有n个节点的树,每条边都有一个正权值,求一共有多少个点对使得它们之间路的权值和小于给定的k. 思路: 《分治算法在树的路径问题中的应用》 */ #include #include #include #include #define N 10050 using namespace std; struct edge{ int id... 阅读全文

posted @ 2016-10-13 15:24 tun~ 阅读(130) 评论(0) 推荐(0)

摘要:/* 不要低头,不要放弃,不要气馁,不要慌张 题意: 从(0,0)出发与x轴正方向呈45度角的射线,在给定的矩形区域内不断发射,直到射入矩形的某个角停止。 给出多个坐标,问光线最早经过某坐标的时间。 思路: 1.明确光线反射次数不会超过n+m次(好像是这样==没细想) 2.发现规律,光线要么是符合x+y=k,或者x-y=k的直线。而且每次反射都会变到不同类型的直线。 3.知道出发点,算出反射点。... 阅读全文

posted @ 2016-10-09 21:43 tun~ 阅读(255) 评论(0) 推荐(0)

摘要:/* 不要低头,不要放弃,不要气馁,不要慌张 题意:给你一个区间长度n和一个字符串,要求在字符串中选择一些symbol使得字符串的任意长度为n的子区间都存在至少一个symbol。 任意选取symbol,输出符合条件的symbol所有集合按照任意顺序排序的字典序最小的字符串。 思路: 1.明确 aaab 的字典序要小于aab。而aaab的字典序要小于aaabb。 那么假如从a到x(x是某个字母)全... 阅读全文

posted @ 2016-10-09 21:33 tun~ 阅读(309) 评论(0) 推荐(0)

摘要:/* 不要低头,不要放弃,不要气馁,不要慌张。 题意: 给一个n和m。 第二行给n个数。 每次操作可以把n个数中的任何一个数替代为别的数,问最少的操作次数使得1.2.3.4.5...m中的数出现的次数的最小值尽可能大。 输出这个数,输出最少操作次数,输出替换后的数组。 思路: 1.显然,最小值尽可能大,这个值是可以确定的,即n/m; 2.还有,为使得操作次数最少,我们发现最多有n%m个没有贡献的... 阅读全文

posted @ 2016-10-05 10:06 tun~ 阅读(378) 评论(0) 推荐(0)

摘要:/* 不要低头,不要放弃,不要气馁,不要慌张。 题意: 给n,m和k,n和m为所给矩阵的高和宽。k是要求最多剩下的湖的数量。 在所给的矩阵中,*代表陆地,.代表水。 湖的定义是一片连续的水(上下左右四个方向),并且水不含边界。 水含边界的情况被成为海。 问最少填多少湖的面积,使得湖的数量减少到k... 思路: 水dfs,记录有多少湖,并且记录每个湖的面积,然后排下序贪心就好。 坑: 做题一定别急... 阅读全文

posted @ 2016-10-05 09:47 tun~ 阅读(419) 评论(0) 推荐(0)

摘要:/* 不要低头,不要放弃,不要气馁,不要慌张。 题意: 给你一个有n个点,m条边的无向图,给每条边规定一个方向,使得这个图变成有向图,并且使得尽可能多的点入度与出度相同。 输出有多少个这样的点并且输出有向图。 思路: 1.针对每个连通分支。 2.所有点入度与出度相同,显然这是欧拉回路存在的判定定理,但是欧拉回路的另外一个等价定理是所有点的度数是偶数。那如果给我们的图中的某些点是奇数度该怎么办。 ... 阅读全文

posted @ 2016-10-05 09:40 tun~ 阅读(279) 评论(0) 推荐(0)

摘要:/* 题意: 不要低头,不要放弃,不要气馁,不要慌张。 PS:人生第一道自己独立做出来的树形dp... 给一棵树,标号1到n,每条边有两个权值,步行时间和驾车时间。车在1号点。 给m个必须访问的关键点,求从1号点出发,访问所有关键点一遍的最小时间。 注意车可以停在任意地方,但是只有1号点有一辆车,人最后也可以停留在任意点。 思路: 1.子树方向(注意dp1 dp2 dp4都是保证人一定要返回该点... 阅读全文

posted @ 2016-10-02 20:40 tun~ 阅读(247) 评论(0) 推荐(0)

摘要:/* 题意:给你一个有向无环图。给一个限定t。 问从1点到n点,在不超过t的情况下,最多可以拜访几个点。 保证至少有一条路时限不超过t. 思路: 1.由无后向性我们可以知道(取决于该图是一个DAG),这题一定可以dp。 2.dp[i][j]代表,到达点i,并且拜访了j个城市的最短时间。 wa点: 没有初始化数组中的0.. */ #include #define N 5050 using nam... 阅读全文

posted @ 2016-10-01 09:55 tun~ 阅读(442) 评论(0) 推荐(0)

摘要:/* 不要低头,不要放弃,不要气馁,不要慌张。 题意: 给一列数a,可以进行k次操作,每次操作可以选取任意一个数加x或者减x,x是固定的数。求如何才能使得这个数列所有数乘积最小。 思路: 贪心...讨论这列数中负数的个数,如果为偶数,那么把数列中绝对值最小的数使其往0的方向前进。 如果为奇数,同样选择绝对值最小的数,使其往背离0的方向前进。 道理很简单...自己写写就看出来了... wa点: 有... 阅读全文

posted @ 2016-10-01 09:48 tun~ 阅读(348) 评论(0) 推荐(0)

摘要:/* 题意:给定一个长度为n的序列a。 两种操作: 1.给定区间l r 加上某个数x. 2.查询区间l r sigma(fib(ai)) fib代表斐波那契数列。 思路: 1.矩阵操作,由矩阵快速幂求一个fib数根据矩阵的乘法结合率,A*C+B*C=(A+B)*C; 这样可以通过线段树维护某个区间2*1矩阵的和。 2.时限卡的紧...用我的矩阵乘法板子TLE了。所以把板子里边的三重循环改成手工公... 阅读全文

posted @ 2016-10-01 09:37 tun~ 阅读(888) 评论(0) 推荐(0)