uva oj 111、674、562、11137、10534、10130解题报告

 

111 - DP LCS - degree1

 

1.题目链接:http://acm.uva.es/p/v1/111.html

 

2.解题思路:利用动态规划的LCS算法(算法链接),特别注意要看清题目,第一行输入为事件“envent”的数目,第二行为正确的事件"envent"的顺序,第三行为学生的输入

 

3.输入输出:sample的input、output就可以

 

4.代码

 

 

 

674 - DP 硬币- degree1

 

1.题目链接:http://acm.uva.es/p/v6/674.html

 

2.解题思路:动态规划的硬币问题(链接)。

 

3.输入输出:sample的input、output就可以

 

4.代码:

 

 

 

 

562 - DP 非典型背包- degree2

1.题目链接:http://acm.uva.es/p/v5/562.html

 

2.解题思路:这道题是一道非典型的DP题,我们不能直接利用DP得出答案,而是利用DP产生一个中间的结果,然后利用这个中间结果计算题目答案。

  我们用DP思想首先产生一个judge数组,数组有0与1两个值,judge[i] = 0表示我们无法划分出i这个值,judge[i] = 1则相反表示利用一直的硬币可以划分出这个值。得到了judge数组后我们在对数组中所有值为1的数计算两堆硬币的差值,记录下这个差值,输出。

 

3.输入输出:sample

 

4.代码:

 

 

 

11137 - DP 硬币 - degree-1

1.题目链接:http://icpcres.ecs.baylor.edu/onlinejudge/external/111/11137.html

 

2.解题思路:典型动态规划硬币问题(链接),要特别注意循环接硬币问题时的顺序~见动态规划硬币算法~

 

3.输入输出:sample

 

4.代码

 

 

 

10534 - DP LIS - degree -2

 

1.题目链接:http://uva.onlinejudge.org/external/105/10534.html

 

2.解题思路:这道题主要是利用了LIS算法(LIS算法链接),要特别注意o(n^2)与o(nlogn)两种算法的不同实现,这道题用o(n^2)的方法

是超时的,只能使用o(nlogn)的方法。、

  算法的思路是找到目标序列的中点,以这个中点为起点与中点的LIS是一样的。我们从input序列的中点每次分别向左与向右同时扩展一个点,计算LIS并且比较,如果相等并且超过以后点能生成的最大值则为答案。

 

3.输入输出:sample

 

4.代码:

 

 

 

 

 

 

10130 - DP 0-1背包问题 - degree -2

 

1.题目链接:http://uva.onlinejudge.org/external/101/10130.html

 

2.解题思路:这是一道典型的0-1背包问题,不过对于家庭里的每个成员都需要计算一次,然后将每个成员计算出的最大值累加输出。

 

3.输入输出:sample

 

4.代码:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值