导航

04 2016 档案

摘要:题意: 让你输出长度为n的某个序列,然后给你m个变量。 每次给某个数赋值的代价是 假设赋值a=7那么代价是3,因为7的二进制位中有3个1。 要求最后总代价最小。 输出总共要进行操作的次数,和最小代价。 先吐槽下,早期的cf题很多没有官方题解,只找到两篇中文题解...第一篇完全没搞懂大神再说什么。建图 阅读全文

posted @ 2016-04-28 15:06 tun~ 阅读(400) 评论(0) 推荐(0)

摘要:题意: 给你一棵有n个节点的树,树的边权都是1. 有m次询问,每次询问输出树上所有节点离其较近结点距离的最大值。 思路: 1.首先是按照常规树形dp的思路维护一个子树节点中距离该点的最大值son_dis[i],维护非子树节点中距离该点的最大值fa_dis[i]; 2.对于每个节点维护它最大的三个儿子 阅读全文

posted @ 2016-04-25 20:58 tun~ 阅读(345) 评论(0) 推荐(0)

摘要:题意: 给你n个数,让你从中选一个子集要求子集中的任何两个数相加都是质数。 思路: 一开始把自己坑了,各种想,后来发现一个简单的性质,那就是两个数相加的必要条件是这两个数之中必定一个奇数一个偶数,(除了含有1 集合以外,1+1等于2也是质数)。 考虑两种情况,有1存在和1不存在这两种。 很显然1存在 阅读全文

posted @ 2016-04-22 16:18 tun~ 阅读(310) 评论(0) 推荐(0)

摘要:题意: 第一行n m代表n个点m条无向边。 接下来m行每行abc,代表ab之间有一条长度为c的无向边。 求: 最小生成树的边权和 次小生成树的边权和 阅读全文

posted @ 2016-04-22 13:10 tun~ 阅读(179) 评论(0) 推荐(0)

摘要:题意: 秦始皇要建路,一共有n个城市,建n-1条路连接。 给了n个城市的坐标和每个城市的人数。 然后建n-2条正常路和n-1条魔法路,最后求A/B的最大值。 A代表所建的魔法路的连接的城市的市民的人数的和,B 代表n-2条正常路的长度的和。 思路: 这题是次小生成树的变形,所谓次小生成树的核心应该是 阅读全文

posted @ 2016-04-22 12:20 tun~ 阅读(128) 评论(0) 推荐(0)

摘要:题意: 有n个点和m条边,让你从1出发到n再从n回到1,不要求所有点都要经过,但是每条边只能走一次。边是无向边。 问最短的行走距离多少。 一开始看这题还没搞费用流,后来搞了搞再回来看,想了想建图不是很难,因为要保证每条边只能走一次,那么我们把边拆为两个点,一个起点和终点,容量是1,权重是这条路的长度 阅读全文

posted @ 2016-04-21 19:31 tun~ 阅读(201) 评论(0) 推荐(0)

摘要:恢复内容开始 题意略。 这题在poj直接求最小费用会超时,但是题意也没说要求最优解。 根据线圈定理,如果一个跑完最费用流的残余网络中存在负权环,那么顺着这个负权环跑流量为1那么会得到更小的费用。 关键是坑在找环的起点。其实看了代码之后发现的确不难... 恢复内容结束 阅读全文

posted @ 2016-04-21 18:36 tun~ 阅读(238) 评论(0) 推荐(0)

摘要:题意略; 思路: 这题比较坑的地方是把每种货物单独建图分开算就ok了。 阅读全文

posted @ 2016-04-20 18:24 tun~ 阅读(136) 评论(0) 推荐(0)

摘要:题意: 最多有2000组测试样例,每组样例代表n,m; n代表要把蛋糕平分的份数,m代表必须进行多少次操作。 一共有三种操作 1.竖切 经过蛋糕圆心,将蛋糕整个向下切。 2.横切 平行于蛋糕平面进行平切。 3.复制某块小蛋糕 这种操作只能在1和2所有操作都进行完才能进行。 求: 最少进行多少次复制操 阅读全文

posted @ 2016-04-20 12:15 tun~ 阅读(175) 评论(0) 推荐(0)

摘要:思路: 把房子和人看成点,加上源点和汇点。 源点和每个人连容量为1,权值为0的边。 每个人和每个房子连容量为1,权值为距离的边。 每个房子和汇点连容量为1,权值为0的边。 阅读全文

posted @ 2016-04-19 12:01 tun~ 阅读(262) 评论(0) 推荐(0)

