自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hdu 4509 湫湫系列故事――减肥记II

水题#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define ll __int64using namespace std;int ty[1450];int main(){ int n,

2014-01-28 16:11:44 992

原创 poj 3286 How many 0's? --- 数位dp

找找规律就可以#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define ll __int64using namespace std;ll a[12]={1LL,10LL,100LL,1000

2014-01-27 22:34:25 1028

原创 Codeforces 55D Beautiful numbers --- 数位DP

一个数能被它的所有非零数位整除,则能被它们的最小公倍数整除,而1到9的最小公倍数为2520,其中可以是最小公倍数的其实只有48个,先存下来,不然超内存。dfs中的 n 表示之前那些位的最小公倍数mod记录对2520取模的值,要直接拿一个很大的数对所有位的最小公倍数取模不现实,这里又用到了上次说的一个数论知识:如果两个数同余,那么对这两个数作任何相同运算,结果还是同余。#

2014-01-26 22:53:16 1234

原创 fzu 2113 Jason的特殊爱好 --- 数位dp

这题目名字起的真龊。。。#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define ll __int64using namespace std;ll dp[30][20],a,b,num[30];

2014-01-26 17:24:01 1158 5

原创 hdu 4734 F(x) --- 数位dp

dp[pos][n]表示值#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;int dp[20][200000],num[20];int f(int n){

2014-01-21 21:06:14 840

原创 uestc 1307 windy数 --- 数位DP

到底是什么oj啊 根本交不了啊谁帮我交下这题?#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;int dp[15][15];int solve(int n)

2014-01-21 15:07:36 836

原创 poj 2551 Ones

一个数论知识:如果两个数同余,那么对这两个数作任何相同运算,结果还是同余。#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;int main(){ int n

2014-01-21 14:55:16 855

原创 hdu 1160 || zoj 1108 FatMouse's Speed

水dp检查了几天 cmp函数写错了 给跪了#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;struct node{ int w,v,id;}m[101

2014-01-19 23:09:34 889

转载 dd大牛的《背包九讲》

P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便

2014-01-17 15:58:30 813

转载 C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法

1、cin 2、cin.get() 3、cin.getline() 4、getline() 5、gets() 6、getchar()附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车,空格等字符1、cin>>         用法1:最基本,也是最常用的用法,输入一个数字:#include  using nam

2014-01-12 11:01:15 644

原创 poj 2418 Hardwood Species --- 再来复习遍map吧

题目是统计字符串出现的频率,应该是用二分排序树做的吧。这里 8000多ms。。输入输出纠结死我了。。。再记一遍输入:map mapStudent;1、mapStudent.insert(pair(1, “student_one”));2、mapStudent.insert(map::value_type (2, “student_two”));3

2014-01-12 10:59:49 1060

原创 poj 2785 4 Values Whose Sum is 0 --- 二分

原来比赛做过这种题给四列数,要求每列中取一个,求四个数的和为0。因为每列数的个数比较大,四次方太大,所以先合并成两列,再从两列数中找和为0的,这里就可以先排个序,然后二分来找。#include #include #include #include #include #include #include #include #include #defin

2014-01-12 10:39:16 783

原创 zoj 1153 Tournament Seeding

太纠结了这题题意:n个人淘汰制比赛,从最厉害到最差水平的人分别编号1~n定义一场比赛强度为两个比赛者的编号之和,理想强度是尽可能让比赛强度最小,比赛顺序、对手依据此编排。给出比赛强度m,求m最早可能出现在哪一轮比赛。(最下为第一轮,决赛为上取整logn轮)方法:比赛顺序和对手是一定的,按题目要求使比赛强度最小,预处理很重要。match[i]表示 i 选手初始在第

2014-01-11 23:44:42 996

原创 poj 2796 Feel Good

应该是用单调栈解决用l[i] r[i] 存i点向左和向右比i点的值大的最多能到哪个位置也就是 i 点所求的区间就是 l[i] 到 r[i]再枚举每个点 求出符合题意的最优解#include #include #include #include #include #include #include #include #include #define inf

2014-01-11 21:16:41 811

原创 zoj 1088 System Overload

就是个约瑟夫环问题原来可以直接套公式也#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;int n,m;int check(){ int i,

2014-01-11 21:10:44 995 1

原创 ural 1500 Pass Licenses --- 状态压缩dfs

这方法真好啊。。有n个点,m条路,k个执照,每条路都属于一些执照(拥有指定执照才能走)求从0走到1 最少需要哪些执照 枚举 1到1对每一种组合dfs  取二进制中1最少的解咯代码很简洁 但熟练运用二进制总是需要多多练习的事。。#include #include #include #include #include #include

2014-01-10 14:21:42 926

原创 zoj 1019 Illusive Chase --- dfs

永远都看不清楚nx ny#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;int dx[]={0,0,-1,1};int dy[]={-1,1,0,0};

2014-01-10 14:08:26 875

