精华内容
下载资源
问答
  • [Nwerc2015]Hole in One一杆进洞 Description Janine recently went to her local game store and bought “Hole in One”, a new mini-golf game for her computer. As indicated by the name, the objective...

    [Nwerc2015]Hole in One一杆进洞

    Description
    Janine recently went to her local game store and bought “Hole in One”, a new mini-golf game for her computer. As indicated by the name, the objective of the game is to shoot a ball into a hole using just one shot. The game also borrows elements from brick breaker style games: in the playing field, several walls are placed that will be destroyed upon being hit by the ball. The score of a successful shot depends on the number of destroyed walls, so Janine wonders: what is the maximum number of walls that can be hit while performing a “Hole in One”?
    For the purposes of this problem you can think of the playing field as a cartesian plane with the initial position of the ball at the origin. The walls are non-intersecting axis-parallel line segments in this plane (i.e., parallel to either the x axis or the y axis). The diameter of the ball is negligible so it is represented as a single point.
    Figure 1: Illustration of the first sample input: The ball first bounces off two walls at points 1 and 2. When it passes point 3 the wall has already vanished.
    Whenever the ball hits a wall, two things happen:
    The direction of the ball changes in the usual way: the angle of incidence equals the angle of reflection.
    The wall that the ball touched is destroyed. Following common video game logic, no rubble of the wall remains; it will be as though it vanished.
    The behaviour of the ball is also affected by the power of the shot. In particular, an optimal shot may need to first roll over the hole, then hit some more walls, and only later drop into the hole.
    The input consists of:
    one line with one integer n (0≤n≤8), the number of walls;
    one line with two integers x and y, the coordinates of the hole;
    nn lines each with four integers x1, y1, x2, and y2 (either x1=x2, or y1=y2, but not both), representing a wall with end points (x1,y1) and (x2,y2).
    The hole is not at the origin and not on a wall. The walls do not touch or intersect each other. No wall lies completely on the x axis or the y axis. All coordinates in the input are integers with absolute value at most 1000.
    If there is no way to shoot the ball such that it reaches the hole, print “impossible”. Otherwise, print the maximum number of walls that can be destroyed in a single “Hole in One” shot.
    珍妮最近去当地的游戏商店买了“一杆进洞”,一个新的迷你高尔夫电脑游戏。正如名称所示,这个游戏的目标是,将球只用一击击进洞里。游戏还借鉴了打砖块风格的游戏元素:在场上,放置了一些墙,它们被球击中就会被摧毁。一个成功的击球的得分取决于破坏墙的数量,所以珍妮不禁要问:在一次“一杆进洞”中能够摧毁的最多的墙数量是多少?
    对于这个问题的意向,你可以认为,比赛场地为笛卡尔坐标平面,球的最初位置在原点。墙壁为在该平面中互不相交且与坐标轴平行的线段(即平行于x轴或y轴)。球的直径非常小以至于把它当成一个点。
    图1:第一个样例输入的插图:球首先经过1,2号点,并在3号点时穿过了被摧毁的墙。
    每当球碰到一堵墙,会发生:
    球的方向以通常的方式改变:入射角等于反射角。
    被球触碰的墙被破坏。 游戏逻辑规定,没有墙的废墟存在,认为它消失了。
    球的行为也受到击球的力影响。特别的是,最佳的击球可能需要将鼠标放在洞上,然后摧毁一些墙壁,并且只是延迟入洞。
    Input
    一行一个整数n(0≤n≤8),墙壁的数量。
    一行两个整数x和y,洞的坐标。
    n行,每行各有四个整数x1,y1,x2与y2(x1 = x2或y1 = y2,但不会满足两者),表示墙壁的两个端点。
    洞不会在原点也不会在墙上。墙壁不会互相接触或交叉。没有墙会完全在x轴或y轴上。输入的所有的坐标都是整数且绝对值最大1000。
    Output
    如果没有办法一击入洞,输出“impossible”。否则,输出在一次“一杆进洞”中能够摧毁的最多的墙的数量。
    Sample Input
    Sample Input 1
    3
    4 2
    1 1 1 2
    2 1 2 2
    3 1 3 2
    Sample Input 2
    1
    2 0
    1 -1 1 1
    Sample Input 3
    2
    -2 4
    2 4 2 2
    0 6 -2 6
    Sample Output
    Sample Output 1
    2
    Sample Output 2
    Impossible
    Sample Output 3
    2

    Solution
    首先从大到小枚举答案,再答案!枚举方案,通过镜面对称终点得到路线,然后平方验证路线
    注意细节

    Code

    #include <bits/stdc++.h>
    using namespace std;
    #define MS(_) memset(_,0,sizeof(_))
    template<typename T> inline void read(T &x){
        x=0; T f=1; char ch=getchar();
        while (!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar(); }
        while (isdigit(ch))  {x=x*10+ch-'0'; ch=getchar(); }
        x*=f;
    }
    
    const int INF=0x7fffffff;
    const int MaxN=100;
    const double eps=0;
    struct Vec{
        double x,y;
        Vec(){}
        Vec(double _x,double _y):x(_x),y(_y){}
    }p1[MaxN],p2[MaxN],T,p[MaxN];
    inline Vec operator + (const Vec &a,const Vec &b){return Vec(a.x+b.x,a.y+b.y);}
    inline Vec operator - (const Vec &a,const Vec &b){return Vec(a.x-b.x,a.y-b.y);}
    template<typename T>inline Vec operator * (const Vec &a,T b){return Vec(a.x*b,a.y*b);}
    template<typename T>inline Vec operator * (T &a,const Vec &b){return Vec(a*b.x,a*b.y);}
    template<typename T>inline Vec operator / (const Vec &a,T b){return Vec(a.x/b,a.y/b);}
    inline double cross(const Vec &a,const Vec &b){return a.x*b.y-b.x*a.y;}
    inline double dot(const Vec &a,const Vec &b){return a.x*b.x+a.y*b.y;}
    typedef Vec Poi;
    int n,N,type[MaxN],used[MaxN],vis[MaxN],lst[MaxN],ans;
    
    inline Poi calnxt(const Vec &a,int no){return type[no]?Vec(a.x,p1[no].y*2-a.y):Vec(p1[no].x*2-a.x,a.y);}
    inline Vec caldot(Poi a,Poi b,Poi c,Poi d){
        if (a.x==b.x){
            if (c.x==d.x) return Vec(-INF,-INF);
            if (c.y==d.y) {swap(a,c);swap(b,d);}
        }    
        double k=(b.y-a.y)/(b.x-a.x),dt=b.y-k*b.x;
        if (c.x==d.x) return Vec(c.x,k*c.x+dt);
        else return Vec((c.y-dt)/k,c.y);
    }
    inline bool shot(){
        Poi now=Vec(0.,0.); MS(used);
        for (int i=N;i;i--){
            Poi nxt=p[i],wall1=p1[lst[i]],wall2=p2[lst[i]];
            Poi point=caldot(now,nxt,wall1,wall2);
            if(dot(point-wall1,point-wall2)>0||dot(point-now,point-nxt)>0) return false;
            used[lst[i]]=1;
            for (int j=1;j<=n;j++) if (!used[j]){
                Poi point2=caldot(now,point,p1[j],p2[j]);
                if(dot(point2-p1[j],point2-p2[j])<=0&&dot(point2-now,point2-point)<=0) return false;
            }
            now=point;
        }
        Poi nxt=p[0];
        for (int j=1;j<=n;j++) if (!used[j]){
            Poi point2=caldot(now,nxt,p1[j],p2[j]);
            if(dot(point2-p1[j],point2-p2[j])<=0&&dot(point2-now,point2-nxt)<=0) return false;
        }
        return true;
    }
    
    inline void check(){
        p[0]=T;
        for (int i=1;i<=N;i++)p[i]=calnxt(p[i-1],lst[i]);
        if (shot()) ans=N;  
    }
    void dfs(int dep){
        if (~ans) return;
        if (dep>N) {check();return;}
        for(int i=1;i<=n;i++){
            if (!vis[i]){vis[lst[dep]=i]=1; dfs(dep+1); vis[i]=0;}
            if (~ans) return;
        }   
    }
    int main(){
        read(n);
        read(T.x);read(T.y);
        for(int i=1;i<=n;i++){read(p1[i].x);read(p1[i].y);read(p2[i].x);read(p2[i].y);}
        for(int i=1;i<=n;i++) 
            if (p1[i].x==p2[i].x){type[i]=0; if (p1[i].y>p2[i].y) swap(p1[i],p2[i]);}
            else{type[i]=1; if (p1[i].x>p2[i].x) swap(p1[i],p2[i]);}
    
        ans=-1;
        for(int i=n;i>=0;i--){
            N=i; dfs(1); 
            if (~ans) break;
        }
        if (!~ans) puts("impossible"); else printf("%d\n",ans);
        return 0;
    }
    展开全文
  • 从原点开始,按顺序弹向下目标点,找到线段与对应墙的交点作为反射点,判断是否合法 Code #include using namespace std ; #define rep(i, a, b) for(int i = (a); i (b); i++) #define red(i...

    Problem

    Description

    Janine recently went to her local game store and bought “Hole in One”, a new mini-golf game for her computer. As indicated by the name, the objective of the game is to shoot a ball into a hole using just one shot. The game also borrows elements from brick breaker style games: in the playing field, several walls are placed that will be destroyed upon being hit by the ball. The score of a successful shot depends on the number of destroyed walls, so Janine wonders: what is the maximum number of walls that can be hit while performing a “Hole in One”?
    For the purposes of this problem you can think of the playing field as a cartesian plane with the initial position of the ball at the origin. The walls are non-intersecting axis-parallel line segments in this plane (i.e., parallel to either the x axis or the y axis). The diameter of the ball is negligible so it is represented as a single point.
    这里写图片描述
    Figure H.1: Illustration of the first sample input: The ball first bounces off two walls at points 1 and 2. When it passes point 3 the wall has already vanished.

    Whenever the ball hits a wall, two things happen:

    • The direction of the ball changes in the usual way: the angle of incidence equals the angle of reflection.
    • The wall that the ball touched is destroyed. Following common video game logic, no rubble of the wall remains; it will be as though it vanished.

    The behaviour of the ball is also affected by the power of the shot. In particular, an optimal shot may need to first roll over the hole, then hit some more walls, and only later drop into the hole.

    Input

    The input consists of:

    • one line with one integer n (0 ≤ n ≤ 8), the number of walls;
    • one line with two integers x and y, the coordinates of the hole;
    • n lines each with four integers x1,y1,x2 and y2 (either x1=x2 , or y1=y2 , but not both), representing a wall with end points (x1,y1) and (x2,y2) .

    The hole is not at the origin and not on a wall. The walls do not touch or intersect each other.
    No wall lies completely on the x axis or the y axis. All coordinates in the input are integers with
    absolute value at most 1 000.

    Output

    If there is no way to shoot the ball such that it reaches the hole, print “impossible”. Otherwise, print the maximum number of walls that can be destroyed in a single “Hole in One” shot.

    Sample Input

    Sample Input 1
    3
    4 2
    1 1 1 2
    2 1 2 2
    3 1 3 2
    Sample Input 2
    1
    2 0
    1 -1 1 1
    Sample Input 3
    2
    -2 4
    2 4 2 2
    0 6 -2 6

    Sample Output

    Sample Output 1
    2
    Sample Output 2
    Impossible
    Sample Output 3
    2

    Source

    NWERC 2015 Problem H

    Solution

    这里写图片描述

    1. 枚举所有可能的撞击墙壁的方案,包括撞击哪些墙,和撞击的顺序
    2. 从目标点T开始,计算小球每一次弹射的目标点(也就是按逆序对每堵墙取轴对称点)
    3. 从原点开始,按顺序弹向下一目标点,找到线段与对应墙的交点作为反射点,判断是否合法

    Code

    #include <bits/stdc++.h>
    using namespace std;
    #define rep(i, a, b) for(int i = (a); i <= (b); i++)
    #define red(i, a, b) for(int i = (a); i >= (b); i--)
    #define ll long long
    #define y1 yy1
    #define abs Abs
    #define Vector Point
    
    inline int read() {
        int x = 0, f = 1; char c = getchar();
        while(!isdigit(c)) { if (c == '-') f = -1; c = getchar(); }
        while(isdigit(c)) { x = x * 10 + c - '0'; c = getchar(); }
        return x * f;
    }
    template<typename tn> void cmax(tn& a, tn b) { if (b > a) a = b; }
    template<typename tn> void cmin(tn& a, tn b) { if (b < a) a = b; }
    template<typename tn> tn abs(tn x) { return x < 0 ? -x : x; }
    
    const int N = 20;
    const double eps = 1e-8;
    struct LINE{
        double x1, y1, x2, y2; int tag;
    }w[N];
    struct Point{
        double x, y;
        Point(double x = 0, double y = 0):x(x),y(y) { }
    }p[N];
    int n, flag = 0, line[N], l[N], vis[N], used[N];
    double xs, ys, xt, yt;
    
    Vector operator + (Vector A, Vector B) { return Vector(A.x + B.x, A.y + B.y); }
    Vector operator - (Point A, Point B) { return Vector(A.x - B.x, A.y - B.y); }
    int dcmp(double x) {
        if (fabs(x) < eps) return 0;
        else return x < 0 ? -1 : 1;
    }
    bool operator == (const Point& A, const Point& B) {
        return dcmp(A.x - B.x) == 0 && dcmp(A.y - B.y) == 0;
    }
    double dot(Vector A, Vector B) { return A.x * B.x + A.y * B.y; }
    double cross(Vector A, Vector B) { return A.x * B.y - A.y * B.x; }
    Point Get_Inter(Point p, Vector v, LINE w) {
        double xt, yt;
        if (w.tag) {
            yt = w.y1;
            xt = (yt - p.y) * v.x / v.y + p.x;
        }else {
            xt = w.x1;
            yt = (xt - p.x) * v.y / v.x + p.y;
        }
        return Point(xt, yt);
    }
    bool On_Wall(Point p, LINE w) {
        if (w.tag) return (p.x >= w.x1 && p.x <= w.x2);
        else return (p.y >= w.y1 && p.y <= w.y2);
    }
    bool On_Seg(Point p, Point a1, Point a2) { return dcmp(dot(a1 - p, a2 - p)) <= 0; }
    void solve(int m) {
        memset(used, 0, sizeof(used));
        double X = xt, Y = yt;
        rep(i, 1, m) l[i] = line[i]; l[m + 1] = 0;
        red(i, m, 1) {
            if (w[l[i]].tag) Y = 2 * w[l[i]].y1 - Y;
            else X = 2 * w[l[i]].x1 - X;
            p[i] = Point(X, Y);
        }
        p[++m] = Point(xt, yt);
        Point now = Point(0, 0);
        rep(i, 1, m) {
            Vector dir = p[i] - now;
            Point rev_p;
            if (i != m) {
                if (w[l[i]].tag == 1 && dcmp(dir.y) == 0) return;
                if (w[l[i]].tag == 0 && dcmp(dir.x) == 0) return;
                rev_p = Get_Inter(now, dir, w[l[i]]);
                if (!On_Seg(rev_p, now, p[i])) return;
                if (!On_Wall(rev_p, w[l[i]])) return;
            }else rev_p = p[m];
            rep(j, 1, n) {
                if (used[j] || j == l[i]) continue;
                if (w[j].tag == 1 && dcmp(dir.y) == 0) continue;
                if (w[j].tag == 0 && dcmp(dir.x) == 0) continue;
                Point tmp = Get_Inter(now, dir, w[j]);
                if (!On_Wall(tmp, w[j])) continue;
                if (On_Seg(tmp, now, rev_p)) return; 
            }
            now = rev_p; used[l[i]] = 1;
        }
        flag = 1;
        return;
    }
    void dfs1(int lim, int dep) {
        if (dep > lim) { solve(lim); return; }
        rep(i, 1, n) {
            if (vis[i]) continue;
            line[dep] = i; vis[i] = 1;
            dfs1(lim, dep + 1);
            if (flag) return;
            vis[i] = 0;
        }
    }
    
    int main() {
        freopen("H.in", "r", stdin);
        freopen("H.out", "w", stdout);
        n = read();
        if (n == 0) { printf("0\n"); return 0; }
        xs = ys = 0;
        xt = (double)read(); yt = (double)read();
        rep(i, 1, n) {
            int x1 = read(), y1 = read(), x2 = read(), y2 = read();
            if (x1 > x2) swap(x1, x2);
            if (y1 > y2) swap(y1, y2);
            w[i].x1 = (double)x1; w[i].y1 = (double)y1;
            w[i].x2 = (double)x2; w[i].y2 = (double)y2;
            w[i].tag = dcmp(x1 - x2) != 0;
        }
        red(num, n, 0) {
            memset(vis, 0, sizeof(vis));
            dfs1(num, 1);
            if (flag) { printf("%d\n", num); break; }
        }
        if (!flag) printf("impossible\n");
        return 0;
    }
    

    尾声

    判断合法状态真的很蛋疼。。炸到只有三十分,后来发现是没有判断南辕北辙的情况,也就是这样
    || × –> ×
    是不是很像一个表情。。

    End.

    展开全文
  • 有时我们可能只是用很大的力气随便朝一个方向打出一杆,球经过多次反弹后竟然准确地落入袋中。于是,我们打台球时经常会说,大力出奇迹。但所谓的“大力出奇迹“真的只是因为运气好么?这种说法是否有科学依据?今天...
    c206fe6341f2c3a3f5949d5a48a1b6eb.png 今天,数模君想和大家一起交流一下打台球的经验,如果你也是一个经常打台球的人,那么可能有这样的体会: 有时我们认真瞄准了球,计算好了角度,结果打出去的球却完美偏离了我们预想的路线;有时我们可能只是用很大的力气随便朝一个方向打出一杆,球经过多次反弹后竟然准确地落入袋中。 9d8e66e5fb9623c8fb198ac344b06ff0.png 于是,我们打台球时经常会说, 大力出奇迹 。 但所谓的“大力出奇迹“真的只是因为运气好么?这种说法是否有科学依据?今天,让我们从数学建模的角度来“一本正经”地分析一下。 44a8fc1c127e4e6947098b9b43eb9bb9.png

    1、问题假设

    为了模拟“大力”击打台球时的情形,我们首先进行一些假设:
    • 球杆击中球的中心,球的初速度方向和力一致;

    • 击球力度足够大,以致可以忽略台球桌和台球之间的摩擦力;

    • 台球不会旋转,只沿直线运动;

    • 忽略台球撞击球桌时的动能损耗。

    1dd1b8f82a29cb15a120274ce79f1475.png 在这些假设条件下,台球只要不进袋,就可以进行无限次的反弹。台球在触碰球桌边缘后,遵循镜面反射原理,入射角度与反射角度相等,即: e690fb891f8ab862cfbd499314f6206f.png   那么台球经过多次反弹之后,是否会更容易落入球袋呢?

    2、MATLAB仿真

    数模君参考了球桌尺寸,在MATLAB中绘制了台球桌及六个袋的位置。 0566eb93e321e3be91c3510f9eb7b95d.png 在仿真过程中,首先在球桌上随机设定台球的起始位置,然后随机选择为台球确定一个运动方向向量,如果台球没有进洞且没有碰到球桌边缘,则台球沿当前方向持续运动,碰到球桌边缘之后,遵循镜面反射原理,改变运动方向,如果台球进洞则仿真终止。 8a41cb32e98c7a32647313dc625dbe52.gif 为了防止仿真程序进入死循环,我们设定台球在经过 1000次 反弹之后,仍没有进洞,则认为在该条件下,台球不会进洞。 按照上述流程,我们进行了 100000次 模拟之后,发现了一个惊人的结果: 100000次模拟中,台球进袋99575次,成功率高达99.6%。 9ee74f1cfe3dec2fe9b8fcd8424d4aad.png 于是我们可以得到这样一个结论: 只用打出球时足够大力,几乎可以百分百地进球,”大力出奇迹!“是成立的 。所以,如果你打台球总是输,那么数模君可以“认真负责”地告诉你,”你不是技不如人,你是力不如人!“,你需要的不是练习握杆姿势,也不是如何瞄准,你只需要锻炼臂力,打台球的时候使出最大的力气出杆,当你的出杆力度大到可以忽略摩擦力、忽略台球碰撞时的动能损耗时,你就稳赢了! 48b0e580358a160703f717056afdafc2.png

    3、为什么有的球打不进?

    一本正经的聊完了台球秘笈,下面数模君和大家聊一些”不太正经“的,为什么会在仿真实验中存在0.4%案例不进洞呢?为什么会打不进呢?让我们来仔细看下在一颗没进的球身上到底发生了什么?

    3bcf5499f445cfdb2a299150b4de85f2.gif

    神奇的事情发生了,上面这张动图展示了球被打出后的运动轨迹,可以发现在经过了多次反弹后,球竟然回到了开始时的位置,进入了一个不断重复轨迹的循环,失去了进袋的可能。 26bd0a34a775abebd6a1ec25f89aa3ee.png 其实,这样的情况有很多,最简单的一种就是当台球被垂直打向球桌边缘时,其运动轨迹就被大大局限,便不可能进袋了。 9f2a4050872cdca5e971bf9d636b3e7c.gif 在台球问题中,我们将台球多次反弹后,以相同运动方向回到起始点的现象称为 周期轨道 (periodic orbit)。出现周期轨道时,有可能台球在进入周期轨道前就已经进袋,也有可能台球的周期轨道不接近袋的附近,球就没有进袋的可能了(不过这种情况的可能性只有0.4%)。

    4、如果球桌是三角形……

    我们已知台球桌是一个长方形,会产生周期轨道现象,不妨开一下脑洞,如果台球桌变成了三角形会发生什么呢?大力就一定会出奇迹吗?讨厌的周期轨道还会存在吗? a444944c16ac1630e8435320188e7832.png 实际上,当台球桌变成三角形时,事情变得有趣了起来。 (1)锐角三角形 在锐角三角形中,我们分别从三个顶点向对边作垂线,并将三个垂足连成一个三角形,便可以轻而易举地获得一条周期轨道。(大家可以利用几何知识推导一下,易得∠1=∠2,∠3=∠4,∠5=∠6,符合镜面反射原理) 93fc8d010c0bb3cfa95981e88ed44ff7.png (2)直角三角形 在直角三角形中,也有一个生成周期轨道通用的方法:从斜边上任取一点作为起始点,以垂直于斜边的方向作为初始运动方向,球在经过五次反弹后便会回到起始点(大家可以再次利用几何知识推导一下),便可以形成一条周期轨道。 be0b5b6819b626750f4aec4d3e5bb465.png (3)钝角三角形 然而,在钝角三角形中,问题就变得复杂了起来。
    • 2009年,美国数学家Richard Evan Schwartz证明了当三角形中最大角小于100°时,周期轨道存在。

    • 2018年,George Tokarsky, Jacob Garber, Boyan Marinov, Kenneth Moore这四位数学家一起证明了当三角形中最大角小于112.3°时,周期轨道存在。

    直至现在,数学家们仍在为“钝角三角形是否必然存在至少一条周期轨道”这个问题展开研究,让我们期待更多新的突破。

    5、多边形的周期轨道问题

    如果三角形球桌也会产生周期轨道,那么大家是不是会有疑问,五边形、六边形,甚至十二边形的台球桌呢? a11da28667325795b3a3783d93752f19.png 其实,针对多边形的周期轨道问题,数学家们的研究成果还真不少。 1986年,美国数学家Howard Masur发现了一个规律:对于任意边数的多边形,只要这个多边形中所有的角的大小都是有理数,就必然存在至少一条周期轨道。这条十分好用的规律看似简单,其证明却十分复杂,运用到了全纯二次微分、泰希米勒空间、遍历性等众多数学知识,数模君就不详细介绍啦~

    6、总结

    以上我们所讨论的问题都属于 动力系统中动力台球(dynamical billiard) 这一分支。除了讨论多边形球桌,甚至还会讨论台球在圆形、椭圆形、环形、多边体、高维空间和非欧几何空间中的运动规律,其中有大量动态系统和遍历理论的运用。 8b25ef5e861758e3dfc5302ba17aaa91.png 最后,数模君想再传授给大家一个十分特别的大力出奇迹台球小技巧。 如果我们的台球桌变成了椭圆形,球袋位于椭圆的其中一个焦点上,而我们想要打的球位于椭圆的另一个焦点上,我们只要用大力向任意方向击打球,球经过反弹后便总能打进球袋! 700aa148841df9626128d87f78703901.gif 大家如果不相信,可以用几何知识自己证明一下,也可以搭建一个简易球桌实验一下哦。 113d5040c7b0968f2a5fa2ccbd722443.png
    展开全文
  • 说明先,这不是我写的,虽然我也次通过了,在看了这个总结后,我觉得写得很好,所以发到日志上供大家参考。 我的实际成绩是:经济86,法规95,管理91,市政实务107,  合格线是:经济60,法规78,管理78,市政...
    说明先,这不是我写的,虽然我一也次通过了,在看了这个总结后,我觉得写得很好,所以发到日志上供大家参考。
    我的实际成绩是:经济86,法规95,管理91,市政实务107,
          合格线是:经济60,法规78,管理78,市政实务96。
    我的复习时间是8月初到9月23号,时间不足两个月,唯一的秘诀,就是更心无旁念的看书+运气吧!所以复习时间神马的都是浮云,关键还是努力+运气了。

     

    前面的话

    2011年一级建造师考试成绩已出,小弟今年考一级建造师市政专业,第一次考。不瞒大家,我也是由于众所周知的原因,跟风来考这个专业的(鄙视自己一下)。虽然过了,但还是心有余悸——其实第一次考还是选自己最熟悉、最有把握的专业才是上策。

    考完估计:经济93,法规105,管理105,市政实务90-105(只能大概估)

    实际成绩:经济90,法规108,管理109,市政实务112

     

    考试只是一个前奏,考过只是一个开始。考过了一建,值得欣慰,但没有什么值得自喜和骄傲的。一级建筑师们可以直接秒杀我们,注册土木、设备等直接无视我们,注册会计师也能投来鄙夷的目光——更重要的是,人家没证书照样拿百万年薪的项目经理也在嘲笑我们的浅薄。所以,不要看得太重,这不算什么。

    但是就考试本身来说,在这里讨论“考与不考”是多余。我们要考虑的是,一杆进洞还是辗转迂回,速战速决还是打持久战。

    0 、最重要的:心态和决心

      当你决定了要考,最好是树立一次通过的决心和信心。因为这个考试实在很磨人,你不强势搞定它,它就慢慢消耗你,直至你绝望抓狂。

      做好牺牲各种娱乐、休闲时间的准备;做好和各种花花世界的诱惑进行抗争的准备;做好对枯燥的学习坚持到底的准备。

      大家时间都不够。时间可以挤,实在挤不出来的话,你可以权衡一下“牺牲几个月少赚点钱”和“考了两三年,第四年还继续考”哪个更痛苦些。

      把“想要通过”变成“一定要通过”。世间的事情,往往是“想要”不可得,“一定要”才可得。

      比我们努力许多却没有开花结果的大有人在,整天玩玩乐乐随便考考就混过的也有其人,这里面总有运气的成分。我们能做的,就是尽量拒绝走钢丝式通过考试,给每一份努力加码,强势的、宽裕的、保险的搞定它。

    1、一级建造师的通过率为什么这么低?

        当然,近几年的建造师考试通过率永远是个谜,没有任何官方的数据可查。但建造师考试通过率之低是有目共睹的,这其中的因素是很多的。比如,基数大,报考人数多。因为火爆嘛。其次就是需求的问题,一年需要新增多少项目经理,需要上多少新项目,都是有关系的。将来建筑业市场萎缩,通过率肯定是更低的。没有需求嘛。还有,就是建造师刚开始那两年,放水放得太大了,其中一年的通过率大概达到了48%,这个是有官方数据的。那时候是为了充数,所以基本上稍微用点吃奶的力,就过了。以至于09年建设部就开会,说建造师基本饱和、以后要提高质量了。他们这些随意的动作,都在影响着我们,这都是外部因素,无法改变,只能承受。

    内部因素呢?时间。时间投入不足是导致大部分人屡战屡败的主要原因。很多同志考了五六年,还在考,但是从来没有一次下狠心,开个誓师大会,排除一切困难扫除一切障碍。我觉得:不要被所谓的通过率吓倒,目前来看,一级建造师的一次过四科的通过率虽然在4-8%,但是这其中要除去大量缺考的,不买书的碰运气的,买来书不好好看的,还有很多土经理上场不知道怎么涂答题卡的。真正看书并且投入了足够时间的人里面,这个通过率绝对在30-50%。这样看来,就没有什么难度了。就是拼谁更用力的事情了。  

    2、备考一级建造师需要投入多少时间?

    我们来算一笔账,这是为一定要一次性稳过,不做两年抗战或多年抗战的人算的

    以我为标准模型:1)本科毕业;2)建设类专业;3)施工单位混了几年;4)26岁。

    一级建造师四门课,教材合计约1400页。我一般1小时能看7-8页,合计需要看175-200个小时。如果每天拿出4小时(大部分人远远拿不出这么多时间),那就意味着四本书看一遍需要花费50天。问题是看完一遍书,基本上你甚至都不知道书里大体说的是什么。有些培训老师说,至少要看5遍书,才能有保证,由于后面看一遍书需要的时间会逐渐减少(根据经验,每次大约可以减少20%的时间),所以,总时间需要:50+40+32+26+20=168天=5.6个月,还要再做点题吧,没有6个月是完成不了的。

    这还算好的情况。你是不是和考试专业相关的专业,不是?那再加两个月。你是不是在施工现场混过的,不是?再加半个月,多看点施工现场的视频。还有随着年龄的增长,记忆力的衰退,都会增加相应的难度。

    我的实际情况是,闭关90-100天的样子,期间几乎没有回家看看。早上6点起来,能看两小时书,然后上班;中午困了就休息一会儿,不困就看一小时多;晚上时间充足,通常能保证4-5小时。这样一天可以6-8小时来看书——要不是专门找了个不繁重的工作,绝不可能弄出这么多时间。所以,对于您来说,可能要早开始复习两个月。

     

    论坛里“心姐要考试”的签名我很欣赏:

    孩子送去娘家,老公赶去婆家,姐姐只剩一个人在战斗。

    闭上眼睛听课,睁开眼睛看书,除了考试神马都是浮云。

     

    专心,绝对是一大利器。我是男的,我要不要考虑戒色,必须的;我不能出去赴宴,必须的;在大热的天里,脑门上的汗珠滚滚而下,我都想给脸上装一个雨刷,但是不能停,必须的;晚上实在累的紧,喝茶+咖啡,必须的;有时候几天加班,要不要在别的时间里熬夜到凌晨三点补上功课,必须的。【关键是你的目标是“想过”还是“一定要过”,世间的事情,“想过”往往不可得;“一定要过”,往往可得。】  

    我在这里不想谈时间的分配。大家都是成年人了,自己看了教材,哪些是自己的强项,哪些是弱项,都能分辨。分清主次,合理分配和平衡时间。 

    3、这个考试都有什么特点?

    第一大特点就是:脱离实际工作。这个好理解,因为工作是条条大道通罗马,这样怎么出题?而考试,必须得一条大道通罗马。所以,书上模棱两可不清不楚,一个问题有多种说法和答案的,无视之。

    第二大特点就是:属于98%的文科考试。虽然是工程的事情,但考试绝对属于文科。记忆、理解的东西占绝大多数。数学水平在小学三四年级足矣。绝不需要万恶的微积分和结构力学等课程的支撑。

    第三大特点就是:三门公共课的难度和实务的难度差距太大,复习方法也是天壤之别。公共课有套路,实务基本无套路;公共课有采分点,实务不要迷信采分点;公共课看书不要看得太细,实务一定要看细致。

    4、各科都应该怎么复习?

    说到重点了。三门公共课基本上是只要努力就有收获,付出和成绩基本呈45度线性关系走。实务这门的确不好说,就算你是看了六遍书,也不一定搞定,就算你是在工地上干了十几年总工,也不一定OK。为什么?因为题目经常会很偏,偏到你脑袋发懵是很正常的。

    建设工程经济:

    这一科一般人觉得是三门公共课里最难的。主要还是因为很多人看书没有理解到位。我一开始也发懵,但是后来我发现这门课的任督二脉就在第一章,就在一开始的那几个公式以及现金流量图,把各种公式及其适用模型搞清楚,基本上就OK了。大部分知识点都有例题,考题的水平基本也就和例题的水平相当。理解的时候多注意和自己生活联系,你要是想公司那些事情,你会被你自己烦死的。你就想你欠债还钱、买菜吃饭的事情就行了。第二章财务的税费那节很绕,据说只有1分。我就果断放弃了。

    建设工程法规及相关知识:

    这一科由于文科思维太强。所以难的人觉得很难,简单的人觉得很简单。法规考的无外乎是对法条的理解,这门课要听老师讲解,自己有时候摸不到重点,理解会有偏差。对任何一个法律关系和事件,尽量联系自身,或者想出一些有趣的例子来进行记忆,效果会很好。这门课也有部分死记硬背的,这个只有多看书,多总结,别无他法。

    建设工程项目管理:

    这一门课本来应该是一门大象无形,很高深的课程,考的应该也是理解为核心。但是可惜,这门课走了一个下下路线:考背诵。管理考背诵,这可能也属于中国的一大发明了。今年可能还好一些,翻看前几年的真题,那简直是考原文。当然,理解的部分也是有的,最伤大家脑细胞的可能就是进度计划中的网络图了,攻克它,你这门课就有绝对的信心了。这门课也得听老师讲,划一划重点,然后形成框架——但是不可只看重点部分,前后文也都该补充看看,理解理解。

    三门公共课,不要逐字逐句的看书,你会累死的。跟着老师走,学会抓重点。

    专业工程管理与实务:

    这是最重要的一门课。一般很少有人过了这科而没有过前三科的,很多人都是过了前三科没有过这一科的。第二年考这科,结果又没过。第三年归零,重头再来,何其冤枉!实务这门,知识点相当琐碎,因为它试图把某一专业的所有的东西都涵盖——虽然都很肤浅——拿市政公用专业来说,一本400多页的书,就想搞定道路、桥梁、地铁、给排水、供热供气管道、园林绿化、垃圾填埋等等专业,基本上没有人在实际工作中搞过这所有的专业。所以就靠教材了。教材高度浓缩的直接后果就是:处处都是考点。密度很大,必须前前后后里里外外的看透,才能万无一失。每年还会出 10-20 分教材以外的题目,如果你运气好,现实工作中做过,那恭喜你,你赚了。如果你听都没听过,那也没有关系,只要你文笔好,组织语言能力强,能通过已有的专业知识,通过对工程现场那一套套的规律的把握,也是可以大写特写,大吹特吹的,这样,也多少能沾点便宜。

    基本上可以说,实务会占到我所有复习时间的70%以上,书翻了六七遍。自己通读一遍,之后基本都是配合着各种老师的讲课进行看书的。这里要强调一点:今年的这个方法走了很大的误区。事后想来,是这么个道理:每个老师的风格虽然不同,讲课也都务实,有的还挺幽默,但是回头一想,每个老师讲的所谓“重点”基本大同小异,我后来所看的五六遍,基本上是在同一条道路上重复了五六遍,走的虽然很快(因为每个老师的讲课其实也就十几个不到二十小时),但是都迷信了这一条路,迷信了这些大家都认为是重点的重点。这些知识点最终几乎是滚瓜烂熟了,就差默写了。但是考试题目拿到,我就明白了,奶奶的这群出题的也听过这些老师的课件啊,今年几乎把“应该”是重点的部分全都给避开了。市政最大头是干什么的?道路吧,一个道路的题目都没有。边边角角出了不少。考试结束,哀鸿遍野。但是回头一看,其实90%的内容都是教材上有的东西。要是当时不要花那么多时间去听各种课件,而是多多看书,把握就大很多了。就不会让我唱了三个月的忐忑。这点提醒大家一定注意。

    实务我做了一件看似无用功的事情:

    我把习题集后面的几十道案例题,加上历届考题的的所有案例题,加上论坛里搜集来的一些培训班的案例题,一共130多道题目和答案打印出来。70个题目的答案通篇抄了一遍,另外60道是先看题目,然后心里想一遍答案,然后写下关键词和要点。抄写答案的作用:一是练字,实务答题的字迹工整很重要。二是熟悉套路,感受“心法”和规律。和英语有些类似,要练“语感”。考试基本不可能再出历年考题类似的题目,但是,这些“语感”,有助于你在遇到那种闻所未闻见所未见的题目的时候,大吹特吹大写特写,反正又不会扣分。我坚信,这种“语感”在今年帮了我很大的忙。这是郭靖式的练功,供大家参考。

    记忆方面,死记硬背是记不住的。一定要“图片记忆”+“场景记忆”。对于不熟悉的东西,多在网上搜搜图片、或者通过想象建立图片。对于施工现场不熟的朋友,一定多搜多看相关视频(网上搜),各种工法、工艺流程都可以看看视频,很有帮助。对于后面那些程序性知识点,要把自己置身其中,想象自己正在干这件事情,想象自己就是这个项目经理在现场处理这些事情,想象出了安全事故后自己怎么做、下一步怎么做,如此,相当于模拟了一遍,会比较深刻。

    5、关于培训课件的选择?

    首先隆重介绍“大家论坛一级建造师”版块,常混这个论坛的,通过的很多。

    然后说一个原则:考一级建造师不要过于依赖于资料、不要依赖于课程、不要依赖于某位老师的押题,更不要依赖于市场上所谓的“命题趋势”“深度押题”等等不靠谱的东西。靠谱的还是在于自己,借助那些名师的方法,认真的去理解、学习,好好的看书做题,才是万无一失的正道。外物皆不可求,尽信师不如无师。以下是个人推荐:

    经济:梅世强+杨静,话说此二人课程都只有10小时左右,但是可以让你经济这门课茅塞顿开,脉络清晰。当然,如果你觉得听起来还是费劲。那就先听一遍环球网校的。

    法规:陈印。就算你不考这门课,我几乎都要推荐他。陈印,让法规考试变得易如反掌。生动有趣,而且印象深刻。第二推荐的是鲁班教育的高唱。如果你还是觉得直接听这种面授班的费劲。那就先听一遍环球网校的。

    管理:顾永才+学易网校朱俊文。如果你以前考过,听听顾永才的然后自己看书就行了。如果没有,建议学易网校的。

    实务:课件听环球的(我今年忽视了这个)。外加最多一两个面授班的。不可贪多。教材为本,切记切记。

    课件都在论坛上有,自己找,2012年还会有新的。

    书看到最后,你会发现,每本书中的核心知识点其实并不多。法规,若把这些知识点摘出来,不超过30页。管理则不超过300句话(顾永才说的)。但是,这些知识点却能够占到卷面的80%。其他的那些充其量也不过就占20%。所以三门公共课都要抓大放小。因为他们的命题点都很稳定。如果他们避开常规的命题点,那考卷就面目全非了。而实务确实要大小兼顾,主次兼修。我今年就是主次兼修做的不够,所以担心了许久。

    6、关于做题

       第一个原则:三门公共课,在没有搞定历年真题之前,不要做任何其他题目。基本上历年真题足够。做懂做会。其他题粗制滥造的多,题目的水平无法和真题相比。

    第二个原则:不建议做教材配套的习题集。这几本习题集和教材不是一家出版社出版的,编委也不是同一伙人,是外包出去的。粗制滥造不说,题量还很大,做的人没有信心。

    第三个原则:实务不需要做题。选择题根本无套路可言,案例题更没有套路。最多抄一抄案例,总归还是多看书。谁挖的深,谁看的细,谁占上风。

    学习一段时间,建议做一套真题或者别的模拟题检验一下,不宜太多,总共两三套为宜。计划自己一次性通过的,最终测验得分应该在及格线以上20分。这样才保险。经济80左右,管理和法规最好往100以上弄,实务就按130要求自己。取法乎上,得其中也。

    7、关于考试答题(陈印老师的提醒)

    三门公共课:总分完全取决于多选题的零蛋数量,并不取决于单选。

        (1)30个多选题中:一个零蛋不吃,总分在120以上;两个零蛋,总分在105~115;6个零蛋,总分在90以上,仍旧非常安全;10个零蛋,总分在75~80,生死未定;12个零蛋,包你不过。

        (2)正因为上述理由,所以做多选时要像老鼠一样警觉,像兔子一样胆小。做多选题的唯一原则是:死命往少里选!! 多选题只有闭着眼睛都会的,才可能选3项。只要稍微感觉难,就要提醒自己一定只能选最有把握的2项,决不能选第3项。当你想去赌第3项时,记得你不是拿已经到手的一分去赌,要记得你是拿自己一年的光阴去赌,你赌不起。

        (3)交卷前的最后检查中,仔细检查多选题,检查的顺序是(1)先检查题目中问“正确”还是“错误”,“符合”还是“不符合”的那些题,防止做题时脑子发昏看倒,一般而言,正常人都会因此丢掉3~5分,这是宝贵的3~5分;(2)认真检查那些选了3项的,看看哪个可以踢出去,牢牢记得,选2项才足够安全,选3项都是在赌命。

        实务:五道大案例,每个大案例总包含4~5个小问,要求:

        (1)许多小问都不要求看案例信息,可以依据各小问直接回答,所以看题的顺序是跳过案例背景先看小问。把自己熟悉的不需要案例背景信息的小问,先一个个找出来。

        (2)一般而言,在开始做案例的头10分钟,心情最为紧张。因此,做案例小问的顺序是先易后难,在心情最紧张的时候,只做自己会的题目,把保底的分数拿到手。头10分钟,不碰不熟悉的题。

        (3)卷面力求整洁。

        (4)尽可能用书上的话来答题。

    8、关于其他

       1)卖答案的不可信、卖设备考中传答案的不可信、考后改分的不可信。

       2)泄题。在我朝,腐败到了这个程度,你说不会泄题,我也不信。但是你遇不到。这么说吧,有100个卖答案的,其中有一份是真的。你遇不到。你如果想遇到,就买来这100份试卷和答案。但是我相信,你把这100份试卷都做了,答案都背过了。这样去考试,你若不过,就没有天理了。

       3)关于压分和调分,目前经过证实最可靠的说法是这样的:当我们考完一建后,砖家们会取出 2000 套左右的卷子按照事先的标准答案进行“预判卷”,判完之后看总体的考试水平,根据通过率的要求,重新制定判分标准,再正式阅卷。基本上是要保证通过率,所以估分神马的都是浮云,尽量还是充分准备。让自己的保险系数增大。应对一切不可知的风险。

    言尽于此。凡含泪播种的,必欢呼收割。愿一切辛劳都有收获,愿一切努力都获得祝福。祝2011年没有过打算2012年继续奋战的同志和2012年第一次参加考试的同志,马到功成,强势搞定!

    展开全文
  • 最牛茅台投资人的席真言(转载) 巴菲特说:“个投资人只需要有两个能力,估值能力,看市场价格的能力。”巴菲特在挑选接班人的条件时给出三个条件:“第,独立思考;第二,情绪稳定;第三,对人性和机构的...
  • 说明先,这不是我写的,虽然我也次通过了,在看了这个总结后,我觉得写得很好,所以发到日志上供大家参考。 我的实际成绩是:经济86,法规95,管理91,市政实务107,  合格线是:经济60,法规78,管理78,市政...
  • 一杆进洞奖金: < span class = "color-yellow" > 2000元 span > p > < p > 2017.05.01~2017.05.31 p > div > li > < li class = "match-item left-2" > < img src = "2.png" alt = "" ...
  • 读书笔记之《梁宁增长思维30讲》

    千次阅读 2020-06-13 12:23:30
    读书笔记之《梁宁增长思维30讲》 梁宁增长思维30讲 发刊词 | 增长能力,就是持续作出正确决定的能力 ........................第, 一张全景作战地图。 第二,四个增长关卡。 机会拿捏、模式取巧、组织扩容、战略
  • 集成学习(四)

    2020-10-25 11:30:00
    1.GBDT也是Boosting思想的个应用,分成梯度提升和决策树2.把梯度下降法的学习率从人工设定变成由算法决定,这称最速下降法,也称直线搜索3.把加法模型和最速下降法结合,就产生了...
  • 这是一个微信环境下的高乐夫球场预订小程序,包括了球场介绍、新闻动态、订场服务、一杆进洞、发现和用户中心等模块,可为同类预订服务小程序开发提供设计思路参考,界面效果如截图所示,不过因本地微信环境问题,...
  •  第3个洞开始,长老打出超完美的成绩,几乎都是一杆进洞。长老兴奋莫名,到打第7个洞时,天使又跑去找上帝:上帝呀,你不是要惩罚长老吗?为何还不见有惩罚?上帝说:我已经在惩罚他了。  直到打完第9个洞,长老...
  • 默认选中第张,鼠标悬浮缓慢放大图片,底部文字介绍由下往上缓慢滑出,选中后边框效果; 左右滑动,距离为四张图片。 思路 定义个定宽的容器,然后图片不换行并排显示,超出部分隐藏,隐藏x轴滚动条; 左右按钮...
  • 高尔夫常用英语

    万次阅读 2012-06-30 07:47:08
    -- 高尔夫英语 Address 瞄球,击球准备动作 ...Against par 标准击赛,以规定击球次数作对象,来决定胜负。各球洞规定击球次数和实际击球次数之比,得胜球洞越多越好 Against wind 逆风、顶风 Albtross
  •  1993年,傅乐民下海创业之时,他很难想象,14年后,北纬将成为“国内SP第股”,即国内第家在A股上市的SP公司,载入中国增值电信服务发展的历史。  那时侯,创业对于傅乐民和他的伙伴来说,就如北纬30度那样...
  • 打台球百发百中?油管博主球杆上“做手脚”

    千次阅读 多人点赞 2021-02-25 13:44:56
    他用个又个的奇思妙想证明,即使你手再残、再没有运动细胞,只要还有脑子,任何运动都难不倒你:之前是篮球,这次换成了台球。之前是在篮板上「做手脚」,这次换成了球杆。 如图所示,这个智能球杆的末端是...
  • 高尔夫礼仪

    千次阅读 2018-05-25 23:12:30
    节 基本篇 1、球场上的着装 高尔夫球对着装有特别规定,这也是长期历史发展沿袭下来的高尔夫文化的部门。 高尔夫球服装以舒适整洁为原则,不论男女,都应着有领的上衣和长裤。禁止球员穿圆领汗衫、吊带背心...
  • 不少刚从技术人员提升成为项目经理的员工经常面对项目中无穷无尽的沟通和注意事项感到筋疲力尽,以前也有同事对我说,“老大,我是不是不太适合项目经理这个岗位,现在感觉还不如做开发人员的时候...今天第课,项...
  • 轮面试分为2次,流程大致都是如下: 自我介绍+项目介绍+项目深挖和项目中相关基础知识+算法题+数学题。 感受就是面试官都很专业,而且面试完可以给我原来的项目带来更深的思考和更多的想法,这回大论文有救了! ...
  • Abstract Golf-crx插件

    2021-04-06 08:25:08
    语言:English,suomi 在这个抽象设计的简约高尔夫游戏中成为Swing之王! 瞄准洞,然后拖动并释放以击中球。 C 在这个抽象设计的简约高尔夫游戏中成为Swing之王!...您可以一杆进洞并完成所有关卡吗?
  • 行事高调的嬉皮士资本家,挥鞭进军太空,面对失败考验,乌云罩顶;能否率部复活,实现人生逆转,全世界都在看!  打落牙齿和血吞,“所有订金均可退还,”布兰森坚定地表示:“不会就此休止贸易开发...每次血的
  • 成就你一生的100个哲理91-100

    千次阅读 2014-04-11 13:48:00
     这是篇很有意思的文章,也许,在浏览文字的时候,你也不妨跟着选择一下。你的答案是什么? 有位妇人走到屋外,看见前院坐着三位有着长白胡须的老人。 她并不认识他们。 于是说:“我想我并不认识你们,...
  • bzoj AC倒序

    千次阅读 2016-08-23 17:25:00
    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 ...Y 1925 [Sdoi2010]地精部落 第轮Day...
  • 、 干系人分析应该怎么做 不少刚从技术人员提升成为项目经理的员工经常面对项目中无穷无尽的沟通和注意事项感到筋疲力尽,以前也有同事对我说,“老大,我是不是不太适合项目经理这个岗位,现在感觉还不如做开发...
  • Unity游戏引擎介绍及相关学习资源

    千次阅读 2019-11-26 23:54:55
    Unity3D是由Unity Technologies开发的个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是个全面整合的专业游戏引擎。Unity类似于Director,...
  • 上面这个公号「涩郎」,是我的个备用号,为了防止万一哪天大号失联,平时周我也会发三篇左右的我的思考,读书笔记,认知感悟等文章,带领大家一起探索精神与财务自由之路。大家好,我是校长。我看有...
  • 好比打高尔夫球一杆进洞一样。它是由T(10)到Ace的清一色同花组成。         2 Straight Flush 同花顺 除了由最大同花所组成的同花大顺以外的同花组成的顺子。         3 Four-of-a-Kind 四条 四张...
  • 漂亮的“一杆进洞” 概括地说,硬盘的工作原理是利用特定的磁粒子的极性来记录数据。磁头在读取数据时,将磁粒子的不同极性转换成不同的电脉冲信号,再利用数据转换器将这些原始信号变成电脑可以使用的数据,写...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,878
精华内容 751
关键字:

一杆进洞