摘要: 链接: http://poj.org/problem?id=3468 题解: 就是普通的线段树区间更新,区间求和 代码: 阅读全文
posted @ 2017-04-12 14:51 Flowersea 阅读(171) 评论(2) 推荐(1) 编辑
摘要: 链接: http://acm.hdu.edu.cn/showproblem.php?pid=1556 题解: 之前偷懒使用前缀和写的,最近要复习一下线段树,所以又用线段树写了一下 另外是时候修改一下自己的//head了 代码: 阅读全文
posted @ 2017-04-12 13:57 Flowersea 阅读(334) 评论(3) 推荐(2) 编辑
摘要: 链接: http://poj.org/problem?id=3977 题意: 给你n个数,n最大35,让你从中选几个数,不能选0个,使它们和的绝对值最小 如果有一样的,取个数最小的 题解: np难题,但是因为数据小,所以可以通过折半枚举求解 先枚举前一半的所有情况 用map记录下来, 然后在枚举后一 阅读全文
posted @ 2017-04-11 13:00 Flowersea 阅读(615) 评论(0) 推荐(1) 编辑
摘要: Problem A: 聪明的田鼠 题解: dp[k][i]表示走了k步,且在第i行的最大值 最后的结果就是走了n+m-2步,且在第n行的值 代码: Problem B: 软件安装 题解: 线段树区间更新,区间查询 代码: Problem C: V型积木 题解: 最长上升子序列,枚举每个最为最低点,分 阅读全文
posted @ 2017-04-10 19:48 Flowersea 阅读(3133) 评论(1) 推荐(3) 编辑
摘要: 四舍五入输出2.35 截断输出2.34 阅读全文
posted @ 2017-04-08 23:02 Flowersea 阅读(484) 评论(0) 推荐(1) 编辑
摘要: 链接: http://poj.org/problem?id=3422 题解: 关键是如何处理“只能获取一次”的问题,为此可以为每个点创建伪点,由两条有向边相连。原始点到伪点连一条容量为1,权值为负分数的边;原始点到伪点连一条容量为无穷,权值为0的边。前者表示分数只能拿一次,后者表示第二次第三次……可 阅读全文
posted @ 2017-04-04 19:48 Flowersea 阅读(196) 评论(3) 推荐(1) 编辑
摘要: D. Weird journey 链接: http://codeforces.com/contest/789/problem/D 题意: 给你一个双向路径图(可能不连通且存在自环,同样的边不会出现两次),n个节点,m条边,要求划出一条路径,使得其中(m-2)条边每条边走两次,另外两条边每条边走一次, 阅读全文
posted @ 2017-04-04 00:53 Flowersea 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 链接: http://poj.org/problem?id=3155 题解: 要最大化下式: 可以用二分求解以下分数规划问题: 也就是最大化: 设子图为G'=(V', E')。如果边(u,v)∈E',那么必有u,v属于V'。把点权设为负值的话,问题可以转换为求最大权闭合图(POJ 2987 Firi 阅读全文
posted @ 2017-04-03 20:03 Flowersea 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 1 const int MAX_N = 1; 2 int G[MAX_N][MAX_N]; 3 int v[MAX_N]; // v[i]代表节点i合并到的顶点 4 int w[MAX_N]; // 定义w(A,x) = ∑w(v[i],x),v[i]∈A 5 bool visited[MAX_N]; // 用来标记... 阅读全文
posted @ 2017-04-03 17:11 Flowersea 阅读(302) 评论(0) 推荐(1) 编辑
摘要: 现在有一个有向图,每个点有点权,点权可正可负。对于任意一条有向边i和j,选择了点i就必须选择点j,你需要选择一些点使得得到权值最大。 这个问题可以用网络流解决。 建图方法:对于任意点i,如果i权值为正,s向i连容量为其权值的边,否则i向t连容量为其权值的绝对值的边。原图所有边容量为正无穷。则最大权= 阅读全文
posted @ 2017-04-03 16:29 Flowersea 阅读(203) 评论(0) 推荐(2) 编辑
摘要: L2-001. 紧急救援 链接: https://www.patest.cn/contests/gplt/L2-001 题解: 用一遍dijkstra算法。设立num[i]和w[i]表示从出发点到i结点拥有的路的条数,以及能够找到的救援队的数目~~~当判定dis[u] + e[u][v] < dis 阅读全文
posted @ 2017-03-15 11:09 Flowersea 阅读(1738) 评论(0) 推荐(8) 编辑
摘要: D. Alyona and a tree 链接: http://codeforces.com/contest/740/problem/D 题解: 对于在v的子树中的u,dis(u,v)其实就是dep[u]-dep[v]<=a[u],移一下就是dep[u]-a[u]<=dep[v], 那么直接dfs下 阅读全文
posted @ 2017-03-09 19:48 Flowersea 阅读(142) 评论(0) 推荐(0) 编辑
摘要: D. Taxes 链接: http://codeforces.com/contest/735/problem/D 题解: 两个定理。三素数定理:大于2的奇数都可以拆成三个素数和的形式 哥德巴赫猜想:任一大于2的偶数都可写成两个质数之和。 然后,判断一下,如果n是奇数,n-2是素数,答案为2。 代码: 阅读全文
posted @ 2017-03-08 13:25 Flowersea 阅读(220) 评论(0) 推荐(0) 编辑
摘要: C. Hongcow Builds A Nation 链接: http://codeforces.com/contest/745/problem/C 题解: 先把联通块全都搞出来; 显然那些不是特殊的联通块全都加在一起然后和特殊联通块中点数最多的合在一起能够形成的边更多. 则加在一起就好; 设这个联 阅读全文
posted @ 2017-03-06 12:22 Flowersea 阅读(191) 评论(0) 推荐(0) 编辑
摘要: D. Chloe and pleasant prizes 链接: http://codeforces.com/contest/743/problem/D 题解: 对于每个以该点为子树的节点 他都有两种可能的取值 一个是dp[i],一个为 num[i] 。dp[i] 表示以该点为根的子树当中权值 最大 阅读全文
posted @ 2017-03-04 23:06 Flowersea 阅读(153) 评论(0) 推荐(0) 编辑