hdu2844 - Ice_Crazy的专栏 - 博客频道 - CSDN.NET



分析:
    (好题)背包,二进制的另一种应用(话说LZ貌似初中的时候也想
过这种组合方式额,不过n年后的现在早忘了�~),既:
        1、2、4可以组合出所有小于8的数;
        1、2、4、8可以组合出所有小于16的数;
        1、2、4、8、16可以组合出所有小于32的数;
        ……



PS一个:
    另外,看网上的代码,几乎都是用dp[i]来表示容量为i这个包包
可以装多少价值,递推公式为dp[j]=MAX(dp[j],dp[j-val[i]]+val[i]),
然后判断dp[i]是否==i,等于了,那么ans++;


    对于这方法,菜鸟卖个萌�嗦点儿话�~:
    1、用flag[i]标记i状态是否可达就行了,没必要求容量为i的包包
最大可以装多少val;(所以我的代码里面用的就是(状态now)=(状态now)
||(状态pre))


    2、对于这个方法呀,如果没有理解透的话,是容易粗事儿的�~~~,
也就有了:
    "为什么我在进行判断的时候,用dp[i]>=i这个式子,
    既if(dp[i]>=i) ans++,
    这种方法写出来的代码也能ac呢?"
这种问题的出现(在一些blog里面看到的)。
    对于这个,只能说这个题是个特例,是不管对于n种物体的哪种物体,
容量和val的比例总是恒定的,而且还是1:1的关系(注意这儿是1:1,而
不是1:2、1:3或者2:3之类的),既dp[j-a]+b中,a=b=val[i],a:b==1:1,
所以才保证了,《如果容量为i的状态可达,那么最后dp[i]必定==i》
(因为a==b么);
    所以么必要用这个状态转移方程了,赶脚砍魔兽的刀用猪身上了�~~

Read full article from hdu2844 - Ice_Crazy的专栏 - 博客频道 - CSDN.NET


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts