自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Since_natural_ran

Have a pure heart to overcome everything .

  • 博客(19)
  • 收藏
  • 关注

原创 HDU 1754 (线段树)

题意: Problem Description 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。Input 本题目包含多组测试,请处理到文件结束。 在每个测试的第一行,有两个正整数 N 和 M ( 0#inclu

2017-04-27 16:31:12 212

原创 POJ 3468(树状数组 && 线段树)

题意: 给出n个数。有两种操作,分别是对对第i到第j个数全部加v,求出第i到第j个数之和。 思路: 基础的树形数组,不过最基础的树形数组是只能对一个数相加,对1~i之间求和,这 里不适用,所以要想办法,于是这里用了两个树形数组进行维护分别代表的是,原数 据的树形数组和,一个代表的是从i到n的增量,求和的时候需要从原数据的和+增量。#include <iostream>

2017-04-27 15:25:23 399

原创 POJ 2299 (树状数组)

题意: 给出n个数字,求出逆序数。思路: 树状数组能很容易的求出逆序数,不过前提是以数列本身当作数组C的下标。因为以数 组本身当作下标的时候每一次进行update和sum的时候都能找到前边比x小的数的个 数,这道题由于数组上界太大,无法开那么大的数组所以需要离散化,将原本的数字 排序后放入reflect中,其每一个数字的原来的位置不变,这样就能以位子作为数组下 进行

2017-04-27 10:19:25 355

原创 POJ 1611 (并查集)

题意: 有n个学生,编号0~n-1,现在有m个由学生组成的群体,群体里面有一个感染病的话 都感染,0是最初的感染源。思路: 最开始以为直接Find()就行了,把每一个群体的第一个人当作father,但是发现这 样会重合,使得被0感染的并且在其它群体的人找不到,后来发现直接按照群体来合并 这样最后直接找0在哪一个群体就行了。/*#include <iostream>#

2017-04-24 20:08:09 231

原创 POJ 2342 (树dp)

题意: 一个公司要开party,想要邀请很多人来,每一个人来都代表着有趣值,但是如果有两 人是直接上下级的关系,则不允许。求出最大funny值。思路: 关系是以树的形式给出,适合树dp。。。那么怎么想呢?考虑这种状态,一个人去, 则其直接子节点不去,如果他去,其直接子节点可去,可不去。 好吧!其实状态已经给出了。具体看代码。#include <iostream>#in

2017-04-23 19:05:51 291

原创 CF D. Kefa and Dishes (状态转移dp)

题意: 一个人去点餐从n种点出m种。每一种菜都会有一个满意度,并且他制订了k个规则 ,若a在b之前吃的话,会额外得到满意度。求出最大满意度。思路: 由于问题的规模不大(1 ≤ m ≤ n ≤ 18, 0 ≤ k ≤ n * (n - 1)),所以很明显要用到状态转移 dp,若何用呢?想到需要一个状态st表示菜的选择状态,i表示以第i种菜为结尾的最大 值,则遍历st的每一种

2017-04-23 18:47:37 411

原创 51nod 苹果曼和树 (树形dp)

汉语题: 苹果曼有一棵n个点的树。有一些(至少一个)结点被标记为黑色,有一些结点被标 记为白色。 现在考虑一个包含k(0 ≤ k < n)条树边的集合。如果苹果曼删除这些边,那么会将这 个树分成(k+1)个部分。每个部分还是一棵树。 现在苹果曼想知道有多少种边的集合,可以使得删除之后每一个部分恰好包含一个黑 色结点。答案对1000000007 取余即可。思路:

2017-04-23 15:37:12 587 2

原创 51 Nod 夹克老爷的愤怒

汉语题:能直接理解需要什么算法,但是对提高英语不太友好。思路: 这道题属于树形dp,之前写了一道树形dp 的题,以为不过如此,现在发现,太天真 因为基本每一道题的状态都不一样,而状态才是解题的关键。这里的状态是dp[x],表 示能为x 的上层根提供的家丁覆盖程度,我称它为渴望程度,如果为负数的话就是需 要的家丁长度,整数的话就是提供的家丁程度。那么状态的转移就是,从当前的状态

2017-04-23 10:55:37 358

原创 F. Palindrome

题意: 有n个字符,里面有?,可以表示任何字母,在满足m个约束条件的情况下, 求出有多少种可能,记得mod一个大数。思路: 重要的是要分情况,一个?在计算的时候,只能是1或者26种可能,所以 用并查集去区分它们。#include <iostream>#include <cstdio>#include <cstring>using namespace std;const i

2017-04-21 20:28:49 295

原创 HDU 4282 (比较厉害的 二分)

题意: 有一个式子: X^Z + Y^Z + XYZ = K,现在给出K,问有多少XYZ的组成方式, 注意条件:X < Y, Z > 1,0 < K < 2^31; 思路: 若想直接暴力解决,需要三重循环,铁超。。。所以现在能不能加速?二分可以, 需要提前准备,如果提前把X^Z和Y^Z的所有情况算出来,那么事半功倍,枚举 X^Z然后查找Y既可。天才般的想法。#in

2017-04-20 14:42:07 763

原创 Hrbust 1530 (二分)

题意: 我现在要举办一个聚会,食物是很多派,有F个人,问题是怎么把现有的派能完整的分 F+1个体积一样的小块。思路: 直接二分体积,不过要判断是否能分成F+1 注意点在于精度,L、R范围的确定,以及eps的精度是否足够。最开始就因为这些 细节而W两次。#include <iostream>#include <cstdio>#include <algorithm>us

2017-04-19 15:01:14 395

原创 Hrbust 1143 (bfs)

题意: 给出n*m的矩形地图,从一个原点出发找出小于等于原点的个数。思路: 其实可以用深搜去写这道题,不过可以练习一下bfs的写题思路,注意点就是原点 的判断(check)和细节,比如我经常把s,t写错。#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace s

2017-04-19 10:23:58 462

原创 poj 3111 (最大化平均值)

题意: 给出n个珠宝,现在让选出m个,使得v(和)/m(和)相除得到的数字最大。 输出选择的m个珠宝。**思路: 枚举v/m的最大值,用结构体保存珠宝的编号。输出答案既可。#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;const int

2017-04-16 19:00:34 422

原创 POJ 2976 (最大化平均值)

题意: 给出n个题的分数,给定n个二元组(a,b),删除k个二元组, 使得剩下的a元素之和与b元素之和的比率最大(比率最后乘100输出)though: a/b = max(m),可以化简为a-m*b ,当a/b最大的时候a-m*b <= 0,所以 二分m。找到精度足够小的解。#include <iostream>#include <cstdio>#include <cst

2017-04-16 18:49:12 397

原创 POJ 3258 (固定划分的最大距离)

题意: 有一条河,两边各看作有一块石头,河中有n块石头,总计n+2块石头,现在要去除 m块石头,怎么去除才能使得剩下的石头最近的距离最大。思路: 二分最小的距离,那么在判断条件的时候如果距离大于mid 时候就当作一个组。 难点在于,当num == m的时候还要继续去寻找。#include <iostream>#include <cstdio>#include <cstri

2017-04-13 14:32:17 305

原创 POJ 3273 (最大组最小值)

题意: 有n个花费,现在要分成m组,要求分好后的最大的一组的和尽可能的小。思路: 看到所求的问题肯定都会转不过来弯,其实想一想也很容易想到,m组是一定 要分的,分完之后肯定有一个组的和是最大值,现在我们就二分这个值。两个注意点上下界的问题,可以再输入的过程之中直接得到。判断mid是否可行的思路是找到当前的a[i]是否属于这个组,有个小于的条件,值得学习。 #include <

2017-04-13 13:32:16 368

原创 POJ 3904 (容斥定理)

题意: 给出n个数,输出能由4个数组成的最小公约数是1的总个数。思路: 很容易想到可以用总的组合数减去最小公约数不为一的数的个数。 但是该怎么求呢? 可以先求出每一个数能够被整除的因子,保存个数于count之中,那么剩下的就是 找出四个数因子不为1的组合个数。 比如:2的因子个数总和为a个,3有b个,6有c个。那么所求就是 ans = C(n,4) - { C

2017-04-12 11:36:33 584

原创 文章标题

题意: 给出N个点,M条路,求出从1到N 点的两条最短路的和最短,两条路径不能有重> 合的边。 思路: 按照一般的图论做题思路只能止步于最短路问题,但是这道题可以当作一道最 小费用流来写。从1到N走两次并且不能有重合的话,可以看作容量为2的网络 流问题,而路径的长度可以当作cost,这样就变成了最小流问题,这个做题方 式有两个很好的点: 1. 增广路 2

2017-04-09 20:23:59 206

原创 POJ 3281 (网络流)

题意: 有N头牛,F种食物,D种饮料,每种食物和饮料只能提供给一头牛。每头牛有自 己喜欢的饮料和食物。问最多有多少头牛能吃到自己喜欢的饮料和食物。思路: 一般的网络流是求出最大流量,并不能解决有两个选择的题。但是此题可以再 增加一排牛建图,这样可以用网络最大流解决。#include <iostream>#include <cstdio>#include <cstring

2017-04-01 22:56:16 311

空空如也

空空如也

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

TA关注的人

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