自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

e_t_h_h_h_y

只是个战斗力为5的渣渣

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

原创 1042

贪心算法 相当于给定n个湖,每次选择最好的那个湖,同时选择时降低这个湖的大小。

2015-05-11 11:24:53 388

原创 2479&&2593

先从左到右遍历,把以a[i]为结尾的最大子序列存储在dp[i]中 再从右向左遍历,测试以a[i]为开头的最大子序列与dp[i-1]之和,保存最大值输出

2015-05-05 12:35:16 250

转载 背包之01背包、完全背包、多重背包详解

背包之01背包、完全背包、多重背包详解   PS:大家觉得写得还过得去,就帮我把博客顶一下,谢谢。 首先说下动态规划,动态规划这东西就和递归一样,只能找局部关系,若想全部列出来,是很难的,比如汉诺塔。你可以说先把除最后一层的其他所有层都移动到2,再把最后一层移动到3,最后再把其余的从2移动到3,这是一个直观的关系,但是想列举出来是很难的,也许当层数n=3时还可以模拟下,再大一些就

2015-05-01 19:57:28 328

原创 1384

完全背包,和01背包区别就是中间的循环颠倒过来了(要保证是基于这次选择上) 片段 int w, p; scanf("%d",&T); while(T--) { scanf("%d%d",&empty,&full); sum=full-empty; for(int i=0;i<=sum;i++)

2015-04-30 22:11:49 304

原创 3624

dp,最基础的01背包 Memory 184K Time       157MS #include #include int dp[12900]; int main (void) { int n, m, i, j, w, v; while(scanf("%d %d",&n, &m)==2){ memset(dp,0,sizeof(dp)); for(i = 1; i<=n;

2015-04-28 09:20:44 453

原创 1837

d[i][j+w[i]*c[k]]+=d[i-1][j]

2015-04-27 20:34:21 241

原创 1088

dp 记忆化 用了两个数组,一个记录所有点的数据,一个是dp[i][j]记录每个点的最大距离,当最小时(无法降低时)为1 如25-24-23-……-2-1长度是25(点的数量) dp的伪代码 f( i, j ){ if dp[i][j]>0      return dp[i][j] for 点i,j的四个方向{     if 坐标没溢出{         if 可以向那个

2015-04-25 19:07:21 240

原创 1050

一开始思路错了,活活折腾了几小时。。。以后一小时想不出来直接不想了! 其实就是最大子序列,每行与之后几行压缩成一行再求就ok了~之前一直想先求再压缩,整个人都斯巴达了也没想出来。。。最可恨的是过了一天再看才发现一开始思路就不对,简直智商捉急

2015-04-25 10:54:57 212

原创 1018

普通的dp题,虽然内存用得有点大,但还是AC了。。。 d[i][j]代表i个设备且他们当中最小带宽是j时的最小总费用,最后结果拿所有有值的d[n][j]算min{所有j/d[n][j]} 核心: 每读入一对d和p,测试所有一行前一个状态d[i-1][k]是否有值,有则更新这一状态(测试是否加上这个设备) tmp=min(d,k) d[i][tmp]=min{ d[i][tmp] , d[

2015-04-23 17:20:31 236

原创 1015(WA)

150421 用dp,d[i][j]代表选了j个人且差为i的值(所有选中的di+dp的总和),关键为 d[i+sub[k]][j+1] = max{ d[i][j]+plus[k], d[i+sub[k]][j+1]} 我觉得应该没错呀,纠结了好久,另外网上找了份能AC的代码……核心差不多,但他加了一些东西,好吧,之后再研究

2015-04-21 21:08:37 222

原创 人民币金额大写

Q: 在与财务相关的应用中,经常会用到人民币金额的大写,比如发票的打印程序。 本题的任务是:从键盘输入一个十亿以内的正整数(int类型),把它转换为人民币金额大写(不考虑用户输入错误的情况)。 比如,用户输入:35201,程序输出:叁万伍仟贰佰零壹 用户输入:30201,程序输出:叁万零贰佰零壹 用户输入:30001,程序输出:叁万零壹 用户输入:31000,程序输出:叁万壹仟 用户

2015-04-21 16:23:45 475

原创 取字符

Q: 从标准输入读入一个由字母构成的串(不大于30个字符)。 从该串中取出3个不重复的字符,求所有的取法。 取出的字符,要求按字母升序排列成一个串。 不同的取法输出顺序可以不考虑。 例如: 输入: abc 则输出: abc 输入: abcd 则输出: abc abd acd bcd 输入: abcaa 则输出:

2015-04-21 16:17:17 738

原创 串的处理

Q: 串的处理 在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下: 1. 把每个单词的首字母变为大写。 2. 把数字与字母之间用下划线字符(_)分开,使得更清晰 3. 把单词中间有多个空格的调整为1个空格。 例如: 用户输入: you and     me what  cpp2005program 则程序输出:

2015-04-21 15:58:07 220

原创 立方和等式

Q: 考虑方程式:a^3 + b^3 = c^3 + d^3 其中:“^”表示乘方。a、b、c、d是互不相同的小于30的正整数。 这个方程有很多解。比如: a = 1,b=12,c=9,d=10 就是一个解。因为:1的立方加12的立方等于1729,而9的立方加10的立方也等于1729。 当然,a=12,b=1,c=9,d=10 显然也是解。 如果不计abcd交换次序的情况,这算

2015-04-21 15:46:11 473

原创 趣味算式

Q:     匪警请拨110,即使手机欠费也可拨通!     为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练!     某批警察叔叔正在进行智力训练:     1 2 3 4 5 6 7 8 9 = 110;     请看上边的算式,为了使等式成立,需要在数字间填入加号或者减号(可以不填,

2015-04-21 13:02:55 421

原创 砝码称重

Q: 5个砝码 用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。 如果只有5个砝码,重量分别是1,3,9,27,81。则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。 本题目要求编程实现:对用户给定的重量,给出砝码组合方案。 例如: 用户输入: 5 程序输出: 9-3-1 用户输入: 19 程序输出: 27-9+1

2015-04-21 12:58:35 327

空空如也

空空如也

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

TA关注的人

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