The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest
2011-09-11 21:42
507 查看
这场比赛我们队做了三题,4033,4034,4039,再多一点点时间4036还可以出的,没时间去看这个题了,赛后稍微想了一下就出了,这几个题在所有题里应该都算是简单题!
我做了4033,还把公式写反了,cos(x)=(a^2+b^2-c^2/(2*a*b),被我写成了cos(x)=(c^2-a^2-b^2)/(2*a*b),真是脑残!上一场的比赛本来已经想出了方法的,还多跑了一个IDA*,各种脑残呀!
1.4033(二分答案,注意精度公式别写错就没问题了)
2.4039(直接能量守恒求出初使的速度,取最大值最行了)
注意一点,给出的人不一定按x的坐标有序,害我无限WA。
我做了4033,还把公式写反了,cos(x)=(a^2+b^2-c^2/(2*a*b),被我写成了cos(x)=(c^2-a^2-b^2)/(2*a*b),真是脑残!上一场的比赛本来已经想出了方法的,还多跑了一个IDA*,各种脑残呀!
1.4033(二分答案,注意精度公式别写错就没问题了)
#include <iostream> #include<cmath> using namespace std; const double PI=acos((double)-1.0); const double HPI=PI/2,DPI=2*PI; const double EPS=1e-10; #define N 110 double a ,aa ; int main() { int cases; scanf("%d",&cases); for(int k=1;k<=cases;k++) { double l=0,r=1e200,mid; int i,n; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%lf",a+i); aa[i]=a[i]*a[i]; }//mid*mid for(i=0;i<n;i++) { double tmp=a[i]+a[(i+1)%n]; if(r>tmp)r=tmp; tmp=fabs(a[i]-a[(i+1)%n]); if(l<tmp)l=tmp; } printf("Case %d: ",k); double ans; bool f=false; while(r-l>EPS) { ans=0; mid=(l+r)/2; for(i=0;i<n;i++) { int next=(i+1)%n; double tmp=acos((aa[i]+aa[next]-mid*mid)/(2*a[i]*a[next])); ans+=tmp; } if(ans-DPI>EPS)r=mid; else if(DPI-ans>EPS)l=mid; else { printf("%.3lf\n",mid); f=true; break; } } if(!f)printf("impossible\n"); } return 0; }
2.4039(直接能量守恒求出初使的速度,取最大值最行了)
注意一点,给出的人不一定按x的坐标有序,害我无限WA。
#include <iostream> #include<cstdio> #include<cmath> using namespace std; //const double EPS=1e-10; #define N 1010 struct Point{ double x,y; }p ; double cal(int cur,double x0) { double t=(p[cur-1].x-x0)*(p[cur-1].y-p[cur].y)/(p[cur-1].x-p[cur].x); return p[cur-1].y-t; } int main() { #ifndef ONLINE_JUDGE freopen("data.in", "r", stdin); //freopen("data.out","w",stdout); #endif int cases; cin>>cases; for(int i=1;i<=cases;i++) { int j,n,m; double x,y,w,maxh=0,v,vv; scanf("%d%d%lf",&n,&m,&w); for(j=0;j<n;j++) { scanf("%lf%lf",&p[j].x,&p[j].y); maxh=p[j].y>maxh?p[j].y:maxh; } vv=40*(maxh-p[0].y); for(j=0;j<m;j++) { scanf("%lf%lf%lf",&x,&v,&w); int cur=1; while(x>p[cur].x)cur++; y=cal(cur,x); double tmp=v*v+40*(y-p[0].y); vv=tmp>vv?tmp:vv; } printf("Case %d: %.2lf\n",i,sqrt(vv)); } return 0; }
相关文章推荐
- HDU 4031 Attack(离线+线段树)(The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest)
- HDU 4033 4036 4039 The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest
- 【转】The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest 出题报告
- The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest题解
- HDU 4034 Graph The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest
- 2011 大连网络赛 The 36th ACM/ICPC Asia Regional Dalian Site —— Online Contest 解题报告
- The 36th ACM/ICPC Asia Regional Dalian Site —— Online Contest hdu4007
- The 36th ACM/ICPC Asia Regional Beijing Site Online Contest - G Panda
- The 36th ACM/ICPC Asia Regional Shanghai Site —— Warmup
- The 36th ACM/ICPC Asia Regional Dalian Site 1006 Dave
- The 36th ACM/ICPC Asia Regional Beijing Site Online Contest - G Panda
- The 36th ACM/ICPC Asia Regional Dalian Site —— Online Contest Find the maximum
- 4007 Dave(The 36th ACM/ICPC Asia Regional Dalian Site —— Online Contest)
- HDU4023 Game The 36th ACM/ICPC Asia Regional Shanghai Site —— Online Contest
- HDU 4063 Aircraft(计算几何)(The 36th ACM/ICPC Asia Regional Fuzhou Site —— Online Contest)
- hdu 4011 The 36th ACM/ICPC Asia Regional Shanghai Site —— Warmup Working in Beijing
- The 36th ACM/ICPC Asia Regional Beijing Site Online Contest - B_Eliminate Witches!
- The 36th ACM/ICPC Asia Regional Dalian Site —— Online Contest &&The kth great number
- The 36th ACM/ICPC Asia Regional Shanghai Site —— Warmup hdu 4016 Magic Bitwise And Operation
- hdu 4038 Stone The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest