摘要: 题意:要从四个数组中各选一个数,使得这四个数之和为0,求合法的方案数。分析:首先枚举A+B所有可能的值,排序。然后枚举所有-C-D的值在其中用二分法查找。 1 #include 2 #include 3 using namespace std; 4 5 const int maxn = 400... 阅读全文
posted @ 2015-02-04 19:59 AOQNRMGYXLMV 阅读(417) 评论(0) 推荐(0)
摘要: 题意:有n个国家,要设计一栋长方体的大楼,使得每个单位方格都属于其中一个国家,而且每个国家都要和其他国家相邻。分析:紫书上有一种很巧妙的构造方法:一共有2层,每层n×n。一层是每行一个国家,另一层是每列一个国家。 1 #include 2 #include 3 #include 4 using... 阅读全文
posted @ 2015-02-04 18:11 AOQNRMGYXLMV 阅读(332) 评论(0) 推荐(0)
摘要: 题意:一个正方形中有n道竖直的墙,每道墙上开两个门。求从左边中点走到右边中点的最短距离。分析:以起点终点和每个门的两个端点建图,如果两个点可以直接相连(即不会被墙挡住),则权值为两点间的欧几里得距离。然后求起点到终点的最短路即可。 1 #include 2 #include 3 #incl... 阅读全文
posted @ 2015-02-04 17:00 AOQNRMGYXLMV 阅读(178) 评论(0) 推荐(0)
摘要: 这题求解的过程和选择排序非常相似。反转的过程中分为无序(在前面)和有序(在后面)两个部分,一开始视为全部为无序。在无序部分中找到最大的元素,先把它翻到最前面,然后再反转到无序部分的最后面。这样该元素就成为有序的部分。而且在算法执行的过程中不会影响到已经构造好的有序部分。 1 #include 2 ... 阅读全文
posted @ 2015-02-04 14:36 AOQNRMGYXLMV 阅读(170) 评论(0) 推荐(0)