<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ditang2322的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ditang2322</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ditang2322]]></copyright><item><title><![CDATA[一道算法作业题（续）]]></title><link>https://blog.youkuaiyun.com/ditang2322/article/details/101186965</link><guid>https://blog.youkuaiyun.com/ditang2322/article/details/101186965</guid><author>ditang2322</author><pubDate>Thu, 14 Jun 2018 10:48:00 +0800</pubDate><description><![CDATA[Description
在一个圆形操场的四周摆放着n堆石子，现要将石子有次序地合并成一堆。规定每次只能选择相邻的两堆石子合并成新的一堆，并将新一堆石子数记为该次合并的得分。试设计一个动态规划算法，计算出将n堆石子合并成一堆的最小得分和最大得分，要求列出递归方程，写出算法的伪代码并分析算法的时间空间复杂性。

分析
要求每次合并必须是相邻的，和矩阵链乘的括号作用差不多。可以考虑往矩阵链乘最...]]></description><category></category></item><item><title><![CDATA[一道算法作业题]]></title><link>https://blog.youkuaiyun.com/ditang2322/article/details/101186951</link><guid>https://blog.youkuaiyun.com/ditang2322/article/details/101186951</guid><author>ditang2322</author><pubDate>Wed, 13 Jun 2018 20:06:00 +0800</pubDate><description><![CDATA[Description
将一根木棒折成若干份，每折一次的代价是当前这段木棒的长度, 总代价是折这根木棒直到满足要求所需要的所有操作的代价。例如，将一根长度为10的木棒折成四段，长度分别为2, 2, 3, 3，如果先折成长度为2和8的两段，再将长度为8的折成长度为2和6的两段，最后将长度为6的折成长度为3的两段，这些操作的代价是10+8+6=24；如果先折成长度为4和6的两段，在分别将长度...]]></description><category></category></item><item><title><![CDATA[Software Construction Series (5)]]></title><link>https://blog.youkuaiyun.com/ditang2322/article/details/101186955</link><guid>https://blog.youkuaiyun.com/ditang2322/article/details/101186955</guid><author>ditang2322</author><pubDate>Sat, 09 Jun 2018 16:21:00 +0800</pubDate><description><![CDATA[在编写多线程的时候遇到这样一个问题，在多个线程中往同一个集合中添加元素，最后在统一遍历进行处理。然而在实际运行中可有能会出现报错：NullPointerException || IndexOutOfBoundsException。然而在添加元素和遍历元素的过程中理应是不可能出现这样的问题的。

但是考虑到多线程，其实可能出现这样一种情况：
List&lt;Integer&gt; l = ...]]></description><category></category></item><item><title><![CDATA[Software Construction Series（4）]]></title><link>https://blog.youkuaiyun.com/ditang2322/article/details/101186964</link><guid>https://blog.youkuaiyun.com/ditang2322/article/details/101186964</guid><author>ditang2322</author><pubDate>Mon, 04 Jun 2018 22:05:00 +0800</pubDate><description><![CDATA[​ 在进行Coding时，常常遇到这样一种情况：设计的ADT，将来可能要扩展某些操作，但根据OCP原则，不应当修改已经实现的代码，所以需要提前留下扩展手段。设计模式中的Visitor模式就是契合这样一种设计理念的方法。
先看它的UML模型：


模型看起来有些复杂，不妨先明确几个概念：
Visitor模式的实质
1、封装一些数据结构的各元素操作，降低操作间的耦合性。
2、将数据结构和数据...]]></description><category></category></item><item><title><![CDATA[Software Construction Series（3）]]></title><link>https://blog.youkuaiyun.com/ditang2322/article/details/101186963</link><guid>https://blog.youkuaiyun.com/ditang2322/article/details/101186963</guid><author>ditang2322</author><pubDate>Sun, 03 Jun 2018 10:08:00 +0800</pubDate><description><![CDATA[在Code时经常会遇到大量使用if-else或者case的情况，往往会把Code的Smell变坏。其中一种情况具有这样的结构：
class shape {
  String type;
  
  String getType();
  ...
}

class Circle extends Shape {
  Circle() {
    super.type = "Circle";
 ...]]></description><category></category></item><item><title><![CDATA[Software Construction Series（2）]]></title><link>https://blog.youkuaiyun.com/ditang2322/article/details/101186953</link><guid>https://blog.youkuaiyun.com/ditang2322/article/details/101186953</guid><author>ditang2322</author><pubDate>Mon, 02 Apr 2018 20:55:00 +0800</pubDate><description><![CDATA[Collections.unmodifiable*()与Rep Exposure
JDK在collections接口中提供了一类静态函数：collections.unmodifiable*()，其中*匹配Collections的子类。
如图：

