2015-02-07 02:10:27

  题目很有欧洲赛区的风格... 模拟赛过程不太顺利,习惯于国内的 技巧 and 算法 式解题,而忽略了计算机的最大优势:高速计算,也就是“暴力”!

  然后数学题居多...

A - Murphy's Law(Ural 1800):

  物理题。注意一下单位,l(cm),h(cm),w(转/分钟)

  首先考虑:当重心降到 l/2 的位置时答案就可以确定了(思考),算出时间:t = sqrt(2 * h - l) / g,再算出每转90度需要的时间 : t0 = 90 / (w * 6.0)

  这样就可以算出重心降到 l/2 时面包转了k个90度,根据求出的k(mod 4),判断:若k<1 || k > 3,那么是“butter”,否则就是“bread”

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <cstdlib>
 4 #include <cmath>
 5 #include <vector>
 6 #include <map>
 7 #include <set>
 8 #include <stack>
 9 #include <queue>
10 #include <string>
11 #include <iostream>
12 #include <algorithm>
13 using namespace std;
14 
15 #define MEM(a,b) memset(a,b,sizeof(a))
16 #define REP(i,n) for(int i=0;i<(n);++i)
17 #define REV(i,n) for(int i=(n-1);i>=0;--i)
18 #define FOR(i,a,b) for(int i=(a);i<=(b);++i)
19 #define RFOR(i,a,b) for(int i=(a);i>=(b);--i)
20 #define getmid(l,r) ((l) + ((r) - (l)) / 2)
21 #define MP(a,b) make_pair(a,b)
22 
23 typedef long long ll;
24 typedef pair<int,int> pii;
25 const int INF = (1 << 30) - 1;
26 
27 double l,h,w;
28 
29 int main(){
30     scanf("%lf%lf%lf",&l,&h,&w);
31     if(2 * h < l){
32         printf("butter\n");
33         return 0;
34     }
35     l /= 100.0;
36     h /= 100.0;
37     w *= 6.0;
38     double t = sqrt((2 * h - l) / 9.81) / (90.0 / w);
39     t = t - (int)(t / 4) * 4;
40     if(t < 1 || t > 3)    printf("butter\n");
41     else printf("bread\n");
42     return 0;
43 }
View Code

相关文章:

  • 2021-12-10
  • 2021-12-15
  • 2021-07-07
  • 2022-02-14
  • 2021-12-19
  • 2022-12-23
  • 2021-07-19
  • 2022-12-23
猜你喜欢
  • 2021-11-14
  • 2021-10-26
  • 2021-07-13
  • 2021-10-10
  • 2021-07-20
  • 2021-11-12
  • 2021-11-15
相关资源
相似解决方案