原创 poj3262 Protecting the Flowers --- 简单贪心

贪心的题目首先要把所求的量用已知的变量表示出来简单的基本题一般有两个变量,再根据两个变量的关系对 结果的影响,写出排序的条件本题中,对于cow[i],在 j 时刻的时候,该牛要消耗:2*∑Tj*Di而影响顺序的值就是 d 和 t 的比率,比较好想,百度一下也有证明的博客#include #include #include #include #includ

2014-01-10 14:05:55 860

原创 zoj1076 Gene Assembly

笑死我了。。想知道这题什么意思么~ 就不告诉你~关键:对所有外显子按结尾位置排序#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;struct node{

2014-01-09 16:08:27 947

原创 poj 3544 Journey with Pigs---贪心

每头猪在某个村庄的单价都是固定的。真是无法理解贪心中的条件按什么方法去处理。这个处理好重要啊 好难感受啊。。其次是如何取得最大的收益,显然 收益=∑w*cost根据。。“不等式排序是这样的:假设有两个数列,a1 可得,此题中要求的显然是顺序和。分别排序后对号入座就是了。#include #include #include #incl

2014-01-09 15:14:46 867

原创 poj3134 Power Calculus---迭代加深dfs

可以用迭代加深思想的题目,一般是一个要用bfs的思想,但由于分支解太多,而所求解一定会在浅层出现,所以可以对层数递加,dfs该层是否找得到解。#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3fusin

2014-01-09 11:35:46 1043

原创 poj2376 Cleaning Shifts

也是贪心 不过这道随便想想就明白了。。按起点先后排序,第一个点肯定要选,每次在上一个的终点或者终点+1为起点的点里面选一个终点最远的。#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3fusing namesp

2014-01-09 11:31:50 873

原创 poj2393 Yogurt factory

超水贪心可惜我还是没领悟好这种思想题意:n天,每天要输出y个,每个花费c。存储的话每个每天花费s。正因为这个s是固定的,所以每天每个花费minc=min(c,s+minc)#include #include #include #include #include #include #include #include #inclu

2014-01-09 11:28:55 935

原创 hdu2337 Escape From Enemy Territory---二分bfs+预处理

题意:地图中有一些点危险,要从起点走到终点,且离危险点最近的距离最大,求出此时的最短路径。思路:bfs,重点是如何处理要使离危险点的距离最大,直观的想法是对 离危险点的距离的所有可能从小到大都尝试下,能求得通路的解里面,离危险点距离最大的情况就是正确解。因此,可以对地图上每个点到危险点的距离预处理一下。在尝试通路的过程中,可以用二分的方法来取这个离危险点的距离,感觉很好

2014-01-08 21:27:31 978

原创 poj 2676 数独 ---dfs

每行 每列 每个小九宫格里 某个数字是否存在 记录下来#include #include #include #include #include #include #include #include #include using namespace std;int r[10][10],c[10][10],s[10][10],ma[10][10],zero;

2014-01-08 21:17:44 827

原创 AOJ0118 Property Distribution 裸dfs

Descriptionタナカ氏が HW アールの果樹園を残して亡くなりました。果樹園は東西南北方向に H×W の区画に分けられ、区画ごとにリンゴ、カキ、ミカンが植えられています。タナカ氏はこんな遺言を残していました。果樹園は区画単位でできるだけ多くの血縁者に分けること。ただし、ある区画の東西南北どれかの方向にとなりあう区画に同じ種類の果物が植えられていた場合は、区画の境界が分からないの

2014-01-08 11:33:09 981

原创 poj3009 Curling 2.0---bfs

#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;int ans,a[25][25],sr,sc,er,ec,n,m,step;int dx[]={1,-1,0,0};int

2014-01-08 11:30:52 901

原创 poj3187 Backward Digit Sums---dfs暴力枚举

这题感觉我的方法真的好死。。其实也可以用next_permutation函数全排列一遍 很方便 写出来也漂亮#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;int

2014-01-08 09:55:46 861

原创 poj2718 Smallest Difference

把10个以内的个位数组合成两个数 使差最小看起来就可以暴力。。这里用了一个 next_permutation函数这是一个求一个排序的下一个排列的函数,可以遍历全排列要注意的是,必须从最小字典序开始,才能所有情况都遍历完#include #include #include #include #include #include #include #

2014-01-07 18:09:26 898

原创 poj2064 Gap---bf

给一个4*8的矩阵,求移动到目标状态的最小次数。每次操作可以将一个数换到空格处,这个数只能是 值等于空格左边+1的那个数,而且不能是*7+1.有点像规则略有不同的拼图游戏,bfs的思路很好想,每个图有四种移动的可能(四个0的地方可以变换),记录下来,依次与目标状态比较就可以得到结果了但重点是 状态怎么存呢。。于是这里参考胖富帅的状态压缩思想,把这个矩阵给hash一下但是

2014-01-07 16:26:08 872

空空如也

空空如也

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

TA关注的人

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