自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 GCD HDU - 5726

点击打开链接第一问区间gcd好求 难在第二问要求整个序列有多少个区间的gcd与之相等网上很多用rmq做的 整体复杂度是n*(log(n)^3) 这个做法用线段树就会被卡时间首先要知道 两个数求gcd 除非两数相等 否则只会越来越小且至少变小2倍 满足一定单调性 先说网上的rmq做法线性枚举确定一个左端点l 再向右找一个右端点r 使这个区间的gcd等于左端点出的数值 即[l,...

2017-12-20 17:54:45 470

原创 New Year Tree CodeForces - 620E

点击打开链接看了题解才懂系列..利用dfs序将树形结构化为线性结构 先序遍历一棵树得到的序列中每个父节点之后紧跟的都是其子节点 只要知道每个节点有多少子节点 就知道了需要修改的区间的范围剩下的就是状态压缩了 60种颜色用longlong存即可 #include <bits/stdc++.h>using namespace std;#define ll long...

2017-12-19 16:00:15 215

原创 Weak Pair HDU - 5877

点击打开链接dfs遍历到每一个点 u 时 dfs序列中存的就是这个点的所有祖先 v 了 我们只需要知道有多少祖先的值 per[v] 小于 k/per[u] 而这个功能用线段树实现即可还有就是需要离散化 先将所有 per[i ]与 k/per[i] 存入数组 然后排序去重 以此数组的值建立线段树(也可通过map建立映射关系) 详见代码 #include <stdio.h&gt...

2017-12-19 10:44:07 182

原创 Radar Installation POJ - 1328

点击打开链接以每个岛屿为中心 以d为半径做圆 圆与x轴相交部分即是想要覆盖这个岛屿时雷达位置的可选区间贪心策略就是以每个区间的右端点向右扫(记为p) 即假设雷达站建在这个区间的最右端 在满足覆盖当前岛屿的条件下 尽量为覆盖其后岛屿创造有利条件如果p够不到下一个区间 就说明需要新建雷达站 更新p值如果p能够到 就看当前这个区间的右端点是不是比p要小      如果比p小 考虑到我

2017-12-16 19:23:11 154

原创 New Year Snowmen CodeForces - 140C

点击打开链接感觉是个贪心 贪心策略就是每次选剩下个数最多的三个数 就是连续取最大堆三个堆顶#include using namespace std;struct node{ friend bool operator < (node n1,node n2) { return n1.val<n2.val; } int id; in

2017-12-16 17:27:48 174

原创 Travelling HDU - 3001

点击打开链接对状压dp一直不是很懂 之前学过的区间、背包等 都是在面对一个未知的高阶状态时 从已知的状态来推出 而状压dp则是通过一个已知的状态来优化其他相对高阶的状态(或者说松弛)在这道题中 dp[pre[i]][i]==0 是已知条件 用类似于最短路的方法从状态0遍历到pre[n+1]-1 来优化(松弛)其他状态强行解释一下发现每个当前遍历到的状态都是已经被之前的状态优化过的 ...

2017-12-09 21:26:04 263

原创 Unbearable Controversy of Being CodeForces - 489D

点击打开链接这题真是看你敢不敢想 纯暴力数据量再小一点的话就用反向建边 可达矩阵相乘也行#include using namespace std;struct node{ int v; int next;};node edge[30010];int first[3010],book[3010];int n,m,num;void addedge(

2017-12-09 11:05:08 207

原创 昂贵的聘礼 POJ - 1062

点击打开链接的确是道好题 考验建图能力把可交换的价格看作边权 如果a物品可以用b物品加c金币换到 就建一条从a到b且权值为c的边其实不管怎么买卖 手中的东西始终只有一个 所以从各个物品到水晶球与从水晶球到各个物品其实含义一样 反向以水晶球为起点就好跑完最短路后 dis[i]就代表 开始先买i物品 一路买卖交易 直到换取酋长水晶球 然后用所有dis[i]+val[i](物品本身价值)...

2017-12-06 20:03:26 153

原创 F(x) HDU - 4734

点击打开链接这道题应该把dp[i][j]定义为a的权值减去高i位的加权值后是j的情况下有多少可行解 这样每一次a和fa值都不同 但不影响dp[i][j]的正确性如果只是简单的把dp[i][j]定义为高i位的加权值是j的情况下有多少可行解那么每换一个样例都要初始化一次 必然T。。因为只知道高位权值的情况下 不知道与a的权值还相差多少 而a在每个样例中都是不一样的#include...

2017-12-06 19:01:22 323 1

原创 King POJ - 1364

点击打开链接首先需要保证图的连通性。。比如0点(此代码中以0为起点)与其他点都不连通 而图中又有负环 这时就会判不到负环这道题关心的是整个[0,n]区间 任何一个地方出现负环就说明不合要求 #include &lt;stdio.h&gt;#include &lt;queue&gt;#include &lt;cstring&gt;#include &lt;algorith...

2017-12-04 19:03:00 224

原创 Save your cats Aizu - 2224

点击打开链接题意大致是 给一些点和一些边 问怎么样用最小的代价 去掉一些边 来使图中无回路求最大生成树即可 生成树以外的边之和即位所求记得离散数学里是这么说的 对树上任意两点加一条边就会构成圈 所以使图只剩一颗树(当然图本身也可能不连通)就是我们的目标 #include &lt;bits/stdc++.h&gt;using namespace std;struct no...

2017-12-03 18:27:29 248

原创 Redundant Paths POJ - 3177

点击打开链接边双连通分量模板 两个版本第一个改自kuangbin模板 第二个自己xjb写的 感觉点与边双连通分量都没必要写单独的模板 求出割点与割边再dfs就好 #include &lt;stdio.h&gt;#include &lt;stack&gt;#include &lt;cstring&gt;#include &lt;algorithm&gt;using name...

2017-12-02 22:00:26 221

原创 The Shortest Path in Nya Graph HDU - 4725

点击打开链接还是看了题解才懂。。这道题考的就是抽象建图的思维能力有n个顶点 挂在不同的层上 不同层之间的定点可互达 同层顶点互不相干 除非有特殊边相连接一开始暴力建图 先按层数把顶点排序然后二分加边 T了。。后来想把层抽像出来 层与层,层与该层上的顶点,不同层的顶点 都建双向边  但这是完全错误的 这样会使同层顶点全部可以通过抽象的层顶点连接了 并且第i层与第i+2和第i-2层...

2017-12-02 13:06:24 165

原创 Marriage Match IV HDU - 3416

点击打开链接这个题也是看了题解才想到要用最短路和网络流结合的。。题目要求每次只能走最短路 意思不是走一次最短路就把这条路径删除 然后再找新的最短路即原图的次短路  而是仍然找一条和最开始的最短路长度一样的路径这样所有构成最短路的边都是可以确定的反向建图 dis1[n]代表从起点ss到每个点的最短距离 dis2[n]代表从终点ee到每个点的最短距离 对于一条边edge[i] 如果di...

2017-12-02 09:17:55 197

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除