A. Srdce and Triangle--“今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛)
如下图这是“今日头条杯”首届湖北省大学程序设计竞赛的第一题,作为赛后补题
题目描述:链接点此
这套题的github地址(里面包含了数据,题解,现场排名):点此

Let be a regualr triangle, and D is a point in the triangle. Given the angle of
. Then let AD, CD and BD form a new triangle, what is the size of the three angles?
输入描述:
Input contains multiple cases, please process to the end of input.
For each line in the input, contains three integers, $\alpha, \beta, \gamma$, which are the size of the angel ,
and
in degree.
输出描述:
For each line of input, output one line with three numbers in ascending order, the three angles in the new triangle, your answer will be considered as correct if and only if the relative or absolute error is less than
, If the new triangle cannot be formed, output -1 -1 -1 instead.
题目解析:就是一个等边三角形,然后在等边三角形内有一点D,已知 ,
and
,求以AD,BD,CD为边构成的三角形的内角。
现场列了三个方程:

但是很难受,解方程解了3个小时,并没有算出来(可能是我数学太弱了),后来想二分,二分角DAB,但是现场wa了,回头补上来,
现在说一种十分简单的方法:
这是不是一个代数题,是一道解题目,我们把三角形ABC逆时针旋转60度,如下图:

就会出现以abc为边构成的三角形PP'C,由于ΔAPP'是等边三角形,所以可以求出三个角分别为 ,
and
减去60度,这是个水题啊。(ORZ,卡了4个小时)
/*
data:2018.04.22
author:gsw
link:https://www.nowcoder.com/acm/contest/104#question
tip:武大校赛--补题
*/
#define IO ios::sync_with_stdio(false);
#define ll long long #include<iostream>
#include<string.h>
#include<math.h>
#include<stdio.h>
#include<vector>
#include<algorithm> using namespace std; int main()
{
int a,b,c;
while(~scanf("%d%d%d",&a,&b,&c))
{
int ans[];
ans[]=a-;
ans[]=b-;
ans[]=c-;
sort(ans,ans+);
printf("%d %d %d\n",ans[],ans[],ans[]);
}
}
下面会有二分的做法:
对角DAB进行二分,我试了好几次,把所有的优化都做了,要把esp调到1e-12才可以过
然后注意几点优化:把所有的变量定义放在外面,这个优化挺重要的。
/*
data:2018.04.22
author:gsw
link:https://www.nowcoder.com/acm/contest/104#question
tip:武大校赛--补题
*/
#define IO ios::sync_with_stdio(false);
#define ll long long #include<iostream>
#include<string.h>
#include<math.h>
#include<stdio.h>
#include<vector>
#include<algorithm>
int a,b,c;
using namespace std; const double expp=1e-;
const double pi=3.14159265358;
const double g3=sqrt()/;
double cosc,x,y,ad,cd,bd,cos_c,th1,th2,mid,ans[];
inline bool judge(double th1)
{
th2=-a-th1;
th1=th1/*pi;th2=th2/*pi;
th1=tan(th1);th2=tan(th2);
x=th2/(th2+th1);
y=x*th1;
//cout<<"x= "<<x<<" "<<y<<endl;
ad=x*x+y*y;
cd=(x-0.5)*(x-0.5)+(y-g3)*(y-g3);
cos_c=(ad+cd-)/(*sqrt(ad*cd));
//cout<<cos_c<<" "<<cosc<<endl;
if(cos_c>cosc)return ;
else return ;
}
inline double ef(double l,double r)
{
while(r-l>expp)
{
mid=(l+r)/;
if(judge(mid))l=mid;
else r=mid;
//cout<<l<<" "<<r<<endl;
}
return l;
}
int main()
{
//freopen("temin.txt","r",stdin);
//freopen("temout.txt","w",stdout); while(~scanf("%d%d%d",&a,&b,&c))
{
cosc=cos((double)c/*pi);
th1=ef(,min(-a,));
th2=-a-th1;
th1=th1/*pi;th2=th2/*pi;
th1=tan(th1);th2=tan(th2);
x=th2/(th2+th1);
y=x*th1;//th2*th1/(th2+th1);
//cout<<x<<" "<<y<<endl;
ad=x*x+y*y;
cd=(x-0.5)*(x-0.5)+(y-g3)*(y-g3);
bd=(x-)*(x-)+y*y;
//cout<<ad<<" "<<cd<<" "<<bd<<endl;
ans[]=acos((ad+cd-bd)/(*sqrt(ad*cd)))/pi*;
ans[]=acos((ad+bd-cd)/(*sqrt(ad*bd)))/pi*;
ans[]=acos((bd+cd-ad)/(*sqrt(bd*cd)))/pi*;
sort(ans,ans+);
printf("%f %f %f\n",ans[],ans[],ans[]);
}
}

再此跟新::

这个优化还是不到位啊,有时t,有时A。时间总是差个几毫秒
A. Srdce and Triangle--“今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛)的更多相关文章
- “今日头条杯”首届湖北省大学程序设计竞赛--F. Flower Road
题目链接:点这 github链接:(包含数据和代码,题解):点这 链接:https://www.nowcoder.com/acm/contest/104/E来源:牛客网 题目描述 (受限于评测机,此题 ...
- “今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛 )--E. DoveCCL and Resistance
题目描述:链接点此 这套题的github地址(里面包含了数据,题解,现场排名):点此 链接:https://www.nowcoder.com/acm/contest/104/D来源:牛客网 题目描述 ...
- I. Five Day Couple--“今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛)
题目描述:链接点此 这套题的github地址(里面包含了数据,题解,现场排名):点此 链接:https://www.nowcoder.com/acm/contest/104/H来源:牛客网 题目描述 ...
- D. Who killed Cock Robin--“今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛)
题目描述:链接点此 这套题的github地址(里面包含了数据,题解,现场排名):点此 题目描述 由于系统限制,C题无法在此评测,此题为现场赛的D题 Who killed Cock Robin? I, ...
- H. GSS and Simple Math Problem--“今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛)
题目描述:链接点此 这套题的github地址(里面包含了数据,题解,现场排名):点此 题目描述 Given n positive integers , your task is to calculat ...
- “东信杯”广西大学第一届程序设计竞赛(同步赛)H
链接:https://ac.nowcoder.com/acm/contest/283/H来源:牛客网 题目描述 由于临近广西大学建校90周年校庆,西大开始了喜闻乐见的校园修缮工程! 然后问题出现了,西 ...
- 2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛)E-缺席的神官
链接:https://ac.nowcoder.com/acm/contest/3036/E 来源:牛客网 题目描述 面前的巨汉,让我想起了多年前的那次,但这个巨汉身上散布着让人畏惧害怕的黑雾.即使看不 ...
- Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again
Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again https://ac.nowcoder.com/acm/contest/700/I 时间限制:C/C++ 1 ...
- 2018今日头条杯 E-Jump a Jump
Problem E. Jump A JumpInput file: standard inputOutput file: standard outputTime limit: 1 secondsMemor ...
随机推荐
- PHP基础知识总结(三) 流程控制、函数、类对象和数据库
PHP基础语法 1.流程控制 条件语句:if elseif else / switch if($a == 1){ …… } elseif ($a == 2){ …… } else{ …… } 循环 ...
- line-height继承
父元素设置ling-height;子元素继承父元素的line-height 1.ling-height:固定像素 body{ font-size:20px; line-height: 24px; } ...
- error LNK2005: __get_invalid_parameter_handler 已经在 LIBCMTD.lib(invarg.obj) 中定义
转自VC错误http://www.vcerror.com/?p=166 问题描述: 在用vs2012编译程序的时候,release版本正常编译通过,但Debug版本提示下面的很多错误; 1>LI ...
- 将已有的lng lat 字段转换成point类型字段
利用拼接字符串转换point select GeomFromText(CONCAT('POINT(',lng,' ',lat,')')) from community limit 1; 插入字段到新表 ...
- ceph命令拷屏
常用命令ceph -w ceph df ceph features ceph fs ls ceph fs status ceph fsid ceph health ceph -s ceph statu ...
- 将libvex移植到Visual Studio编译平台下的经验总结
1. 两难 将libvex从Linux移植到Windows,移植工作聚集于Cross-Compiler,而不是预料的Cross-Platform. VC++ Compiler到目前为止只支持C89标准 ...
- JAVA中一个汉字占多少个字符(转载)
1.先说重点: 不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的,可能是2个.3个.4个字节: 2.以下是源码: 1 @Test 2 public void test1() ...
- 打开myeclipse出现这个错是为什么
- helm-mode打开文件支持中文搜索
helm-mode打开文件支持中文搜索 */--> code {color: #FF0000} pre.src {background-color: #002b36; color: #83949 ...
- Optional int parameter 'pId' is present but cannot be translated into a null value due to being declared as a primitive type.
接口测试的时候遇到了一个问题,导致测试阻断了好久,在此记录,谨防忘记. 具体报错如下: Optional int parameter 'pId' is present but cannot be tr ...