自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

笔记

个人笔记,欢迎交流!

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

原创 hdu1300

题意:每种等级的钻石价格不同,需求不同,如果要买这种需要额外加10个这个单价的手续费,可以用更高级的钻石代替。思路:开始想成背包问题,以为选择是每个每个,复杂度n^2*sum太高了,仔细想想 对于当 前这种钻石要么不买要买就买所有+10手续费,n^2,恩,就是这样!#include #include #include #include #include #include #

2015-12-27 16:00:25 604

原创 UVA10391 Compound Words

题意:在一堆单词里找满足有其他两个单词复合而来的单词。思路:直接找。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #i

2015-12-26 19:49:10 383

原创 UVA10763

题意:n个国家的学生要去别的国家学校交换,给出a,b,来自哪个国家,要去哪个国家,问这个方案是否可行。思路:转换图里关系,a要去b,则a->b +1 b->a -1,看最后整个图是不是为0#include #include #include #include #include #include #include #include #include #include #i

2015-12-26 19:15:50 287

原创 UVa 10935 - Throwing cards away I

题意:票数大于二的时候,取第一张牌抛弃,再取一张放在牌底。输出抛弃的顺序,再输出剩下的一张。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

2015-12-26 17:29:54 274

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

比赛做了一题,想第二题的时候,困睡着了,第二天补三题。A. Saitama Destroys Hotel题意:从最高层下楼,每到一层楼,有时间限制,没到对应的时间不能往下走,每下一楼是一秒。开始想复杂了,还对每层楼的楼层排序....其实都不用,直接对每层楼取满足条件值就可以。#includeusing namespace std;int main(){ int n,s

2015-12-24 20:14:36 475

原创 hdu 1158 Employment Planning

题意:一个公司 ,每个月需要工人数是不定的,第一次租,使用一个月,解雇有三个不同的费用,问最小花费是。 典型的dp,定义dp[i][j]前i个月有j个员工的最小花费。 推一下每个月到下个月状态转移的可能,取最小就好。#include<bits/stdc++.h>using namespace std;const int inf=0x7fffffff;int dp[15][1010],a[1

2015-12-23 15:02:19 340

原创 hdu1978 How many ways(好题 %)

题意:一个棋盘规则是,你从1,1位置开始数字是几代表你能走几步,在这个范围内的点都是你可以作为停下来的终点,前提只能向右或向下走,问到n,m一共有多少种走法。 常见有两种状态定义,1:定义dp[i][j]为从i,j出发到n,m有多少种路线,这个顺序就要逆序,所以选择记忆化搜索。#include <fstream>#include <iostream>#include <string>#inc

2015-12-20 21:08:02 473

原创 hdu1494(好题 DP%)

http://acm.hdu.edu.cn/showproblem.php?pid=1494题意:跑跑卡丁车的背景,每一圈被分n段跑,没跑完一段积累20%能量,能量满了变换一个加速卡,最多两张卡,多了会爆同时能量变成0,卡不变。每一段用加速卡和不用加速卡的时间分别给你,问整场跑下来最小时间,就是求最优时刻用加速卡,每个状态转移的关系很清晰,很明显动态规划可以一做。最初做这题对dp状态定

2015-12-20 20:49:24 559

原创 hdu1058 & hdu3199

这两题算同一类型,都是给你几个素数,问只能由这几个素数当做因子的数排列一下,第多少个是? 整体思想都是用已生成的序列是构造新的数。 hdu1058题意:一个数的因子只能是2,3,5,7 ,满足这样条件的数叫humble数,问第多少个是多少。 和紫书上一道丑数 题意近乎一模一样,开始做法就是用优先队列和set判重(后来发现也可以不需要借用set判重)#include <fstream>#inc

2015-12-19 14:15:52 538

原创 hdu2072 单词数

STL大水题 ,注意切割字符串#include<bits/stdc++.h>using namespace std;set<string>dict;int main(){ string s,buf; while(getline(cin,s)) { dict.clear(); stringstream ss(s); while(ss>>bu

2015-12-18 13:36:19 356

原创 hdu1421 搬寝室

题意:有n个物品,选k对求他们差的平方和最小。 思路:贪心容易想到,先排序,相邻的差最小,再根据转移方程 决定这一对选或不选。 定义dp[i][j] 前i个物品选j对出来的 最小值。 有 dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(a[i]-a]i-1])^2)#include <fstream>#include <iostream>#include <st

