几何、图形思维
文章平均质量分 78
以几何图形思维为基础的算法题解
米莱虾
19软工 Unity3D游研工程师 GameJam亚军
ACM-ICPC国际大学生程序设计竞赛亚洲区域铜牌
全国大学生算法设计与编程挑战赛团队赛金奖rank9
全国大学生算法设计与编程挑战赛个人赛一金一铜
2020&2021全国大学生IT技能大赛国二等奖
2021&2020中国高校计算机大赛总决赛铜牌
亚太经济地区大学生数学建模竞赛二等奖
全国大学生创新促进就业大赛国决三等奖
中国软件智能应用程序设计大赛三等奖
计蒜之道程序设计大赛决赛Rank前列
全国大学生英语竞赛国家三等奖
展开
-
牛客算法周周练19题解【A&C&E】
构造+表达式推导、矩阵乘法、DFS原创 2020-08-12 22:04:18 · 477 阅读 · 0 评论 -
牛客等级之题8.12题解
计算公式+化简、矩阵消除原创 2020-08-12 22:28:47 · 267 阅读 · 0 评论 -
求斐波那契前n项平方和 ——矩阵快速幂模板(几何&构造证明题【附图】)
根据图示,我们可以知道:后面的大正方形的边长总是等于前面的小正方形组成的矩形的长;前面几个斐波那契数的平方之和(也就是前面几个小正方形的面积之和)在数值上等于最后出现的一个和下一个紧接着未出现的斐波那契数的乘积(也就是已经出现的小正方形组成的矩形的面积等于其中最大的一个小正方形的边长乘以下一个紧接着未出现的正方形的边长)。对应的公式化简后如下:#include <bits/stdc++.h>#define ll long long#define MOD 1000000007usin..原创 2020-08-13 15:26:07 · 796 阅读 · 0 评论 -
【C++】计算两个矩形的覆盖面积(模拟)
题意:给出能够构成矩形的2组顶点(8个坐标点),构思两个矩形的各种位置关系,求出两个矩形在二维平面的覆盖面积思路:模拟+分类讨论,没有公共部分就算面积和,有公共部分就要减去多算的代码:#include <bits/stdc++.h>using namespace std;double a[4],b[4];double ax,ay,bx,by,Ax,Ay,Bx,By;int main(){ cin >> ax >> ay >>原创 2021-12-11 16:36:12 · 1418 阅读 · 0 评论 -
算法详解 | 判断一个点是否在多边形区域内【五种方法】
方法1:向量叉乘判别法设多边形的顶点依次为A1,A2…An,要判断的点为P,那么分别计算向量PA1叉乘向量PA2,向量PA2叉乘向量PA3,…,向量PA(n-1)叉乘向量PAn,向量PAn叉乘向量PA1,如果这些叉乘的结果都同向的话,那么这个点就在多边形的内部。方法2:面积和判别法判断目标点与多边形的每条边组成的三角形面积和是否等于该多边形,相等则在多边形内部。方法3:夹角和判别法判断目标点与所有边的夹角和是否为360度,为360度则在多边形内部。方法4:引射线法从目标点出发引一原创 2021-10-12 10:25:45 · 11974 阅读 · 0 评论 -
第四届ACM-ICPC“青春杯“程序设计竞赛题解
B-三等分角Description 尺规作图三等分角是古希腊三大几何问题之一…现在将这个问题稍作简化,给定三角形ABC,需要你在线段BC上找一点D使得: ( ∠BAC = 3 * ∠BAD )Input六个浮点数分别是x1,y1,x2,y2,x3,y3,分别代表点A(x1,y1),B(x2,y2), C(x3,y3)的坐标。Output输出点D的坐标,结果保留两位小数。Sample Input0 0 0 1 1 1Sample Output0.27 1.00HINT原创 2021-05-08 17:34:52 · 1061 阅读 · 0 评论 -
UPC 2020年混合个人训练第90~92场部分题目
//upc NO.90 问题 F: Heartlessly的三角形/* 找规律 +推公式(等差等比数列错位相减) +n过大用快速幂 +前缀和的思想 */#include <bits/stdc++.h>#define ll long long using namespace std;const int mod = 1e9+7;ll qpow(ll a,ll b) { ll ans = 1; while(b) { if(b&1) ans=(原创 2020-12-13 22:08:23 · 264 阅读 · 0 评论 -
UPC 2020秋组队真题训练赛第八场【A&B&C&D&G】
问题 A:Alphabet Animals题目描述You are playing a game in which a group of players take turns saying animal names. The animal name you say when it is your turn must start with the same letter as the previously said animal ends with and it must not have been sai原创 2020-09-16 00:06:04 · 1113 阅读 · 0 评论 -
C++求平面上不重合的n个点最多构成多少条两两互不平行(包括重合)的直线
对应题目UPC NO.78场 问题 E: 阅兵队形 plane题目描述70 周年阅兵的时候,飞机在空中排练着队形,Yyx 很好奇,他想知道这么训练有素的队形到底是如何造就的呢?他记录下了飞行路径上的各个端点。他发现:把整个天空看做一个平面直角坐标系,飞行路径是所有过任意两个端点的直线。如果这些飞机可能会撞在一起,或者说只要这些直线有交点,就可能发生事故。在所有直线中应该最少删除多少条直线使得剩下的直线两两都不相互平行(重合也是平行)。求出最多可以构成多少条两两互不平行的直线。输入第一行,整原创 2020-08-15 08:28:28 · 748 阅读 · 0 评论 -
牛客练习赛63之B——牛牛的鱼缸(附图解析)
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288KSpecial Judge, 64bit IO Format: %lld题目描述牛牛有一个长为; l;l,宽为1,高为; h;h的鱼缸,现在他想要在鱼缸中盛一些水。他想要知道这个鱼缸最多能够放多少水。当然这个问题太过于简单,所以牛牛将这个鱼缸放到了一个长为; L;L,高为; H;H的斜坡上面,如图所示,鱼缸宽度为1的这条边紧紧靠在斜坡与地面的交界线上。在不允许移动鱼缸与斜坡的情况下。鱼缸最多能够原创 2020-05-11 09:55:17 · 622 阅读 · 0 评论 -
平行四边形(几何)题解
UPC NO.17场 问题 E: 平行四边形时间限制: 3 Sec 内存限制: 128 MB题目描述求平面上n个点构成的平行四边形个数。输入一行一个数n。接下来n行,每行两个数x,y,表示这个点的坐标为(x,y)。保证任意两点不重合,任意三点不共线。输出一行一个整数表示平行四边形个数。样例输入40 11 01 12 0样例输出1提示对于100%的数据:n≤1500。题解:首先回顾一下判定平行四边形的5大方法:1、两组对边分别平行的四边形是平行四边形(定义判定法)原创 2020-05-23 23:17:44 · 1598 阅读 · 0 评论 -
UPC 2020年夏混合个人训练第六十场
问题 E:BAKA(模拟)问题 G:逃跑(差分+几何割补)原创 2020-07-12 14:02:51 · 410 阅读 · 0 评论