摘要:
如果先横着切再竖着切,所需次数为(m-1)+(n-1)*m = mn-1; 如果先竖着切再横着切,所需次数为(n-1)+(m-1)*n = mn -1;所以结果为mn-1。代码如下:View Code 1 #include <cstdio>2 3 int main()4 {5 int m, n;6 while(scanf("%d%d", &m, &n) != EOF)7 printf("%d\n", m*n-1);8 return 0;9 } 上面代码耗时0.048s,下面的代码先计算结果保存到数组中,然后直接访问,耗时0.0 阅读全文
posted @ 2013-04-11 17:30
xiaobaibuhei
阅读(162)
评论(0)
推荐(0)
摘要:
中途相遇法,新学的东西,大概意思是把数据分为两部分,先考虑第一部分,把结果保存到一个映射里,再考虑第二部分,得出结果后再在第一部分的映射里查找并进行计算。不过不明白为什么时间复杂度是O(1.44nlogn)。照搬书上的代码如下:View Code 1 #include <cstdio> 2 #include <map> 3 using namespace std; 4 5 int const maxn = 24; 6 map<int, int> table; 7 8 int bitcount(int x) 9 {10 return x == 0 ? 0 : 阅读全文
posted @ 2013-04-11 15:34
xiaobaibuhei
阅读(169)
评论(0)
推荐(0)
摘要:
map是c++的一个标准容器,它提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1.map最基本的构造函数;map<string , int >mapstring;map<int ,string >mapint;map<sring, char>mapstring;map< char ,string>mapchar;map<char ,int>mapchar;map<int ,char >mapint;2.map添加数据;map<int ,string> 阅读全文
posted @ 2013-04-11 14:04
xiaobaibuhei
阅读(227)
评论(0)
推荐(0)

浙公网安备 33010602011771号