2017.9.9模拟考试
2017-09-09 19:04
190 查看
.
T1:
#include<iostream> #include<cstring> #include<cstdio> #include<cmath> using namespace std; #define LDB double const LDB pai = 3.141592654; inline LDB calc(LDB x1,LDB x2,LDB y,LDB y2){ return sqrt((x1-x2)*(x1-x2)+(y-y2)*(y-y2)); } int main(){ freopen("standing.in","r",stdin); freopen("standing.out","w",stdout); int T; LDB x1,x2,y,y2,r1,r2,ans; scanf("%d",&T); while(T--){ cin>>x1>>y>>r1>>x2>>y2>>r2; if(r1+r2<=calc(x1,x2,y,y2)){ ans=0; ans=r1*r1*pai+r2*r2*pai; printf("%.3lf\n",ans); continue; } if(abs(r1-r2)>=calc(x1,x2,y,y2)){// ans=max(r1,r2)*max(r1,r2)*pai; printf("%.3lf\n",ans); continue; } ans=r1*r1*pai+r2*r2*pai; LDB length=calc(x1,x2,y,y2); LDB cosA=(length*length+r1*r1-r2*r2)/(length*r1*2.0); LDB cosB=(length*length+r2*r2-r1*r1)/(length*r2*2.0);//圆心角的余弦值 LDB A=acos(cosA),B=acos(cosB); ans-=(A*r1*r1+B*r2*r2-r1*sin(A)*length); printf("%.3lf\n",ans); } fclose(stdin);fclose(stdout); return 0; }
设两个扇形的面积分别是S1、S2,四边形的面积是S3,重合部分的面积就是S1+S2-S3,该四边形是以圆心距为对称轴的两个全等三角形,看代码去吧,不难,2333333。
T2:
//链表暴力 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; #define MAXN 100010 int pre[MAXN],next[MAXN],n,sum,vis[MAXN],t; int main(){ freopen("resist.in","r",stdin); freopen("resist.out","w",stdout); scanf("%d%d",&n,&t); for(int i=1;i<=n;++i) pre[i]=i-1,next[i]=i+1; pre[1]=n,next =1; int p,pace=1; for(int i=1;i<n;++i){ p=pace; for(int j=1;j<t;++j) p=next[p]; pace=next[p],vis[p]=1; pre[next[p]]=pre[p],next[pre[p]]=next[p]; } for(int i=1;i<=n;++i) if(!vis[i]){ printf("%d\n",i); break; } fclose(stdin);fclose(stdout); return 0; }
T3:
//最大的情况很好整,最小的情况我们只要满足题目给出即可,其余的空着,注意在一个合适的位置填数字 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; #define MAXN 1010 int a[MAXN][MAXN],b[MAXN][MAXN],n,m,z[MAXN],c[MAXN]; void Get_Max(){ int sumb=0; for(int i=1;i<=n;++i) for(int j=1;j<=m;++j){ b[i][j]=min(z[i],c[j]); sumb+=b[i][j]; } printf("%d\n",sumb); } int vz[MAXN],vc[MAXN]; void Get_Min(){ int suma=0; for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) if(z[i]==c[j]&&!vz[i]&& ef8c ;!vc[j]) a[i][j]=z[i],vz[i]=1,vc[j]=1; for(int i=1;i<=n;++i) if(!vz[i]){ for(int j=1;j<=m;++j) if(z[i]<=c[j]&&!a[i][j]){ a[i][j]=z[i]; if(z[i]==c[j]) vc[j]=1; break; } } for(int j=1;j<=m;++j) if(!vc[j]){ for(int i=1;i<=n;++i) if(c[j]<=z[i]&&!a[i][j]){ a[i][j]=c[j]; break; } } for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) suma+=a[i][j]; printf("%d ",suma); } int main(){ freopen("neighbor.in","r",stdin); freopen("neighbor.out","w",stdout); scanf("%d%d",&n,&m); for(int i=1;i<=n;++i) scanf("%d",&z[i]); for(int i=1;i<=m;++i) scanf("%d",&c[i]); Get_Min(); Get_Max(); fclose(stdin);fclose(stdout); return 0; }
相关文章推荐
- 软考资料——考试真题和模拟试题
- 2007届高考化学模拟考试试卷
- 第七次CCF认证考试 题目二模拟俄罗斯方块下落的过程
- 2017.7.13 NOIP2017赛前模拟考试总结
- RHCE 考试模拟
- 国家公务员考试模拟试题(2)
- 全国专业技术人员计算机应用能力考试全真模拟考试系统中文windows xp操作系统
- 【NOIP普及组】2016模拟考试(11.1)——生活大爆炸版石头剪刀布
- 今天自己模拟考试限时写了一篇作文,大家看看
- NOIP2016#模拟考试 Day.2# T3 王位继承
- 大学计算机模拟考试常见试题与解析
- 红十字会急救证模拟考试系统 -最后调示完成情况报告
- 2007届高考化学模拟考试试卷
- 最新驾校模拟考试题库大全接口实现及代码示例
- 模拟考试 试题 模拟考核
- 20161031的考试】模拟,暴力取模+矩阵快速幂,搜索脸的dp
- 模拟考试 9.16 (期望dp)
- PMP题库-永久免费的在线PMP模拟考试系统-首页
- 俺设计的基于J2EE架构的模拟考试系统
- 红十字会急救证模拟考试系统 -安装说明