上一页 1 2 3 4 5 6 7 8 ··· 22 下一页
摘要: 这题可以说启发了我深刻的思考。把二维化为一维,把四重循环化为三重循环,非常的其妙。 如果要强行穷举,需要穷举起始点和终止点,那么需要一个四重循环。即使通过二维前缀和来减少计算,那么也要将近500秒的计算时间,稳妥超时。 500^4=62500000000=625*10^8,而 1 秒只能执行10^8 阅读全文
posted @ 2018-03-26 20:20 TQCAI 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 9!=362880 ≈ 4*10^5 10!≈ 4*10^6 11!≈ 4*10^7 (极限) 12!≈5*10^8 (约5秒,12个元素全排列) 阅读全文
posted @ 2018-03-26 14:56 TQCAI 阅读(1003) 评论(0) 推荐(0) 编辑
摘要: 需要注意的是开数据的问题。本题比较坑,没有给出问题规模。但是估计有一万个顶点,我用的前向星,边表需要V²的大小,但是这样开会爆掉。题设给出边的数目不会超过顶点的数目,这很关键,所以直接开成V×2(因为是无向图要两边连) 还有就是推公式,这个比较简单,通过样例数据看出是等差数列求和即可。 但是用dfs 阅读全文
posted @ 2018-03-26 13:36 TQCAI 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 强行全排列,9秒,11!的复杂度,稳妥超时: 代码: #include <stdio.h> #include <memory.h> #include <math.h> #include <string> #include <string.h> #include <vector> #include < 阅读全文
posted @ 2018-03-25 21:23 TQCAI 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 这题求3个数的最小公倍数。 首先求a、b的最下公倍数p1,只有把p1给a、b,才可分。 然后求p1和c的最下公倍数。也就是把处理过的a、b看成一堆,用篇、p1表示他们。求出p2 答案就是p2 。 所以,用这个思路,可以求出n个数的最小公倍数。 阅读全文
posted @ 2018-03-25 11:56 TQCAI 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 这题和之前的九宫幻方一样,都属于水题。不过这题的思维相对要复杂一点,不过bfs搜一遍也万事大吉了。 需要注意的是去重。用这题用set去重足矣,因为数据量相对不是特别大。如果对hash熟悉可以用写个hash函数去重 还有就是目标点的移动。我在草稿纸上推了一下,就推出了公式。不用专门转化为二维数组进行移 阅读全文
posted @ 2018-03-25 11:07 TQCAI 阅读(447) 评论(0) 推荐(0) 编辑
摘要: dp[i,j,k,v]表示当前坐标(i,j)下,拥有k件物品宝物最大价值为v时,方案的最大数。 i∈[1,M],j∈[1,N],用别人更新自己,最后输出的是dp[1,1,0,0] 调用dfs(1,1,0,-1),因为v表示当前取到的宝物的价值。判断都是用v和g[i,j]判断,但是dp更新或者传值都是 阅读全文
posted @ 2018-03-25 10:32 TQCAI 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 相比树状数组求逆序对,归并排序的逻辑复杂度稍微小一点。 首先我们来理解归并排序。首先用mergeSort将一个序列不断二分,直到每个子序列只有长度2 然后递归到了栈底。我们再用merge函数,将递增有序的序列拼接起来。因为序列递增有序,所有时间复杂度为O( max(m+n) ),这里的m、n分别是两 阅读全文
posted @ 2018-03-24 21:02 TQCAI 阅读(1175) 评论(0) 推荐(0) 编辑
摘要: 最短路径已经考腻了,已经在往模拟的趋势上发展。今天顺便还练习了一下前向星,感觉很好用,以后都用前向星了。 阅读全文
posted @ 2018-03-17 22:04 TQCAI 阅读(819) 评论(0) 推荐(0) 编辑
摘要: 1.矩形嵌套 查了很久的错,最后发现是ans在每次测试样例输入的时候没有初始化为0 。 AC代码: #include <stdio.h> #include <memory.h> #include <math.h> #include <string> #include <vector> #includ 阅读全文
posted @ 2018-03-17 17:30 TQCAI 阅读(332) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 22 下一页