zoukankan      html  css  js  c++  java
  • A AFei Loves Magic

    链接:https://ac.nowcoder.com/acm/contest/338/A
    来源:牛客网

    题目描述

    AFei is a trainee magician who likes to study various magical materials. Today, he came to the forest to find rare materials. He was so lucky that he found a piece of high-level magic stone. He knew that this stone always appeared in the pile, so there must be more nearby. Then he went deeper.
    As expected, he found many magic stones. These stones were arranged in a row. Just as he was ready to pick up one, a magical circle was triggered. He was petrified and the stones began to move. As mentioned above, the stones were lined up. Now, some stones moved to one end of the line and the other stones moved to the other end. Stones would not change direction of movement unless they collided with other stones. Collision meant that two stones moved to the same position, and then the directions of the two stones would both change. Whether or not a collision occured, the speed was always 1 m/s. Stone would disappear when it reached one of the ends.
    AFei knew that the magical circle would disappear after t seconds. It meant that after t seconds, he could move and the stones would return to immobility. This also meant that AFei would get those stones. He wondered how many magic stones he could get in the end, including the first one he got when he came to the forest.

    输入描述:

    The first line contains three integers n, L, t (0≤n≤1000000, 2≤L≤1000000000, 0<=t<=1000000) − the number of stones on the line is n,the length of the line is L meter, and the magic circle will disappear after t seconds.
    The following n lines contain description of magic stones on the line. Each i-th of these lines contains two space-separated integers x[i] and d[i] (0<x[i]<L, d[i]∈{1,2} for i<=n), which stand for initial position and direction of motion(1 means from 0 to L, 2 means from L to 0.).

    输出描述:

    Output a number indicating the amount of the magic stones that AFei will eventually be able to obtain.
    示例1

    输入

    复制
    0 10000 3

    输出

    复制
    1

    说明

    There is no magic stone on the line, but AFei has got one  when he came to the forest.
    示例2

    输入

    复制
    4 10 6
    1 1
    5 2
    6 1
    9 2

    输出

    复制
    3

    说明

    The stones are A(1,1), B(5,2), C(6,1), D(9,2).

    After 1s, they become A(2,1), B(4,2), C(7,1), D(8,2);

    After 2s, they become A(3,2), B(3,1), C(7,2), D(8,1);

    After 3s, they become A(2,2), B(4,1), C(6,2), D(9,1);

    After 4s, they become A(1,2), B(5,2), C(5,1), D reach L and disappears;

    After 5s, they become A reach 0 and disappears, B(4, 2), C(6,1), D disappeared;

    After 6s, they become A disappeared, B(3, 2), C(7, 1), D disappeared.

    AFei finially gets the first one, B and C.

    备注:

    1,Input guarantees that there will not be two magic stones in one location.

    2,If stone A and stone B are located at 4 and 5, respectively, and A's direction is 1, B's direction is 2. Then next second, the position of the two stones have not changed, but they have gone in the opposite direction.

    解题思路:不考虑碰撞,直接根据初始坐标,方向,时间和速度求出每一个魔法石的最终坐标,最终坐标在(0,L)的魔法石数量就是剩下的魔法石
    #include<stdio.h>
    int main()
    {
        int n ;
        int len, t;
        int a,b;
    
        while(scanf("%d%d%d",&n,&len,&t)!=EOF)
        {
            int sum = 1;
            for(int i = 0; i<n; i++)
            {
                scanf("%d %d",&a,&b);
                if(b == 1)
                {
                    if(a+t<len)
                        sum++;
    
                }
                else
                {
    
    
                    if(a-t>0)
                        sum++;
                }
            }
            printf("%d
    ",sum);
        }
    
    }
    View Code
  • 相关阅读:
    分解质因数
    大素数测试和分解质因数
    快速幂
    欧拉函数
    素数
    gcd,lcm,ext_gcd,inv
    凸包问题 poj 2187
    map的 简单用法
    判断线段是否在园内
    2-sat 问题
  • 原文地址:https://www.cnblogs.com/DWVictor/p/10229971.html
Copyright © 2011-2022 走看看