hdoj 3209 Jumping Hands

原创 2012年03月31日 12:15:16

思路:模拟。以钟表中心建立直角坐标系,根据每根针权重计算出重心,确定长度,并根据当前时间确定每根针的角度,计算出相应的x,y坐标,这样每一秒的距离都计算出来了

#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;

const double PI = acos(-1.0);
int l1, l2, l3, m1, m2, m3;
int hh, mm, ss;
int st, ed;

struct Point {
    double x, y;
};

double getdis(Point a, Point b) {
    return sqrt((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y));
}

Point getpoint(int t) {
    Point p, ph, pm, ps;
    double w = m1 + m2 +m3;
    double lh, lm, ls, ah, am, as;
    lh = l1*m1/w;
    lm = l2*m2/w;
    ls = l3*m3/w;
    ah = 2*PI*t/43200;
    am = 2*PI*t/3600;
    as = 2*PI*t/60;
    ph.x = sin(ah)*lh;
    ph.y = cos(ah)*lh;
    pm.x = sin(am)*lm;
    pm.y = cos(am)*lm;
    ps.x = sin(as)*ls;
    ps.y = cos(as)*ls;
    p.x = ph.x + pm.x + ps.x;
    p.y = ph.y + pm.y + ps.y;
    return p;
}

int main() {
    while (1) {
        scanf("%d", &l1);
        if (l1 == -1)
            break;
        scanf("%d %d %d %d %d", &l2, &l3, &m1, &m2, &m3);
        scanf("%d:%d:%d", &hh, &mm, &ss);
        st = hh*3600 + mm*60 + ss;
        scanf("%d:%d:%d", &hh, &mm, &ss);
        ed = hh*3600 + mm*60 + ss;
        Point p1, p2;
        p1 = getpoint(st);
        double ans = 0;
        int i;
        for (i = st+1; i <= ed; ++i) {
            p2 = getpoint(i);
            ans += getdis(p1, p2);
            p1 = p2;
        }
        printf("%.2lf\n", ans/2);
    }
    return 0;
}


BZOJ 3209(花神的数论题-数位统计+1,被数据范围坑了)

3209: 花神的数论题 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 33  Solved: 18 [Submit][Status][Dis...

bzoj3209 花神的数学题

数位DP

BZOJ 3209: 花神的数论题 数位DP

Description背景 众所周知,花神多年来凭借无边的神力狂虐各大 OJ、OI、CF、TC …… 当然也包括 CH 啦。 描述 话说花神这天又来讲课了。课后照例有超级难的神题啦…… 我等蒟蒻...
  • LZJ209
  • LZJ209
  • 2017年05月30日 11:06
  • 122

zoj 3209 Treasure Map 跳舞链好题

原题连接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3209 这个题我想到了用跳舞链,但是我想跳舞链的原理就是搜索,能...

HYSBZ 3209 花神的数论题(数位dp)

3209: 花神的数论题 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1148  Solved: 535 [Submit][Status][...

BZOJ 3209 二进制数位DP

Description背景 众所周知,花神多年来凭借无边的神力狂虐各大 OJ、OI、CF、TC …… 当然也包括 CH 啦。 描述 话说花神这天又来讲课了。课后照例有超级难的神题啦…… 我等蒟蒻...

ZOJ 3209 Treasure Map(Dancing Links)(精确覆盖问题)

题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3209 解题思路: 题目大意: 给你一个n*m的矩形,有p个小...

ZOJ 3209 Treasure Map (DLX精确覆盖问题)

题目大意: 给出一个n*m的矩形, n, m 大致思路: 就是将n*m个小的1*1的正方形视作一个单位做精确覆盖问题就好了 最坏情况下900列, 500行, 直接用DLX就可以 ...

[ACM] ZOJ 3209 Treasure Map ( Dancing Links 精确覆盖,矩形覆盖)

Treasure Map Time Limit: 2 Seconds      Memory Limit: 32768 KB Your boss once had got many c...

bzoj 3209 花神的数论题(数位dp)

3209: 花神的数论题 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 980  Solved: 460 [Submit][Status][Disc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdoj 3209 Jumping Hands
举报原因:
原因补充:

(最多只允许输入30个字)