自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mfcheer

已搬家至:www.mfcheer.com

  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 hdu 5336 XYZ and Drops 【BFS模拟】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5336题意:给你一个r*c的网格,有的网格为空,有的有水,再给出一个爆炸点,从这个点向四周爆出四个水滴,若碰到水则融为一体,若碰到其他水滴直接跑过去互不影响,每秒可跑一格,若水中水滴数量超过4则爆开,问T秒后网格的状态是怎样的。代码:#include <stdio.h>#include <ctime>

2015-07-31 23:44:00 616

原创 hdu 5335 Walk Out【搜索】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5335 题意:给你一个n*m的0 1矩阵,要求你从(1,1)坐标开始走到(n,m)要求是的路径的上组成的01序列二进制表示最小,前导0可以忽略。思路:只能向下或右走,否则二进制表示长度增加,必然增大。首先找到从(1,1)能走到的最远的0是多远,从这个或这些点再向(n,m)走。注意:dfs会爆栈,要手动加栈

2015-07-31 19:39:32 477

原创 hdu 5323 Solve this interesting problem 【DFS】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5323题意:给你一个线段树区间【L,R】问你是否有线段树出现这个区间。有的话输出满足条件的最小的n。解法:暴力枚举区间代码:#include <stdio.h>#include <ctime>#include <math.h>#include <limits.h>#include <complex

2015-07-29 20:54:36 468

原创 解决爆栈,手动加栈!

解决爆栈最好的方法是改变写法,用BFS,或者用数组模拟栈。c++: 放在头文件前面#pragma comment(linker,"/STACK:1024000000,1024000000")

2015-07-29 17:13:08 2610

原创 hdu 5325 Crazy Bobo

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5325题意: n个点,每个点都有权值。n-1条边构成树。 求一个最大集合,使得集合中的所有点联通,且按照点的权值排列之后相邻两个点之间的路径上的点的权值都要比起点小。思路: 题目转化为以一个点作为权值最小点,以权值递增的规则看它能到达多少个点。 将无向图建成有向图,权值小的点指向权值大的点。 使

2015-07-29 17:02:41 705

原创 hdu 5318 The Goddess Of The Moon 【矩阵快速幂】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5318题意: 给你n种串。,每种无限个,选择m个物品,问你可以组成几种串。 如果a串的后缀和b串的前缀相等,并且长度>=2,则b串可以连在a串后面(注意,不用合并a,b串相同的位置)。思路:输入的字符串可能有相同的,注意去重。 若s[i],s[j]可以链接,则ok[i][j] = 1 ; 否则为 0

2015-07-29 15:04:34 486

原创 unique 函数 c++

一 unique函数 作用:从序列中“删除”所有相邻的重复元素。 既然是删除相邻的重复元素,所以要保证序列有序,用之前要把序列排序,调用sort()函数。在STL中unique函数是一个去重函数, unique的功能是去除相邻的重复元素(只保留一个),其实它并不真正把重复的元素删除,是把重复的元素移到后面去了,然后依然保存到了原数组中,然后 返回去重后最后一个元素的地址。注意,num的大小并没

2015-07-29 10:20:33 1148

原创 hdu 5317 RGCDQ

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5317题意:F[i]表示i的因子的数目。 询问区间 [L,R] 中 gcd(F[i],F[j]) (L<= i <= R,L<= j <= R)的最大值解法:用sum[i][j] 表示 前 i 个F值中有多少 j代码:#include <stdio.h>#include <ctime>#includ

2015-07-28 20:39:47 663 1

原创 hdu 5319 Painter

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5319题意:给你一个正方形,一把刷子,两种刷色法。 ‘ \‘ 表示沿对角刷成红色,“/” 表示沿对角刷成蓝色。蓝色红色交叉形成绿色; 问最少刷几次形成如图图案。解法:从上到下未被刷过就直接刷。代码:#include <stdio.h>#include <ctime>#include <math.h

2015-07-28 20:29:41 589

原创 hdu 5326 Work【并查集】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5326题意:n个点 ,给你m有向条边,表示起点是终点的父亲。问子孙节点个数是K的节点有几个?解法:并查集。代码:#include <stdio.h>#include <ctime>#include <math.h>#include <limits.h>#include <complex>#inc

2015-07-28 20:24:57 609

原创 Codeforces Round #312 (Div. 2) C

题目链接:http://codeforces.com/contest/558/problem/C题意: 有n个瓶子,每个瓶子都有相应的水的数量,瓶子的水量可以乘2或者除2,求出最少多少步骤可以使瓶子中的所有水相等。思路: 将所有瓶子可以到达的毫升数及其步数记录起来,得到可以n个瓶子都能到达的毫升数的最小步数。代码:#include <stdio.h>#include <ctime>#inc

