摘要:
设定状态 DP( i, j ) 表示从第一层到 i 层 j 房间 最小花费. 则状态转移方程为 DP( i, j ) = Max { DP( i-1,j), DP( i, j-1 ), DP( i, j+1 ) } + a( i , j ) 因为 对于当前层的处理, 左右之间可以拆分开来处理, 再设定一个 d( i, j ) 记忆是由哪个位置走到当前位置的. 然后通过递归求路径即可解题代码View Code #include<stdio.h>#include<string.h>#include<stdlib.h>typedef long long LL;#d 阅读全文
摘要:
当总数量 N 为奇数的时候, 因为N为奇数,N+1变成1,同样为奇数. 则意味着奇偶位置可以相互转换. 但是当N为偶数的时候,因为N为偶数,N+1变成1,转换成了奇数. 奇数位置,和偶数位置不相关. 因为我们的置换规则是 奇数位置和奇数位置对换, 偶数位置和偶数位置对换. 那么当N为奇数时,可以转换成任意形态. 但是当N为偶数时,仅仅当奇数位置上的黑点数量与偶数上的黑点数量相差小于等于1的时候,才可转换成符合条件的情况.解题代码View Code #include<stdio.h>#include<string.h>#include<stdlib.h>int 阅读全文
摘要:
定义结构体 struct Dir { vector< Dir > dir; vector< string > file; }; 通过递归处理, 和输出 就很方便了。 要注意,当出现子目录时,递归下去处理,回朔后再将其加入到父目录的vector中,不然没有保存到之后的信息。解题代码:View Code #include<algorithm>#include<iostream>#include<vector>#include<string>#include<stdio.h>using namespace std;s 阅读全文