本文主要是介绍Educational Codeforces Round 64 (Rated for Div. 2) A. Inscribed Figures,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-
题意
题目大意:假设1代表圆形,2代表正三角形,3代表正方形,那么如例一所示2 1 3就代表正三角形内接圆形,同时内接圆的内部再内接正方形。那么现在所需要求的就是通过不断内接图形最终有多少个交点,如果在这个过程中内接的图形与之有边重合则 Infinite
-
分析
我又WA了,,,嘤嘤嘤。
自己只画了两个图形的内接的情况。没想到三个图形如果有 3 1 2的情况,是会有重合的点的。
-
代码
依旧是,又臭又长
int num[105];
int w[4][4];
int main()
{int n;scanf("%d",&n);memset(w,0,sizeof(inf));w[2][1]=3;w[2][3]=0;w[1][3]=4;w[1][2]=3;w[3][1]=4;w[3][2]=0;for(int i=1;i<=n;i++){scanf("%d",&num[i]);}int ans=0;for(int i=2;i<=n;i++){int a=num[i-1];int b=num[i];if(w[a][b]==0){cout<<"Infinite"<<endl;return 0;}ans+=w[a][b];}for(int i=3;i<=n;i++){if(num[i-2]==3 && num[i-1]==1 && num[i]==2)ans--;}cout<<"Finite"<<endl;cout<<ans<<endl;return 0;}
这篇关于Educational Codeforces Round 64 (Rated for Div. 2) A. Inscribed Figures的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!