2015-12-18 13:33:18 275

原创 HDU2870 Largest Submatrix

题意:一个二维字符段,有w x,y,z,a,b,c,a,其中w 可以变成a,b,x可以变成b,c,等..问最大相同矩阵是多大思路:所有可能变成字母有三种,a,b,c,依次求最大矩阵,hdu1505,hdu1506 的增强。#includeusing namespace std;char M[1010][1010],nw[1010][1010];int s[1010][1010],l[

2015-12-18 11:16:20 273

原创 hdu2845 Beans (%)

题意: 选择某个点后,这个点相邻两点和上下两行都不能选了,问最后选得数之和 最大可能。 开始没想到怎么是dp,是看别人的题解(心塞) 思路:先考虑每一行,由于相邻不可取,从左往右可以推出 转移方程 dp[i]=max(dp[i-2]+a[i],dop[i-1]); 把每一行最后一列的一竖列考虑成一行,是一样的规律,相邻的不能选,所以同理对每行也是这个转移方程。#include <f

2015-12-17 01:31:54 357

原创 HDU2844:Coins

题意:有n个不同价值的硬币,每种有Mi个,问能组成多少个小于等于m的不同数字。 思路:典型多重部分和问题,时间复杂度O(n*W),给你n个不同大小的数,每种各Mi个,判断这些数字之间选出若干使它们的和存在之类的…. 搜题解发现很多人用多重背包,又写一遍,当做复习。#include <fstream>#include <iostream>#include <string>#include <

2015-12-17 00:09:36 354

原创 hdu 2577 How to Type (动态规划 入门好题)

题意:给你一个字符,有大写小写,你模拟键盘打字母的操作,可以shirft变换当前字母,可以开CapsLock灯,最后需要关掉。 因为有两个操作,需要两个维度表示状态转移。 定义:二维 dp[i ][2] ,前i个字母对应当前是 0,1操作 的最小操作。 所以有对应的状态转移方程:(见代码) 有一个细节写错了,dp[i][1]=min(…,dp[i-1][1]+2) 而不是3,这里意思是当前大

2015-12-16 21:12:13 597

原创 hdu2159 FATE

题意:升一级还差n经验,最多m忍耐度,有k种怪物,每种怪物最多s个,每杀一个怪物得到a经验,消耗b忍耐度。 题意:开始当做简单的一维背包问题,把忍耐度当做背包容量,经验当做背包价值,简单认为 杀多少怪都会体现在忍耐度上变化。w了很久,查题解,发现这是典型的二维费用背包问题。 背包九讲并没有看完。。。二维费用的背包问题是指:对于每件物品,具有两种不同的空间耗费,选 择这件物品必须同时付出这两种代

2015-12-16 00:55:22 426

原创 hdu1203 I NEED A OFFER!

题意:每个大学有一个概率选上,问至少有一个大学录取最大概率。 变形01水题。 注意一点,n==0&&n==0 输入结束#include <fstream>#include <iostream>#include <string>#include <complex>#include <math.h>#include <cstdlib>#include <set>#include <ve

2015-12-16 00:17:54 265

原创 hdu1069 Monkey and Banana

题意:每个箱子有长宽高,只有满足上面的箱子长和宽都比下面的小,才能放,问能将所有符合条箱子高度拼成最大是,对所有按照长宽排个序, 再是裸地最大子段和。#include <fstream>#include <iostream>#include <string>#include <complex>#include <math.h>#include <set>#include <vector

2015-12-16 00:14:02 312

原创 hdu1176 免费馅饼

题意: 在一条线上一个人最初在5点,美妙只能向两边移动一个位置,给你每个时间段掉馅饼的个数,问最后可以接到多少个馅饼。 一个变形的数塔问题,最上面是一个顶点,每个时间是一层转移。#include <fstream>#include <iostream>#include <string>#include <complex>#include <math.h>#include <set>#

2015-12-15 23:57:52 233

原创 hdu 1506

hdu1506 加强版 hdu1506是在一维找一各最大矩阵,这题在二维平面找一个最大矩形,思路 枚举每一行,找最大矩形。用刚学会dp,舍弃单调栈思想。for(int i=1;i<=n;i++){while(a[l[i]-1]>a[i]) l[i]=l[l[i]-1];}#include <fstream>#include <iostream>#include <string>#in