2015-07-28 11:49:48 497

原创 hdu 3555 Bomb 【数位DP】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555题意:上一题是不要62 这个是“不要49”代码:#include <stdio.h>#include <ctime>#include <math.h>#include <limits.h>#include <complex>#include <string>#include <func

2015-07-27 16:30:54 537

转载 数位DP模板

通常的数位dp可以写成如下形式:int dfs(int i, int s, bool e) { if (i==-1) return s==target_s; if (!e && ~f[i][s]) return f[i][s]; int res = 0; int u = e?num[i]:9; for (int d = first?1:0; d <= u; +

2015-07-27 16:17:21 472

原创 hdu 2089 不要62 【数位DP】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089数位DP模板题,测试板子代码:#include <stdio.h>#include <ctime>#include <math.h>#include <limits.h>#include <complex>#include <string>#include <functional>#i

2015-07-27 16:14:55 568

原创 Lightoj 1122 - Digit Count 【DP】

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1122题意:给你m个数,选取n个数组成一个整数,使得整数各位的最大数与最小数的差小于2。问有几种选法?解法:DP。dp[i][j]表示以j结尾的i位整数的解法数目。 答案即为sum(dp[n][k] (1<=k<=9,且k在集合S中) )代码:#include <stdio.h>

2015-07-27 11:07:01 1611

原创 Codeforces Round #312 (Div. 2) B. Amr and The Large Array

题目链接:http://codeforces.com/contest/558/problem/B题意:给你一组数字。选择一个尽量短的区间,使其包含 数组中出现次数最多的元素的全部元素,求区间起始位置代码:#include <stdio.h>#include <ctime>#include <math.h>#include <limits.h>#include <complex>#inclu

2015-07-26 21:21:25 558

原创 hdu 5312 Sequence【数学推导】

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5312解法: 这个题看上去是一个贪心, 但是这个贪心显然是错的. 事实上这道题目很简单, 先判断1个是否可以, 然后判断2个是否可以. 之后找到最小的整数k (k > 2), 使得(m - k) mod 6 = 0即可.证明如下: 3n(n-1)+1 = 6(n*(n-1)/2)+1, 注意到n

2015-07-26 20:26:10 780

原创 c++ string 类的 ”数值转换“ 操作

实现标准库string和数值数据之间的转换。int a = 45;string s = to_string(a);//将整数转换为string表示形式double d = stod(s);//将字符转换为浮点数其他函数:stoi(s, p, b);//返回s字符串的整数表达的数值。依次为 int, long ,unsigned long, long long, unsigned long lon

2015-07-26 11:01:34 775

原创 poj 2337 Catenyms 【欧拉路径】

题目链接:http://poj.org/problem?id=2337题意:给定一些单词,如果一个单词的尾字母与另一个的首字母相同则可以连接。问是否可以每个单词用一次,将所有单词连接,可以则输出字典序最小的序列。代码: (bin 神的板子)#include <stdio.h>#include <ctime>#include <math.h>#include <limits.h>#inclu

2015-07-25 15:21:47 732

原创 Lightoj 1235 - Coin Change (IV) 【二分】

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1235题意: 有N个硬币(N<=18),问能否在每个硬币使用不超过两次的情况下支付正好K的面额。思路 : dfs构造出用这些硬币用前一半能支付的所有费用和后一半能支付的所有费用。之后排序,枚举前一半的每个面值在第二个里面二分寻找即可。(或者用set保存)。代码:(set)#incl

2015-07-25 11:14:50 689

原创 Lightoj 1127 - Funny Knapsack 【二分】

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1127题意:有n个物体(n<30)和一个容量为W的容器,问将容器不装满的放置物品的方式有多少种。思路 : 状态压缩+二分。将前n/2个物体看做一个整体,将剩下的看做一个整体。1<<(n/2)个状态代表前一半的物品使用情况,然后求出每一种状态的总的体积。排序。对于后面的那一半也是。答

2015-07-25 09:26:21 761

原创 Lightoj 1088 - Points in Segments 【二分】

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1088题意: 有一维的n个点和q条线段。询问每条线段上的点有多少个;思路:寻找这些点中对于每条线段的上下界即可。代码:#include <stdio.h>#include <ctime>#include <math.h>#include <limits.h>#include

2015-07-24 20:29:38 742

原创 Lightoj 1062 - Crossed Ladders【二分】

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1062题意: 两个梯子靠墙放,一个长度是x一个长度是y,它们交点到地面的距离是c。求这两个梯子底部的距离。思路:二分底部的距离t,往计算t’ ,根据t和t’的大小关系更新上下界即可。 设宽为mid,那么可以求得 c/sqrt( y^2 - mid^2 ) + c/sqrt( x

2015-07-24 19:50:32 704

原创 LightOJ 1048 - Conquering Keokradong 【二分】

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1048题意:有N 个数,将它们按顺序分成M份,M<=min(N,300)。使得每一份的和的最大值最小。有很多中情况,这些情况中第一天、第二天……的和最大的情况。思路 : 二分最大的和,得到一个数mid。判断是否符合条件。代码:(不能AC 实在是找不出来了,先放着)#include

2015-07-24 19:20:21 721

原创 hdu 5301 Buildings

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5301题意: n*m的矩阵,删除一个格子x,y。用矩形来填充矩阵。且矩形至少有一边是在矩阵的边缘上。求满足条件的矩形填充方式中面积最大的矩形,要使得该最大矩形的面积最小。解法见代码代码:#include <stdio.h>#include <ctime>#include <math.h>#inclu

2015-07-24 10:14:28 644

原创 hdu 5305 Friends 【暴搜】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5305题意:给一个无向图 , 每条边可以是online边也可以是offline边,问 有多少种方法使得每个节点的online边和offline边一样多解法:数据量不大,直接爆搜,记录每个点的度数,奇数的直接不可能,偶数的分成两个数组,c1[i]表示i的在线朋友数,c2[i]表示i的离线朋友数,然后一条边

2015-07-24 08:40:48 624

原创 Lightoj 1043 - Triangle Partitioning【二分】

题目链接:http://lightoj.com/volume_showproblem.php?problem=1043题意:一个三角形ABC,DE//BC,已知三角形ADE和四边形BDEC的面积的比,求AD的长度。解法:二分AD边即可代码:#include <stdio.h>#include <ctime>#include <math.h>#include <limits.h>#includ

2015-07-23 20:05:19 719

原创 lightoj 1138 - Trailing Zeroes (III)【二分】

题目链接:http://lightoj.com/volume_showproblem.php?problem=1138题意:问 N! 末尾 0 的个数为 Q 个的数是什么?解法:二分枚举N,因为0是由5×2 出现的,2的个数比5多故计算5的个数即可。代码:#include <stdio.h>#include <ctime>#include <math.h>#include <limits.h

2015-07-23 16:50:30 810

原创 Codeforces Round #313 (Div. 2) ABC

A http://codeforces.com/contest/560/problem/A 判断给出的数是否能组成所有自然数。水题int a[1010];bool b[1000010];int main(){ int n; while (scanf("%d", &n) != EOF) { memset(b,false,sizeof(b));

2015-07-23 01:19:38 741

原创 poj 3666 Making the Grade 【dp】

题目链接:http://poj.org/problem?id=3666题意:使得一个序列变为递增或递减序列的最小代价。代价为题中给的公式。解法:dp[i][j]表示前i个数,以num[j]为末尾的最小代价。 更新的时候枚举 j 转移状态:for (int i = 2; i <= n; i++) { int t = inf; for

2015-07-22 19:41:29 616

原创 士兵杀敌 三 【ST算法】

题目: 士兵杀敌(三) 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描述 南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比较,计算出两个人的杀敌数差值,用这种方法一方面能鼓舞杀敌数高的人,另一方面也算是批评杀敌数低的人,起到了很好的效果。所以,南将军经常问军师小工第i号士兵到第j号士兵中,杀敌数最高的人与

2015-07-22 18:30:48 706

原创 hdu 1078 FatMouse and Cheese【dp】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意:每次只能走 横着或竖着的 1~k 个格子,求最多能吃到的奶酪。 代码:#include <stdio.h>#include <ctime>#include <math.h>#include <limits.h>#include <complex>#include <strin

2015-07-22 17:31:07 688

原创 hdu 5289 Assignment 【ST算法】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5289 题意:求满足最大值减最小值小于k的区间的数目。 代码:#include <stdio.h>#include <ctime>#include <math.h>#include <limits.h>#include <complex>#include <string>#include

2015-07-22 13:11:23 856

原创 合法字符串 【动态规划】

字符串只有可能有A、B、C三个字母组成,如果任何紧邻的三个字母相同,就非法。求长度为n的合法字符串有多少个?比如: ABBBCA是非法,ACCBCCA是合法的。动态规划的思路——真的要枚举么? dp[i][0] : 长度为i的、最后两位不同的合法串的个数 dp[i][1]: 长度为 i的、最后两位相同的合法串的个数 递推: dp[i][0] = (dp[i-1][0] * 2 + dp[i-1

2015-07-05 03:16:44 1983

g++编译器for c++

g++编译器 c++ this is a program for C++

2014-10-24

空空如也

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

TA关注的人

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