• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

  • 联系
  • 订阅
  • 管理
上一页 1 2 3 4 5 6 ··· 11 下一页

2011年3月19日

zoj 1094 Matrix Chain Multiplication 栈应用

摘要: //利用stack计算表达式//类似计算中序表达式那样,用两个栈,一个存字母,一个存符号//这题要自己存入*号,要用一个变量储存之前输入的符号,判断是否要把*入栈//如果前一个符号是(,则不需要。#include <iostream>#include <stack>#include <cstdio>using namespace std; struct info{ int row, col; in... 阅读全文

posted @ 2011-03-19 13:22 sysuwhj 阅读(439) 评论(0) 推荐(0)

2011年2月27日

zoj 2109 FatMouse' Trade 部分背包

摘要: 部分背包问题,贪心 先按J[i] / F[i] 升序排序,每次选取J[i] / F[i]的最大值,如果不能取满J[i],则取把背包填满的容量即可。原因很简单,每次取J[i] / F[i]的最大值就使得背包单位体积价值最多。从大到小选择,自然会得到最优解。 #include <iostream>#include <algorithm>#include <cstdio>using namespace... 阅读全文

posted @ 2011-02-27 21:24 sysuwhj 阅读(423) 评论(0) 推荐(0)

zoj 1076 Gene Assembly 贪心

摘要: 这题就是任务调度,给定任务的起始和结束时间,求能完成任务的最大数目。 贪心,先按任务的结束时间递减排序,再逐个选择。选择活动的起始时间大于已选择活动的结束时间 #include <iostream>#include <cstdio>#include <vector>#include <algorithm>using namespace std;const int N = 50005;struct... 阅读全文

posted @ 2011-02-27 21:18 sysuwhj 阅读(501) 评论(0) 推荐(0)

2011年2月26日

sicily 1694 Spiral 蛇形矩阵

摘要: 题目给出蛇形矩阵,要求计算给定的值在蛇形矩阵的位置。 注意到,矩阵的右上角的值是某个奇数的平方,从内到外依次是1,3,5…的平方。先求出要求的数对应的右上角的数的坐标,再根据与距离来计算指定数的坐标 #include <iostream>#include <cstdio>using namespace std;int n, m;void find(){ int place_zero = n/2+... 阅读全文

posted @ 2011-02-26 22:12 sysuwhj 阅读(413) 评论(0) 推荐(0)

2011年2月25日

poj 1976 A Mini Locomotive 动规

摘要: 这题有些像求连续子序列和的最大值 设dp[i][j]表示i个火车头拉动j个火车舱的人数和的最大值,状态方程如下:dp[i][j] = max(dp[i-1][j-times]+num[j]+..+num[j-times+1], dp[i][k]) #include <iostream>#include <cstdio>#include <cstring>using namespace std;c... 阅读全文

posted @ 2011-02-25 22:19 sysuwhj 阅读(448) 评论(0) 推荐(0)

poj 2184 Cow Exhibition 背包

摘要: 这题想了很久,虽然知道是01背包,但加了两个约束条件后,就不知道如何做了。 直到看到解题报告才懂这题思路。先定死一个变量,求另外一个变量,得到各个结果再找出最优解。 设dp[i][v]为前i头牛给定smart为v时的最大fun值之和。就可以转化为01背包。 dp[i][v] = max(dp[i-1][v-s[i]] + f[i], dp[i-1][v])。注意由于smart可以是负的,要把sm... 阅读全文

posted @ 2011-02-25 20:23 sysuwhj 阅读(627) 评论(1) 推荐(1)

2011年2月24日

poj 3211 Washing Clothes 背包

摘要: 这题做得相当顺利,1A 题意是求夫妇两人洗完衣服用的最小时间。先按衣颜色分类,对于每种颜色的衣服,最优解是都平分即V/2,背包容量为洗衣服的花费,用01背包来标记是否可以通过组合组成某个容量。若不能平均分,就从V/2开始搜索,最接近V/2的较大值就为两人洗完每种颜色衣服的最短时间,把各种颜色衣服的解加起来即为答案 #include <iostream>#include <map>#include... 阅读全文

posted @ 2011-02-24 21:04 sysuwhj 阅读(348) 评论(0) 推荐(0)

2011年2月22日

hdu 1028 Ignatius and the Princess III 完全背包

摘要: 这题以前是母函数做的,今天看了DD的背包九讲,该用背包模型做。 这题是完全背包。设dp[i][v] 为用前i个数组成v的方案数,状态方程如下:dp[i][v] = sum(dp[i-1][v-k*i]) #include <iostream>using namespace std;const int N = 122;//dp[i][v] 为用前i个数组成v的方案数//dp[i][v] = sum... 阅读全文

posted @ 2011-02-22 23:54 sysuwhj 阅读(366) 评论(0) 推荐(0)

2011年2月18日

hdu 1024 Max Sum Plus Plus m段连续子序列最大和 dp

摘要: //这题的方程不会列,看了别人解题报告才懂 //设dp[i][j]为i段以a[j]结尾子序列的最大和 //dp[i][j] = max(dp[i][j-1]+a[j], dp[i-1][k]+a[j]) //由于题目规模巨大,不能使用二维数组存,需要优化 //经分析,可以优化成两个一维数组 //dp[j]为以a[j]结尾的子序列最大和,pre[j]则是记录前个段(即第i-1段)到a[j-1]为止的... 阅读全文

posted @ 2011-02-18 22:49 sysuwhj 阅读(509) 评论(0) 推荐(0)

2011年2月10日

poj 1466 Girls and Boys 最大独立集

摘要: 根据性别分为两个集合,然后求最大独立集。由于题目没有给出性别,可以不划分集合,每个集合都为n个,求最大匹配数,最后除2即可。 阅读全文

posted @ 2011-02-10 19:00 sysuwhj 阅读(540) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 ··· 11 下一页
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3