摘要:题意: 卡卡有一个矩阵,从左上角走到右下角,卡卡每次只能向右或者向下。矩阵里边都是不超过1000的正整数,卡卡走过的元素会变成0,问卡卡可以走k次,问卡卡最多能积累多少和。 思路: 最小费用最大流的题目。 建图自己没想出来,看了大神的建边,把每个点分解成两个点,一个代表进入一个代表出去,然后每个进入 阅读全文

posted @ 2016-04-18 21:48 tun~ 阅读(147) 评论(0) 推荐(0)

摘要:#include #include #define MAXN 1003 #define MAXM 10002*4 #define INF 10000000 using namespace std; //起点编号必须最小,终点编号必须最大 bool vis[MAXN]; //spfa中记录是否在队列里边 struct edge{ edge *next... 阅读全文

posted @ 2016-04-18 20:35 tun~ 阅读(178) 评论(0) 推荐(0)

摘要:VJ上可找到中文题意。 思路: 首先分解有多少2与多少5.接下来就是dp。 分两次,一次是根据2的数量贪心,另外一次是根据5的数量贪心,看哪一次乘积的末尾0最少。 需要注意的是两点: 1.输入有0的情况,要判断你的ans是不是大于1如果大于1那么输出一条经过0的路径即可。 2.当根据2的数量贪心进行 阅读全文

posted @ 2016-04-17 17:10 tun~ 阅读(159) 评论(0) 推荐(0)

摘要:题意: 给点数n和边数m。 接下来m条有向边。 a b c d 一次代表起点终点,下界上界。 求: 判断是否存在可行流,若存在则输出某可行流。否则输出IMPOSSIBLE 思路: 《一种简易的方法求解流量有上下界的网络中的网络流问题》 阅读全文

posted @ 2016-04-14 19:53 tun~ 阅读(205) 评论(0) 推荐(0)

摘要:恢复内容开始 题意: 给了n个点,m条有向边。 接下来m行,每条边给起点终点与容量,以及一个标记。 标记为1则该边必须满容量,0表示可以在容量范围内任意流。 求: 从源点1号点到终点n号点的最小的可行流。 思路: ge 1.二分最小可行流【是复杂度偏高的一种】 《一种简易的方法求解流量有上下界的网络 阅读全文

posted @ 2016-04-14 19:45 tun~ 阅读(197) 评论(0) 推荐(0)

摘要:题意: cas //测试数据组数 n m //行数 列数 a1 a2 ... an //每行的和 b1 b2 ... bn //每列的和 q //操作数量 //接下来q行 a b >/</= c //若a为0则表示一整列,b为0表示一整行,否则a代表第几行,b代表第几列,操作表示选中区域或者某个元素 阅读全文

posted @ 2016-04-13 19:29 tun~ 阅读(241) 评论(0) 推荐(0)

摘要:题意: m n //有m个猪圈,n个人卖猪。 a1...am //编号为i的猪圈里有ai头猪。 b1 c1...cb1 d1 //第i个人有bi把钥匙,分别是ci猪圈的,其它猪圈里的猪都是锁着的 他最多买di头猪 . . . bn c1...cbn dn 注意的是假如某买主有第一和第二个猪圈的钥匙, 阅读全文

posted @ 2016-04-11 19:52 tun~ 阅读(130) 评论(0) 推荐(0)

摘要:题意: k c m 分别代表挤奶机数量,牛数量,和挤奶机容量。 接下来(n=k+c)n*n的矩阵A,代表挤奶机或者牛的距离,如果对角线都为0,如果非对角线没有直接路相连也为0。 1 <= K <= 30 1 <= C <= 200 1 <= M <= 15 0<=Aij<=200 求:在机器不能过载 阅读全文

posted @ 2016-04-11 18:44 tun~ 阅读(207) 评论(0) 推荐(0)

摘要:struct Edge { int v,c,f,nx; Edge() {} Edge(int v,int c,int f,int nx):v(v),c(c),f(f),nx(nx) {} } E[MAXM]; int G[MAXN],cur[MAXN],pre[MAXN],dis[MAXN],gap 阅读全文

posted @ 2016-04-11 14:18 tun~ 阅读(182) 评论(0) 推荐(0)

摘要:题意: 输入数据n,m。n代表工厂的数量,m代表城市的数量。 接下来n+m行为工厂和城市的坐标。 规定如图所示方向刮风,工厂的air会污染风向地区的air。 注意,工厂和城市的坐标表示的是从x到x+1从y到y+1之间小正方形都是工厂区域,规定如果只有一个coner的air被污染那么该地区视为无污染。 阅读全文

posted @ 2016-04-09 19:23 tun~ 阅读(151) 评论(0) 推荐(0)