2015-12-15 13:26:46 538

原创 hrbust oj 2287 Bridge(最大上升子序列变形)

水题题意:给你每座桥的坐标和权值,问每座桥不能相交,但端点可以重复,问最多有多少座桥和在这种情况下最小花费。思路:对x,y排个序,就是求最大不递减子序列(端点可以取),稍微变形一下,在数量相同的桥里选择,费用最小的。详细看代码。#include #include #include #include #include #include #include #inclu

2015-12-14 16:14:12 414

原创 hdu1505 City Game

hdu1506 加强版  #include <fstream>#include <iostream>#include <string>#include <complex>#include <math.h>#include <set>#include <vector>#include <map>#include <queue>#include <stdio.h>#include

2015-12-13 21:48:56 324

原创 poj1002(map水题 )

给你一些字符,统一转化成电话号码,放在map 输出他们个数。 string 时间TLE char 过了#include <fstream>#include <iostream>#include <string>#include<cstring>#include <complex>#include <math.h>#include <set>#include <vector>#inc

2015-12-12 17:33:11 731

原创 FZU 2150

前言:邝斌搜索专题遗留题 题意:‘#’ 表示草’.’ 表示空地,火烧草每一秒向四周蔓延,不能跨过空地,同时从图上两个地方点火,问最小需要多少时间烧完,不能烧完输出-1. 数据,刚好合适枚举任意两个点,广度搜索。 别的没什么特别。#include <fstream>#include <iostream>#include <string>#include <complex>#include

2015-12-12 15:45:27 162

原创 poj3279 (搜索,好题**)

前题:这题是之前 做邝斌搜索专题遗留下的三题之一,最近为了复习搜索姿势补上。题意:最大15*15平面(二维数组)有1有0,对一个地方操作,与他相邻四个包括他自己会翻转(0变1,1变0),求出最少的操作让全部变成0,输出操作位置图。思路:很明显每个点操作一次就够了,两次恢复原样,然后 我就想不到了...15*15 对每个点搜索 不可能,广搜?从那个点开始?然后就去搜题解,原来是对第一排搜索,

2015-12-12 11:39:55 464

原创 hdu1016(素数环剪枝dfs)

题意:n<20范围,搜一个全排列,满足素数环,相邻两个数字和为素数,最后一位和第一位之和也是素数。 剪枝:每一位都先先判断再搜索。#include <fstream>#include <iostream>#include <string>#include <complex>#include <math.h>#include <set>#include <vector>#includ

2015-12-10 21:42:21 648

原创 poj2479 Maximum sum(最大子段和变形)

dp 最大子段和的变形求不相交的最大两个最大子段和,之前对最大子段和都喜欢这样写for(int i=0;i<n;i++){ sum+=a[i]; if(sum>0) res=max(res,sum); else sum=0;}也没有太多理解,写了这题发现最大子段和 原来定义dp[i] 是以i结尾的最大字段和的大小,最初转移方程代码是for(int i=0;i<

2015-12-10 17:18:23 514

原创 HDU-2086(推一下公式)

HDU-2086 A1 = ? A1 = ?Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3244 Accepted Submission(s): 2054Problem Description 有如下方程:Ai = (Ai-

2015-12-09 01:16:33 2130 1

原创 01背包问题总结

总结一下 按照:http://blog.csdn.net/libin56842/article/details/9338841 这个博客 提供的题号(感谢大牛) 和自己多加的几道01背包的题目。其状态转移方程是:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}01背包的裸代码:(节省一维空间)for(int i=0;i<n;i++) for(int j=V;j>

2015-12-09 01:08:56 2587 2

原创 poj1072Coins

题意:N种货币价值,最高价值M,给你每个货币价值v和数量m,问能组出多少个不超过M的价值。思路:和《挑战》上 多重部分和 思路 一模一样 状态转移 dp[i+1][j]= m[i](dp[i][j]>=0) = -1(dp[i][j-v[i]]<=0||j<v[i]) = dp[i][j-v[i]]-1(dp[i][j-v[i]]>0)

2015-12-05 21:38:00 367

原创 poj1028 Web Navigation

模拟水题:#include #include #include #include #include #include #include #include #include #include #include#include#include #include #include #include #include #include #define rep(i,

2015-12-04 21:00:03 400

空空如也

空空如也

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

TA关注的人

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