摘要: 题意: 给出n个点的x坐标和y坐标,让你求出由其中三个点组成的三角形,要求这个三角形里面不包含别的点且面积最小。思路: 三角形里面不包含别的点的判断方法是最暴力的一层for循环用面积法看看除去组成这个三角形以外的别的点是否在这个三角形内。Tips: 这题的关键其实只是掌握面积法。即利用差积的方法求面积。Code:View Code 1 #include <stdio.h> 2 #include <cstring> 3 #include <cmath> 4 #include <algorithm> 5 #include <ctime> 阅读全文
posted @ 2013-03-16 21:24 Griselda. 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出n行m列的数组,并给出k个操作; 其中操作方法有三种: ① c x y 表示把数组的第x列和第y列交换 ② r x y 表示把数组的第x行和第y行交换 ③ g x y 表示求数组的第x行第y列的数思路: 用一个数组c 和 r表示第c行和第r列当前值是实际数组中的第几行第几列Tips: 因为n m k给的值都很大 所以如果按暴力模拟的话,即一个一个交换就会超时 所以想到用一个虚拟的数组保存当前数组的每一行每一列在原数组中的哪一行哪一列Code:View Code 1 #include <stdio.h> 2 #include <cstring> 3 #incl 阅读全文
posted @ 2013-03-16 21:18 Griselda. 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 题意:给出n张牌的重量和现在剩下的牌的重量。求缺失了的牌。如果无解就输出0 多解就输出-1 否则就按照输入的顺序输出排的编号思路: 01背包.. 状态转移用dp[v] = cnt;表示牌的总和为v的情况是为cnt 记录路径有path[v] = j; 表示是加上了第j个物品才得到体积为v的。 一开始有一个已知的是dp[0] = 1; 状态转移方程为 if(dp[j-w[i]])dp[j] += dp[j-w[i]]; 表示当前一个状态存在的情况下,这一个状态的情况数为前一个状态加上当前这个状态的情况数。 因为题目要求给出缺失的牌的编号,所以如果dp[j] == 0,即第一次遇到这个情... 阅读全文
posted @ 2013-03-16 21:08 Griselda. 阅读(349) 评论(0) 推荐(0) 编辑