跳至内容
CVBB ACM Team
用户工具
注册
登录
站点工具
搜索
工具
显示页面
修订记录
Copy this page
导出 PDF
反向链接
最近更改
媒体管理器
网站地图
注册
登录
>
最近更改
媒体管理器
网站地图
您在这里:
front_page
»
2020-2021
»
teams
»
namespace
»
7.23cf加训
2020-2021:teams:namespace:7.23cf加训
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
======7.23CF加训====== 莫名感觉CF的架构比牛客不容易上手,总之用起来有点艰难…… 贴一个补题吧: =====B===== 不知为何,GNU C11始终过不了,但是GNU C++ 17就可以……不知哪里出了问题。 <hidden> <code C> #include<stdio.h> #include<math.h> const double pi=acos(-1); int n; double g[15],l[15],k[15]; double Sin(double k) { return (k>0?1:-1)*sqrt((k*k)/(1+(k*k))); } double Cos(double k) { return sqrt(1/(1+(k*k))); } double solve(double k0,double kn) { double c=(k0-kn)/(g[n]-g[0]+g[n-1]-g[1]),rt=0; int i; for(i=1;i<=n;i++) { k[i]=kn+c*(g[n]-g[i-1]+g[n-1]-g[i]); rt+=l[i]*Sin(k[i]); } return rt; } double judge(double k0) { double ll=-pi/2,rr=0,mid; while((rr-ll)>3e-16) { mid=(ll+rr)/2; (solve(tan(k0),tan(mid))>0)?(rr=mid):(ll=mid); } double rt=0; int i; for(i=1;i<=n;i++) { rt+=l[i]*Cos(k[i]); } return rt; } int main() { double L; scanf("%d%lf",&n,&L); int i; for(i=1;i<=n;i++) { scanf("%lf",&l[i]); g[i]=g[i-1]+l[i]; } double ll=0,rr=pi/2,mid; while((rr-ll)>3e-16) { mid=(ll+rr)/2; (judge(mid)<L)?(rr=mid):(ll=mid); } double x=0,y=0; for(i=1;i<n;i++) { x+=l[i]*Cos(k[i]); y+=l[i]*Sin(k[i]); printf("%.10lf %.10lf\n",x,y); } return 0; } </code> </hidden>
2020-2021/teams/namespace/7.23cf加训.txt
· 最后更改: 2020/07/25 20:26 由
great_designer
页面工具
显示页面
修订记录
反向链接
Copy this page
导出 PDF
回到顶部