首页 > 其他分享 >题解:AT_abc266_c [ABC266C] Convex Quadrilateral

题解:AT_abc266_c [ABC266C] Convex Quadrilateral

时间:2024-12-17 14:25:16浏览次数:4  
标签:int 题解 Quadrilateral abc266 X2 X3 Y3 X1 X4

思路

对于一个凸多边形,它的任意内角一定小于 \(45\degree\) 。

如果每相邻两条边的叉积的符号相同就说明它们是顺时针或逆时针排列的,则可以判别出该四边形是否为凸四边形。

AC 代码

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int X1,X2,X3,X4,Y1,Y2,Y3,Y4;

int cros(int x1,int y1,int x2,int y2){//叉积计算
	return x1 * y2 - y1 * x2;
}

int main(){
	// freopen("text.in","r",stdin);
	// freopen("text.out","w",stdout);
	ios::sync_with_stdio(0),cout.tie(0),cin.tie(0);
	cin>>X1>>Y1>>X2>>Y2>>X3>>Y3>>X4>>Y4;
	int a = cros(X2 - X1,Y2 - Y1,X3 - X2,Y3 - Y2);
	int b = cros(X3 - X2,Y3 - Y2,X4 - X3,Y4 - Y3);
    int c = cros(X4 - X3,Y4 - Y3,X1 - X4,Y1 - Y4);
    int d = cros(X1 - X4,Y1 - Y4,X2 - X1,Y2 - Y1);
    cout<<((a>0&&b>0&&c>0&&d>0)||(a<0&&b<0&&c<0&&d<0)?"Yes\n":"No\n");
	return 0;
}

标签:int,题解,Quadrilateral,abc266,X2,X3,Y3,X1,X4
From: https://www.cnblogs.com/zenoszheng/p/18612321

相关文章

  • 题解:AT_abc296_e [ABC296E] Transition Game
    题目传送门思路我们可以在环中任选一点,然后在环内可以转到另一个点。因为起点自由选择,所以环中每个点都可以到达,由此我们可以得知环上的所有点都是必胜点。我们把这个问题抽象为一张图,用拓扑排序判环即可。AC代码#include<bits/stdc++.h>usingnamespacestd;usingll=l......
  • 题解:B3832 [NICA #2] 回来吧我的小波
    思路经典抽屉原理。对于长度大于\(9\)的子串,我们就可以认为它一定是好的,因为一定有两个数是相同的,它们可以互相整除。对于剩下长度小于等于\(9\)的子串,我们对它们进行暴力枚举即可。AC代码#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;strings......
  • 题解:B3803 [NICA #1] 上大分
    思路看到这道题首先考虑贪心和动态规划。贪心是不行的,因为这里有先减分再加分的数据,也就是说故意在div1的比赛掉分,使得下一次能够打div2加更多的分。我们考虑动态规划,我们用\(f[i][j]\)表示在前\(i\)场比赛中得\(j\)分至少需要打几场比赛,就可以轻易推出这题的转移方......
  • 题解:AT_abc236_f [ABC236F] Spices
    今天2024秋令营Day1的贪心例题,来解释一下这道题贪心的思路。首先输入一个整数\(n\),表示需要处理的数字数量为\(2^n-1\),随后输入每个编号的代价,并将代价和编号存储在数组\(a\)中。接着,对代价进行排序,以便在后续处理中优先选择代价较小的数字。然后,使用一个\(vis\)数......
  • 题解:P7020 [NWRRC2017] Boolean Satisfiability
    首先,我们需要明确一个重要的恒等式:\[x\mid\nega=1\]当\(x=1\)时,\(x\mid\negx=1\mid0\)的结果为\(1\)。当\(x=0\)时,\(x\mid\negx=0\mid1\)的结果同样为\(1\)。因此,我们可以得出结论,该式子的结果恒为\(1\)。接下来,我们观察到,当表达式中仅包含......
  • 牛客周赛 Round 72 题解
    牛客周赛Round72题解A小红的01串(一)直接遍历即可#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ strings;cin>>s;intn=s.size();intcnt=0;for(inti=1;i<n;i++){if(s[i]!=s[i-1])cnt++;}......
  • P5773 [JSOI2016] 轻重路径 题解
    Description在二叉树上,不断删除叶子,你要维护其重链剖分后重儿子编号和。如果两个孩子大小相同,在一开始连向左儿子,后面保持修改前的连接。\(n\leq2\times10^5\)。Solution考虑把一个叶子\(x\)删掉会对改变哪些点的重儿子。首先改变的点\(y\)一定在\(x\)到根的链上,同时......
  • YbtOj题解索引
    不想写作业,水篇博客图论:并查集(已完结)最小生成树(已完结)强连通分量(已完结)最短路径(已完结)数据结构:堆(已完结)RMQ问题(未完结)树状数组(未完结)动态规划:数位DP(未完结)......
  • 题解 - 最小的Y
    题目描述程序设计与数学密切相关,所以兴趣小组的辅导老师经常拿一些有趣的数学题来让大家思考。一次课上,辅导老师又拿出了一个有趣的数学问题,题目是这样的:给你两个正整数x和z,求最小的整数y,使得x×y以后再除以z的余数为0。比如x=3,z=6,求最小的y。题目一出,马上有同学说:最小......
  • 2021ICPC EC final B. Beautiful String题解
    今天跟队友vp21年ECfinal,最后可惜计算几何没开出来,以及J题时间不够没做出来,主要就是B做太麻烦了,导致花了太多时间。但是作为串串人,还是非常喜欢字符串题,这里写一下我们的B题做法。题意定义一个好串是能将字符串分为6个部分\(s_1+s_2+s_3+s_4+s_5+s_6\)并且满足\(s_1=s_2=s_5,......