简而言之：这类函数返回一个相应对象的不可更改的Copy。
问题在于不可更改性到那种程度：
1、相当于final？（即reference不可变）
...]]></description><category></category></item><item><title><![CDATA[HDOJ-1030]]></title><link>https://blog.youkuaiyun.com/ditang2322/article/details/101186962</link><guid>https://blog.youkuaiyun.com/ditang2322/article/details/101186962</guid><author>ditang2322</author><pubDate>Mon, 26 Mar 2018 14:53:00 +0800</pubDate><description><![CDATA[Delta-wave
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10158 Accepted Submission(s): 4092
Problem Description
A triangle field is numbered...]]></description><category></category></item><item><title><![CDATA[HDOJ-1028]]></title><link>https://blog.youkuaiyun.com/ditang2322/article/details/101186956</link><guid>https://blog.youkuaiyun.com/ditang2322/article/details/101186956</guid><author>ditang2322</author><pubDate>Sun, 25 Mar 2018 15:41:00 +0800</pubDate><description><![CDATA[Ignatius and the Princess III
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24006 Accepted Submission(s): 16689
Problem Description
"Well, i...]]></description><category></category></item><item><title><![CDATA[Software Construction Series（1）]]></title><link>https://blog.youkuaiyun.com/ditang2322/article/details/101186960</link><guid>https://blog.youkuaiyun.com/ditang2322/article/details/101186960</guid><author>ditang2322</author><pubDate>Sun, 25 Mar 2018 15:34:00 +0800</pubDate><description><![CDATA[Java在循环中删除list中元素的方法
先说几个通常的错误：
1、for循环遍历list
    for (int i = 0; i &lt; list.size(); i++) {
         if (list.get(i).equals("del"))
             list.remove(i);
    }
2、for each循环
        for (S...]]></description><category></category></item><item><title><![CDATA[MIT 6.031 Software Construction Lab1-Part2-Personal-Art]]></title><link>https://blog.youkuaiyun.com/ditang2322/article/details/101186958</link><guid>https://blog.youkuaiyun.com/ditang2322/article/details/101186958</guid><author>ditang2322</author><pubDate>Sun, 04 Mar 2018 09:23:00 +0800</pubDate><description><![CDATA[利用Turtle Graphics制作一些比较有趣的图形。
Turtle Graphics的模型支持点的连续移动，主要通过调用turn()和forward()方法。
适合用来绘制连续函数的图象，可以利用平面解析几何知识制作图形。
比如利用极坐标绘制对数螺线，心形线等等。
这里介绍一种利用递归方法绘制一类有趣图形的方法。
先看代码：
    private static void poly...]]></description><category></category></item><item><title><![CDATA[HDOJ-1011]]></title><link>https://blog.youkuaiyun.com/ditang2322/article/details/101186954</link><guid>https://blog.youkuaiyun.com/ditang2322/article/details/101186954</guid><author>ditang2322</author><pubDate>Sat, 03 Mar 2018 21:20:00 +0800</pubDate><description><![CDATA[Problem Description
You, the leader of Starship Troopers, are sent to destroy a base of the bugs. The base is built underground. It is actually a huge cavern, which consists of many rooms connect...]]></description><category></category></item><item><title><![CDATA[算法导论第十六章]]></title><link>https://blog.youkuaiyun.com/ditang2322/article/details/101186950</link><guid>https://blog.youkuaiyun.com/ditang2322/article/details/101186950</guid><author>ditang2322</author><pubDate>Thu, 01 Mar 2018 21:18:00 +0800</pubDate><description><![CDATA[16.1
16.1-1
int c[n+1][n+1];
int b[n+1][n+1];
for (int i = 0; i &lt;= n; i++)
{
  for (int j = 0; j &lt;= n; j++)
  {
    c[i][j] = -1;
    b[i][j] = 0;
  }
}
void ACTIVITY_SELECTOR(int *s, int *...]]></description><category></category></item><item><title><![CDATA[算法导论第十五章]]></title><link>https://blog.youkuaiyun.com/ditang2322/article/details/101186952</link><guid>https://blog.youkuaiyun.com/ditang2322/article/details/101186952</guid><author>ditang2322</author><pubDate>Thu, 01 Mar 2018 21:08:00 +0800</pubDate><description><![CDATA[15.1
15.1-1
证明：
​ T(n) = 1+\(\sum_0^{n-1}T(j)\)
​ 令S(n) = \(\sum_0^nT(j)\)
​ 则S(n) - S(n-1) = 1 + S(n-1)
​ S(n) = \(2^{n+1}\)-1
​ T(n) = \(2^n\)
15.1-2



长度i
1
2
3
4




价格pi
1
4
6.5
4


价格密度
1
...]]></description><category></category></item></channel></rss>